Como tornar os caracteres Unicode do tipo Autokey?

6

Eu tenho um problema com o Autokey : não consigo copiar e colar nele um caractere Unicode especial. Aqui está um exemplo:

Eu sou francês e, em francês, você usa um espaço antes de um ponto e vírgula. Mas na tipografia formal, você não usa um espaço regular antes de um ponto-e-vírgula, mas sim um "espaço estreito no-break", que é o caractere Unicode U + 202F.

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

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

Alguém tem uma ideia de como contornar este problema?

Obrigado um milhão!

    
por yoannjap 30.11.2014 / 19:44

1 resposta

4

Duas opções: (Veja meu blog para mais detalhes e capturas de tela para a opção 1)

Primeira opção (muito mais simples)

Atualize para o python 3 port de autokey (porque o python 3 lida com caracteres unicode melhor 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

Em seguida, verifique se você executou a versão python3, que provavelmente está em

~/.local/bin/autokey-gtk

Com esse método, você pode inserir seus caracteres unicode como frases

Segunda opção (se você não conseguir que o autokey-py3 funcione)

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 trabalhar com unicode corretamente. Em seguida, ele envia o caractere escolhido para a área de transferência (verifique se você tem xclip instalado). Aqui eu usei γ como exemplo. Em seguida, envia control + v para colar o caractere.

Extras para a segunda opção

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

from MyCopy import paste_character
paste_character('γ')

Algumas aplicações não usam control + v para colar (por exemplo, terminal usa controle + shift + v). Mas o personagem ainda estará na área de transferência.

    
por hugke729 22.07.2016 / 02:23