Zmień przypisanie kombinacji klawiszy do innej kombinacji, np. Super + Ctrl + Shift + J -> Ctrl + Shift + Left

11

Chcę zaimplementować dodatkową warstwę klucza, aby uzyskać dostęp do klawiszy niealfanumerycznych bez konieczności przesuwania nadgarstków.

Używam do tego celu Autokey, ale wrażenia były niezadowalające: miały sporadyczne opóźnienia i pozwalały oryginalnym naciśnięciom klawiszy przenikać do niektórych aplikacji.

Potrzebuję rozwiązania niskiego poziomu.

lolmaus - Andrey Mikhaylov
źródło
może być konieczne utworzenie niestandardowego wirtualnego sterownika wejściowego, aby to zrobić, co, jak sądzę, byłoby napisane w C
Amias,
@Amias, czy możesz to rozwinąć?
Lolmaus - Andrey Mikhaylov
możesz mieć sterownik xinput, który uruchamia normalny sterownik klawiatury, ale interpretuje naciśnięcia klawiszy przed przekazaniem ich do xorg, daje to pełną kontrolę, ale byłoby to średnio skomplikowane kilka dni pracy dla programisty C.
Amias

Odpowiedzi:

10

Wypróbuj kombinację klawiszy xbindkeys i xvkbd . xbindkeys nasłuchuje kluczy i wyśle ​​tłumaczenie do xvkbd.

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

Otwórz .xbindkeysrc w swoim ulubionym edytorze. Skomentowałem wszystko inne, ale w razie potrzeby dobrze jest odwołać się.

Aby to sprawdzić, próbowałem mapować Ctrl +; na Ctrl + V.

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

Oczekuję, że szukasz czegoś takiego

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

Zapisz plik, a następnie uruchom klawisze xbindkeys

Aby ponownie załadować wszelkie zmiany konfiguracji, zabiłem proces xbindkeys, a następnie uruchomiłem ponownie.

Składnia xbindkeys

Opracowałem kombinację klawiszy za pomocą GUI dla xbindkeys

sudo apt-get install xbindkeys-config
xbindkeys-config

Po uruchomieniu naciśnij klawisz Get, aby kombinację umieścić w drugim wierszu pliku .xbindkeysrc.

Składnia xvkbd

Z instrukcji:

\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

Uwielbiam słyszeć, jak to działa i czy połączenie było odpowiednie dla Twojego celu. Wygląda dobrze jako program do zmiany klawiszy, ale niekoniecznie makro-runner.

Mark Hewitt
źródło
Hej, MarkHewitt! Dziękuję bardzo za szczegółową odpowiedź! Niestety, nie działa to dla mnie zbyt dobrze: oryginalne naciśnięcie klawisza ciągle mija, co psuje całość.
Lolmaus - Andrey Mikhaylov