Wie erstelle ich Unicode-Zeichen vom Typ Autokey?

Wie erstelle ich Unicode-Zeichen vom Typ Autokey?

Ich habe ein Problem mitAutokey: Ich kann kein spezielles Unicode-Zeichen kopieren und einfügen. Hier ist ein Beispiel:

Ich bin Franzose, und in der französischen Schrift verwendet man vor einem Semikolon ein Leerzeichen. In der formellen Typografie verwendet man vor einem Semikolon jedoch kein normales Leerzeichen, sondern ein „schmales, geschütztes Leerzeichen“, das Unicode-Zeichen U+202F.

Wenn ich also formelle Dinge auf Französisch schreibe, möchte ich, anstatt immer Zeit mit dem Eintippen CTRLvon + Shift+ U+ 202F+ ENTER+ ;+ ' zu verschwenden, eine neue Autokey-Phrase verwenden. Verwenden der Abkürzung (was verbal bedeutet, ein Leerzeichen und dann zweimal ein Semikolon einzugeben). Das heißt, wenn ich (irgendwo) eingebe , wandelt Autokey es in (ein schmales, geschütztes Leerzeichen, gefolgt von einem Semikolon) um.spaceSpace+;;space+;; ;

ABER das Problem hier ist folgendes: Wenn ich in Autokey eine neue Phrase mit erstelle  ;und dann die Abkürzung verwende, ersetzt Autokey sie nur durch ;und löscht das schmale geschützte Leerzeichen. Und es scheint, dass es dies mit jedem anderen zu speziellen Unicode-Zeichen tut ...

Hat jemand eine Idee, wie man dieses Problem umgehen kann?

Tausend Dank!

Antwort1

Zwei Optionen: (Siehemein Blogfür weitere Details und Screenshots zu Option 1)

Erste Wahl(viel einfacher)

Upgrade auf diePython-3-Port von Autokey(weil Python 3 mit Unicode-Zeichen besser umgeht als Python 2)

Bei mir verlief die Installation folgendermaßen:

# 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

Stellen Sie dann sicher, dass Sie die Python3-Version ausführen, die wahrscheinlich

~/.local/bin/autokey-gtk

Mit dieser Methode können Sie Ihre Unicode-Zeichen als Phrasen eingeben

Zweite Option(wenn Sie autokey-py3 nicht zum Laufen bekommen)

Verwenden Sie ein Python-Skript (Datei -> Neu -> Skript) zusammen mit der Zwischenablage des Systems

Fügen Sie Folgendes in das Skript ein

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('γ')

Dies funktioniert, indem die Standardeinstellungen von Python so geändert werden, dass Unicode korrekt funktioniert. Anschließend wird das ausgewählte Zeichen in die Zwischenablage gesendet (stellen Sie sicher, dass Sie es xclipinstalliert haben). Hier habe ich γ als Beispiel verwendet. Anschließend wird Strg+V gesendet, um das Zeichen einzufügen.

Extras für die zweite Option

Die zweite Methode kann verbessert werden, indem man das gesamte Skript bis auf die letzte Zeile in eine Datei (nennen wir sie ) packt MyCopy.py. Dann teilt man Autokey in den Einstellungen (Script Engine) mit, wo sich diese Datei befindet. Dann wird das Skript

from MyCopy import paste_character
paste_character('γ')

Einige Anwendungen verwenden Strg+V nicht zum Einfügen (z. B. verwendet das Terminal Strg+Umschalt+V). Das Zeichen bleibt jedoch in der Zwischenablage.

Antwort2

Funktioniert bei mir unter Linuxmint 19.3, auf dem Python 3.6.8 läuft.

ABER funktioniert bei mir nicht in Linuxmint 20.0, weder als Python 3.6.8 noch als 3.8.5. Ich erhalte wiederholt diesen Skriptfehler:

Skriptname „amacron“

Traceback (letzter Anruf zuletzt);

Datei "/usr/lib/python3/dist-packages/autokey/service.py"
Zeile 485, in „exec(script.code, scope) ausführen“
Datei "", Zeile 2, in
NameError: Name „reload“ ist nicht definiert

===

ein Makronenskript:

System importieren
neu laden(sys)
sys.setdefaultencoding('utf8')

vom Unterprozess importieren Popen, PIPE
def Zeichen einfügen(Symbol):
    c = Popen(['xclip', '-Auswahl', 'Zwischenablage'], stdin=PIPE)
    c.kommunizieren(symbol.encode('utf-8'))
Tastatur.Send_Keys('+v')
Zeichen einfügen('ā')

verwandte Informationen