Перейдіть комбінацію клавіш до іншої комбінації, наприклад, Super + Ctrl + Shift + J -> Ctrl + Shift + Left


11

Я хочу реалізувати шар додаткового ключа, щоб я міг отримати доступ до не буквено-цифрових клавіш без необхідності рухати зап’ястя.

Я використовував Autokey для цієї мети, але досвід виявився незадовільним: він періодично затримувався і дозволяв оригінальним натисканням клавіш ковзати в певні програми.

Тому мені потрібно рішення низького рівня.


вам, можливо, доведеться створити користувальницький віртуальний драйвер для цього, для чого я б здогадався, що це буде написано в C
Amias

@Amias, ви можете, будь ласка, докладно?
lolmaus - Андрій Михайлов

у вас може бути драйвер xinput, який запускає звичайний драйвер клавіатури, але інтерпретує натискання клавіш, перш ніж передати їх на xorg, це дасть вам повний контроль, але це буде помірно складною парою роботи для програміста на C.
Амія

Відповіді:


10

Спробуйте поєднання xbindkeys та xvkbd . xbindkeys слухає ключі та надсилає переклад xvkbd.

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

Відкрийте .xbindkeysrc у вашому улюбленому редакторі. Я прокоментував все інше, але добре звернутися до цього, якщо потрібно.

Щоб перевірити це, я спробував зіставити Ctrl +; до Ctrl + V

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

Я очікую, що ти робиш щось подібне

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

Збережіть файл, потім запустіть xbindkeys

Щоб перезавантажити будь-які зміни конфігурації, я вбив процес xbindkeys, а потім перезапустив.

синтаксис xbindkeys

Я розробив комбінацію клавіш, використовуючи графічний інтерфейс для xbindkeys

sudo apt-get install xbindkeys-config
xbindkeys-config

Після цього натисніть клавішу Get, щоб комбінація була розміщена у другому рядку .xbindkeysrc-файлу.

синтаксис xvkbd

З посібника:

\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

Любите почути, як це виходить і чи поєдналося з вашими цілями. Це добре виглядає як клавішник, але не обов'язково як біг-макрос.


Гей, @MarkHewitt! Дуже дякую за детальну відповідь! На жаль, це для мене працює не дуже добре: оригінальне натискання клавіш продовжує проникати, що руйнує всю справу.
lolmaus - Андрій Михайлов

0

Я думаю, що ви можете знайти рішення тут (адже Xorg - найнижчий рівень ...): https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg

EDIT: для того, що я зрозумів, вам потрібно додати параметр lv3:win_switchу файл .conf


1
Мені потрібен конкретний приклад.
lolmaus - Андрій Михайлов

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.