
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 xclip
instalado). 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('ā')