web-dev-qa-db-fra.com

Comment créer des caractères Unicode de type Autokey?

J'ai un problème avec Autokey : Je ne peux pas copier-coller à travers un caractère Unicode spécial. Voici un exemple:

Je suis français et en écriture française, vous utilisez un espace avant un point-virgule. Mais dans la typographie formelle, vous n’utilisez pas d’espace normal avant un point-virgule, mais un ‘espace étroit insécable’ qui est le caractère Unicode U + 202F.

Donc, quand j'écris des choses formelles en français, au lieu de perdre du temps à taper CTRL+Shift+U+ 202F +ENTER+;+space', Je voudrais utiliser une nouvelle phrase Autokey. Utilisation de l'abréviation Space+;; (qui signifie, verbalement, taper espace, puis deux fois-virgule). Ce qui signifie que quand je tape (n'importe où) space+;;, autokey le transforme en  ; (qui est un espace étroit sans séparation suivi d'un point-virgule).

MAIS le problème est le suivant: lorsque je crée une nouvelle phrase dans Autokey avec  ;, puis, lorsque j'utilise l'abréviation, Autokey la remplace uniquement par ;, en effaçant l'espace étroit sans pause. Et il semble que cela se produise avec tout autre caractère Unicode trop spécial ...

Quelqu'un at-il une idée de la façon de contourner ce problème?

Mille mercis!

6
yoannjap

Deux options: (Voir mon blog pour plus de détails et des captures d'écran pour l'option 1)

Première option (beaucoup plus simple)

Passez à la version port d'autokey python (car python 3 traite mieux les caractères unicode que python 2)

Pour moi, l'installation a fonctionné comme suit:

# 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

Ensuite, assurez-vous d’exécuter la version python3, qui est probablement à

~/.local/bin/autokey-gtk

Avec cette méthode, vous pouvez entrer vos caractères Unicode en tant que phrases.

Deuxième option (si vous ne pouvez pas faire fonctionner autokey-py3)

Utilisez un script python (Fichier -> Nouveau -> Script) avec le presse-papiers du système.

Collez le texte suivant dans le 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('γ')

Cela fonctionne en modifiant les paramètres par défaut de python pour qu'ils fonctionnent correctement avec Unicode. Il envoie ensuite le caractère choisi au presse-papiers (assurez-vous d’avoir installé xclip). Ici, j'ai utilisé γ comme exemple). Ensuite, il envoie control + v pour coller le caractère.

Suppléments pour la deuxième option

La deuxième méthode peut être améliorée en prenant tout sauf la dernière ligne du script et en le plaçant dans un fichier (appelons-le MyCopy.py). Ensuite, dans les préférences d'Autokey (Moteur de script), indiquez à Autokey où se trouve ce fichier. Alors le script devient

from MyCopy import paste_character
paste_character('γ')

Certaines applications n'utilisent pas control + v pour coller (par exemple, le terminal utilise control + shift + v). Mais le personnage sera toujours dans le presse-papiers.

4
hugke729