Wie richte ich Tastaturmakros ein?

19

In meinem täglichen Leben schreibe ich immer <kbd>Keyboard Character</kbd>und ich möchte ein Makro in Ubuntu einrichten, um es automatisch aufzurufen <kbd> </kbd>.

Ich möchte es zuweisen, um Shift+ Control+ zu sagen, Koder was auch immer Tastatursteuerzeichenkombination nicht zugewiesen und bereits von Ubuntu verwendet wird.

Zu Zeiten von TSR (Terminate and Stay Resident) MS-DOS-Programmen war dies möglich. Sicher muss es auch in Ubuntu sein?

Muss ich einen Daemon schreiben, um dies zu erreichen?

WinEunuuchs2Unix
quelle
Punkte, um die TSR
aufzurufen

Antworten:

16

Ich habe hier andere Fragen ( Wie kann ich meinen Tastaturtasten unter Ubuntu Makros zuweisen, ähnlich wie bei Razer-Tastaturmakros unter Windows? ) Und hier ( was ist ein guter Maus- / Tastaturmakrorecorder? ) Ohne Antwort gefunden.

Ich habe hier eine ähnliche Frage mit einer Antwort gefunden ( Kann ich Tastenkombinationen zum Implementieren von Textmakros verwenden? ). Diese Frage stellte jedoch fest, dass die Antwort nicht lauten konnte AutoKey.

Ich googelte ein wenig und fand das Programm AutoKey ( Autokey - Linux-Dienstprogramm für Textsubstitutions-Hotkeys ) ganz oben auf der Liste.

Anstelle eines Hotkeys mit Ctrl+ Shift+ habe Kich die Abkürzung "k z" (ohne Leerzeichen dazwischen) verwendet, die automatisch zu "<kbd> </ kbd> +" (ohne Leerzeichen dazwischen) erweitert wird.

Es wird einfach installiert mit:

sudo apt install autokey-gtk

Es wird in Launcher installiert und der Bildschirm ist recht einfach zu bedienen:

Autokey

WinEunuuchs2Unix
quelle
13

Was auch getan werden kann, ist die Verwendung xdotoolmit typeflag, wie folgt :

bash -c ' sleep 0.5; xdotool getactivewindow  type "<kbd></kbd>"'

Gehen Sie zu Systemeinstellungen-> Tastatur-> Tastenkombinationen -> Benutzerdefiniert und binden Sie diesen Befehl an die gewünschte Tastenkombination. Ich habe gewählt CtrlSuperK. Was hier passiert, ist, dass wir dem Benutzer eine Verzögerung von 0,5 Sekunden einräumen, xdotoolum die Tastenkombination freizugeben, und dann die Tastenmarkierungs-Tags so eingeben, als ob Sie es selbst auf der Tastatur tun würden. Sehr einfach und unkompliziert. Tatsächlich werde ich es gerade benutzt, um diese 3 Schlüssel oben einzufügen.

Beachten Sie, dass xdotoolUbuntu standardmäßig nicht mitgeliefert wird, sodass Sie es über installieren müssensudo apt-get install xdotool

Sergiy Kolodyazhnyy
quelle
Können Sie den Einfügezeiger auch zurücksetzen, sodass er zwischen <kbd>und liegt </kbd>?
Gerechtigkeit für Monica
4
Ich benutze bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left', um den Textcursor zwischen den Code-Tags zu bekommen.
Gerechtigkeit für Monica
1

Wenn Sie eine Compose- Datei haben, können Sie diese als Hilfsprogramm zum Einfügen von Text verwenden.

Sie können einige der Modifikatoren in X verwenden. Anscheinend können Sie sie Shiftals Modifikator verwenden:

! Ctrl Shift <k> : "<kbd></kbd>"

Das funktioniert aber zumindest auf meinem Rechner nicht.

Dies funktioniert auch nicht (weggelassen Shift, großgeschrieben K):

! Ctrl <K> : "<kbd></kbd>"

Sie können jedoch Ctrlund Ctrl+ verwenden Alt:

! Ctrl Alt <k> : "<kbd></kbd>"
! Ctrl <k> : "<kbd></kbd>"

Den Cursor richtig platzieren

Die obigen Zuordnungen platzieren den Cursor nach der Zeichenfolge ( |zeigt den Cursor an):

<kbd></kbd>|

Ich gehe davon aus, dass es keine allgemeine Lösung gibt, um den Cursor innerhalb des Tags zu platzieren. Dafür müssten Sie ein geeignetes Werkzeug verwenden. Sie können jedoch in bestimmten Anwendungen den Cursor in das Tag bewegen.

Ich benutze gnome-terminalmit Bash, die Readline-Tastenkombinationen (Emacs-like) verwendet. Ctrl-bist die Tastenkombination, um ein Zeichen zurückzuspringen. In meinem Terminal kann Ctrl+v bich das Steuerzeichen ^B(U + 0002 (Textanfang)) eingeben und abrufen. Geben Sie am Ende der Zeichenfolge sechs dieser Zeichen ein:

! Ctrl Alt <k> : "<kbd></kbd>^B^B^B^B^B^B"

Der Cursor wird innerhalb des Tags platziert, wenn Sie sich in einer Anwendung befinden, die ^Bkorrekt interpretiert (z. B. Terminals und Emacs):

<kbd>|</kbd>

Verwenden Sie den Erstellungsschlüssel

Sie können natürlich den Erstellungsschlüssel ( <Multi_key>) verwenden, um dasselbe zu erreichen. Verwenden Sie zum Beispiel t("Tag") und k("Tastatur"):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
Guildenstern
quelle