¿Cómo hacer caracteres Unicode de tipo Autokey?

¿Cómo hacer caracteres Unicode de tipo Autokey?

tengo un problema conclave automática: No puedo copiar y pegar un carácter Unicode especial. Aquí hay un ejemplo:

Soy francés y en la escritura francesa se utiliza un espacio antes del punto y coma. Pero en tipografía formal, no se utiliza un espacio normal antes del punto y coma, sino un "espacio estrecho sin separación", que es el carácter Unicode U+202F.

Entonces, cuando escribo cosas formales en francés, en lugar de perder siempre el tiempo escribiendo CTRL+ Shift+ U+ 202F+ ENTER+ ;+ space', me gustaría usar una nueva frase de Autokey. Usar la abreviatura Space+;;(que significa, verbalmente, escribir espacio y luego punto y coma dos veces). Lo que significa que cuando escribo (en cualquier lugar) space+;;, la clave automática lo transforma en  ;(que es un espacio estrecho sin interrupciones seguido de un punto y coma).

PERO el problema aquí es este: cuando creo una nueva frase en Autokey con  ;, cuando uso la abreviatura, Autokey la reemplaza solo con ;, borrando el estrecho espacio sin interrupciones. Y parece que hace esto con cualquier otro carácter Unicode demasiado especial...

¿Alguien tiene una idea de cómo solucionar este problema?

¡Un millón de gracias!

Respuesta1

Dos opciones: (Vermi blogpara más detalles y capturas de pantalla para la opción 1)

Primera opción(mucho más simple)

Actualízate alPython 3 puerto de clave automática(porque Python 3 maneja caracteres Unicode mejor que Python 2)

Para mí, la instalación funcionó de la siguiente manera:

# 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

Luego asegúrese de ejecutar la versión python3, que probablemente esté en

~/.local/bin/autokey-gtk

Con este método, puedes ingresar tus caracteres Unicode como frases.

Segunda opción(si no puedes hacer que autokey-py3 funcione)

Utilice un script de Python (Archivo -> Nuevo -> Script) junto con el portapapeles del sistema

Pegue lo siguiente en el 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('γ')

Esto funciona cambiando la configuración predeterminada de Python para que funcione correctamente con Unicode. Luego envía el carácter elegido al portapapeles (asegúrese de haberlo xclipinstalado). Aquí he usado γ como ejemplo). Luego envía control+v para pegar el carácter.

Extras para segunda opción

El segundo método se puede mejorar tomando toda la línea excepto la última del script y colocándola en un archivo (llamémoslo MyCopy.py). Luego, en las preferencias de Autokey (Script Engine), indique a Autokey dónde está este archivo. Entonces el guión se vuelve

from MyCopy import paste_character
paste_character('γ')

Algunas aplicaciones no usan control+v para pegar (por ejemplo, la terminal usa control+shift+v). Pero el personaje seguirá estando en el portapapeles.

Respuesta2

Me funciona en Linuxmint 19.3, que ejecuta Python 3.6.8.

PERO no me funciona en Linuxmint 20.0, ya sea como Python 3.6.8 o 3.8.5. Recibe repetidamente este error de script:

Nombre del script 'amacron'

Rastreo (llamadas recientes más última);

Archivo "/usr/lib/python3/dist-packages/autokey/service.py"
línea 485, en ejecutar exec(script.code, alcance)
Archivo "", línea 2, en
NameError: el nombre 'recargar' no está definido

===

escritura amacron:

sistema de importación
recargar (sistema)
sys.setdefaultencoding('utf8')

de subproceso de importación Popen, PIPE
def pegar_carácter(símbolo):
    c = Popen(['xclip', '-selection', 'portapapeles'], stdin=PIPE)
    c.comunicar(symbol.encode('utf-8'))
teclado.send_keys('+v')
pegar_carácter('ā')

información relacionada