Ordnen Sie eine Tastenkombination einer anderen Kombination zu, z. B. Super + Strg + Umschalt + J -> Strg + Umschalt + Links

11

Ich möchte eine zusätzliche Schlüsselebene implementieren, damit ich auf nicht alphanumerische Schlüssel zugreifen kann, ohne meine Handgelenke bewegen zu müssen.

Ich habe Autokey für diesen Zweck verwendet, aber die Erfahrung war unbefriedigend: Es gab gelegentliche Verzögerungen und ließ ursprüngliche Tastenanschläge in bestimmte Apps einfließen.

Ich brauche also eine einfache Lösung.

lolmaus - Andrey Mikhaylov
quelle
Möglicherweise müssen Sie einen benutzerdefinierten virtuellen Eingabetreiber erstellen, um dies zu tun. Ich würde vermuten, dass dies in C
Amias
@ Amias, kannst du das bitte näher erläutern?
lolmaus - Andrey Mikhaylov
Sie könnten einen xinput-Treiber haben, der den normalen Tastaturtreiber ausführt, aber die Tastenanschläge interpretiert, bevor Sie sie an xorg weitergeben. Dies würde Ihnen die vollständige Kontrolle geben, wäre aber für einen C-Programmierer ein mäßig komplexes paar Tage Arbeit.
Amias

Antworten:

10

Probieren Sie eine Kombination aus xbindkeys und xvkbd aus . xbindkeys wartet auf die Schlüssel und sendet die Übersetzung an xvkbd.

sudo apt-get install xbindkeys xvkbd
xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

Öffnen Sie .xbindkeysrc in Ihrem bevorzugten Editor. Ich habe alles andere auskommentiert, aber es ist gut, bei Bedarf darauf zu verweisen.

Um es zu überprüfen, habe ich versucht, Strg + zuzuordnen. auf Strg + V.

"xvkbd -xsendevent -text "\Cv""
   control + semicolon

Ich gehe davon aus, dass Sie nach so etwas suchen

"xvkbd -xsendevent -text "\C\S\[Left]""
  Super+Control+Shift+J

Speichern Sie die Datei und führen Sie xbindkeys aus

Um Konfigurationsänderungen neu zu laden, habe ich den xbindkeys-Prozess abgebrochen und dann neu gestartet.

xbindkeys Syntax

Ich habe die Tastenkombination mithilfe einer GUI für xbindkeys ermittelt

sudo apt-get install xbindkeys-config
xbindkeys-config

Sobald Sie dies ausgeführt haben, drücken Sie die Eingabetaste, um die Kombination in die zweite Zeile Ihrer .xbindkeysrc-Datei einzufügen.

xvkbd-Syntax

Aus dem Handbuch:

\r - Return
\t - Tab
\b - Backspace
\e - Escape
\d - Delete
\S - Shift (modify the next character; please note that modify with ``\S'' will be ignored in many cases. For example, ``a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)
\C - Control (modify the next character)
\A - Alt (modify the next character)
\M - Meta (modify the next character)
\[keysym] - the keysym keysym (e.g., \[Left]), which will be processed in the similar matter with other general characters
\{keysym} - the keysym keysym (e.g., \{Left}), which will be processed in more primitive matter and can also be used for modofier keys such as Control_L, Meta_L, etc.; also, \{+keysym} and \{+keysym} will simulate press and release of the key, respectively [Version 3.3]
\Ddigit - delay digit * 100 ms
\xvalue - move mouse pointer (use "+" or "-" for relative motion)
\yvalue - move mouse pointer (use "+" or "-" for relative motion)
\mdigit - simulate click of the specified mouse button

Ich liebe es zu hören, wie es funktioniert und ob die Kombination für Ihren Zweck geeignet war. Als Keymapper sieht es gut aus, aber nicht unbedingt als Makroläufer.

Mark Hewitt
quelle
Hey @MarkHewitt! Vielen Dank für die ausführliche Antwort! Leider funktioniert das bei mir nicht sehr gut: Der ursprüngliche Tastendruck kommt immer wieder durch, was das Ganze ruiniert.
lolmaus - Andrey Mikhaylov