Como criar caracteres Unicode do tipo Autokey?

Como criar caracteres Unicode do tipo Autokey?

Eu tenho um problema comChave automática: Não consigo copiar e colar um caractere Unicode especial. Aqui está um exemplo:

Eu sou francês e, na escrita francesa, você usa um espaço antes do ponto e vírgula. Mas na tipografia formal, você não usa um espaço regular antes do ponto e vírgula, mas um 'espaço estreito sem quebra' que é o caractere Unicode U+202F.

Então, quando estou escrevendo coisas formais em francês, em vez de sempre perder tempo digitando CTRL+ Shift+ U+ 202F+ ENTER+ ;+ space', gostaria de usar uma nova frase do Autokey. Usando a abreviatura Space+;;(o que significa, verbalmente, digitar espaço e depois ponto e vírgula duas vezes). O que significa que quando eu digito (anywhere) space+;;, o autokey o transforma em  ;(que é um espaço estreito e sem interrupção seguido por ponto e vírgula).

MAS o problema aqui é o seguinte: quando eu crio uma nova frase no Autokey com  ;, quando uso a abreviatura, o Autokey a substitui apenas por ;, apagando o estreito espaço sem interrupção. E parece que faz isso com qualquer outro caractere Unicode muito especial...

Alguém tem uma idéia de como contornar esse problema?

Um milhão de agradecimentos!

Responder1

Duas opções: (Vermeu blogpara mais detalhes e capturas de tela da opção 1)

Primeira opção(muito mais simples)

Atualize para oporta python 3 do autokey(porque o python 3 lida melhor com caracteres unicode que o python 2)

Para mim, a instalação funcionou da seguinte forma:

# Edit (April 2018). Autokey now uses python 3 by default. So try
pip3 install autokey

# Install the original autokey
sudo apt-get install autokey-gtk
# Update autokey to python 3 using pip3  
pip3 install --user autokey-py3

Então certifique-se de executar a versão python3, que provavelmente está em

~/.local/bin/autokey-gtk

Com este método, você pode inserir caracteres Unicode como frases

Segunda opçao(se você não conseguir fazer o autokey-py3 funcionar)

Use um script python (Arquivo -> Novo -> Script) junto com a área de transferência do sistema

Cole o seguinte no script

import sys                                                                                                                                                              
reload(sys)                                                                                                                                                             
sys.setdefaultencoding('utf8')                                                                                                                                          
from subprocess import Popen, PIPE                                                                                                                                        

def paste_character(symbol):                                                                                                                                                   
    c = Popen(['xclip', '-selection', 'clipboard'], stdin=PIPE)                                                                                                           
    c.communicate(symbol.encode('utf-8'))                                                                                                                                 
    keyboard.send_keys('<ctrl>+v')

paste_character('γ')

Isso funciona alterando as configurações padrão do python para funcionar corretamente com unicode. Em seguida, ele envia o personagem escolhido para a área de transferência (certifique-se de ter xclipinstalado). Aqui usei γ como exemplo). Em seguida, envia control+v para colar o caractere.

Extras para segunda opção

O segundo método pode ser melhorado pegando todas as linhas do script, exceto a última, e colocando-o em um arquivo (vamos chamá-lo de MyCopy.py). Em seguida, nas preferências do Autokey (Script Engine), informe ao Autokey onde está esse arquivo. Então o roteiro se torna

from MyCopy import paste_character
paste_character('γ')

Alguns aplicativos não usam control+v para colar (por exemplo, o terminal usa control+shift+v). Mas o personagem ainda estará na área de transferência.

Responder2

Funciona para mim no Linuxmint 19.3, que executa o python 3.6.8.

MAS não funciona para mim no Linuxmint 20.0, seja como python 3.6.8 ou 3.8.5. Receba repetidamente este erro de script:

Nome do script 'amacron'

Traceback (última chamada mais recente);

Arquivo "/usr/lib/python3/dist-packages/autokey/service.py"
linha 485, em execute exec(script.code, scope)
Arquivo "", linha 2, em
NameError:nome 'reload' não está definido

===

script amacron:

sistema de importação
recarregar (sistema)
sys.setdefaultencoding('utf8')

da importação do subprocesso Popen, PIPE
def paste_character(símbolo):
    c = Popen(['xclip', '-seleção', 'área de transferência'], stdin=PIPE)
    c.comunicar(symbol.encode('utf-8'))
teclado.send_keys('+v')
colar_caractere('ā')

informação relacionada