Эмуляция Numpad в Linux

У моего ноутбука нет numpad, даже тех, в которых он активирован клавишей FN.

Когда я использовал окна, я использовал AutoHotkey со сценарием, который я заменил ключами QWEASDZXC на 789456123, и если я хочу отключить его, просто нужно ввести F12.

Есть ли способ сделать это в Linux?

2
задан 2 April 2017 в 17:49

3 ответа

Я могу придумать пару способов сделать это с XKB, но это не для слабонервных.

Создайте пользовательский символ, который добавит ваши номера в «level3» или «level5» выбранных вами ключей. (AltGr - это клавиша ISO_Level3_Shift, используемая в неамериканских или американских шаблонах для символов). Обычно эти клавиши действуют как Shift - вам придется удерживать их, пока вы вводите цифры. Но ваш новый вариант может заставить их действовать скорее как CapsLock, если это необходимо. Такой вариант затем переопределит привязки по умолчанию для этих букв для добавления чисел. // emulate numpad on first 3 columns of alphabetic keys // initial key definitions from /usr/share/X11/xkb/symbols/us // ("intl" stanza) partial xkb_symbols "qweasdzxc" { // numbers on level3 (RightAlt chooses lv3) include "level3(ralt_switch)" key <AD01> { [ q, Q, 7, division ] }; key <AD02> { [ w, W, 8, multiply ] }; key <AD03> { [ e, E, 9, minus ] }; // etc ... // OR ... // numbers on level5 (RightCtrl chooses lv5) include "level5(rctrl_switch)" key <AD01> { [ q, Q, adiaeresis, Adiaeresis, 7, division ] }; key <AD02> { [ w, W, aring, Aring, 8, multiply ] }; key <AD03> { [ e, E, eacute, Eacute, 9, minus ] }; // etc ... }; // end "qweasdzxc" // rules to load this as an option ! option = symbols lv3:qweasdzxc = +filename(qweasdzxc) // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us -option lv3:qweasdzxc Сделайте пустой макет, который испускает только эти числа на этих клавишах и других буквенно-цифровых символов. Когда вы загружаетесь в качестве второго макета, у вас должен быть предопределенный ключ переключателя макета и он будет использовать это для переключения между вашим основным макетом и этим. Опять же, клавиша переключателя компоновки может быть сконфигурирована как Shift (только макеты коммутатора в режиме ожидания) или CapsLock. // emulate numpad on first 3 columns of alphabetic keys // leave other alphanumeric keys undefined // otherwise from /usr/share/X11/xkb/symbols/us (basic stanza) default partial alphanumeric_keys modifier_keys xkb_symbols "qweasdzxc" { name[Group1]= "Numpad Emulation"; key <AD01> { [ 7, division ] }; // q key <AD02> { [ 8, multiply ] }; // w key <AD03> { [ 9, minus ] }; // e key <AC01> { [ 4, F ] }; // a key <AC02> { [ 5, E ] }; // s key <AC03> { [ 6, D ] }; // d key <AB01> { [ 1, C ] }; // z key <AB02> { [ 2, B ] }; // x key <AB03> { [ 3, A ] }; // c // hexadecimal just for fun, replace if desired }; // end "qweasdzxc" // rules to load this as a layout ! layout = symbols qweasdzxc = qweasdzxc // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us,qweasdzxc -option grp:caps_toggle

Любой из этих параметров может быть реализован путем изменения файлов системы XKB в /usr/share/X11/xkb/{symbols,rules} или путем сохранения ваших настроек в локальных файлах конфигурации XKB. Изменения в системных файлах могут быть уничтожены обновлением до пакета xkeyboard-config, но более легки в использовании с инструментами настройки макета системы, такими как /etc/default/keyboard или демоном настроек GNOME.

1
ответ дан 18 July 2018 в 15:39

Я могу придумать пару способов сделать это с XKB, но это не для слабонервных.

Создайте пользовательский символ, который добавит ваши номера в «level3» или «level5» выбранных вами ключей. (AltGr - это клавиша ISO_Level3_Shift, используемая в неамериканских или американских шаблонах для символов). Обычно эти клавиши действуют как Shift - вам придется удерживать их, пока вы вводите цифры. Но ваш новый вариант может заставить их действовать скорее как CapsLock, если это необходимо. Такой вариант затем переопределит привязки по умолчанию для этих букв для добавления чисел. // emulate numpad on first 3 columns of alphabetic keys // initial key definitions from /usr/share/X11/xkb/symbols/us // ("intl" stanza) partial xkb_symbols "qweasdzxc" { // numbers on level3 (RightAlt chooses lv3) include "level3(ralt_switch)" key <AD01> { [ q, Q, 7, division ] }; key <AD02> { [ w, W, 8, multiply ] }; key <AD03> { [ e, E, 9, minus ] }; // etc ... // OR ... // numbers on level5 (RightCtrl chooses lv5) include "level5(rctrl_switch)" key <AD01> { [ q, Q, adiaeresis, Adiaeresis, 7, division ] }; key <AD02> { [ w, W, aring, Aring, 8, multiply ] }; key <AD03> { [ e, E, eacute, Eacute, 9, minus ] }; // etc ... }; // end "qweasdzxc" // rules to load this as an option ! option = symbols lv3:qweasdzxc = +filename(qweasdzxc) // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us -option lv3:qweasdzxc Сделайте пустой макет, который испускает только эти числа на этих клавишах и других буквенно-цифровых символов. Когда вы загружаетесь в качестве второго макета, у вас должен быть предопределенный ключ переключателя макета и он будет использовать это для переключения между вашим основным макетом и этим. Опять же, клавиша переключателя компоновки может быть сконфигурирована как Shift (только макеты коммутатора в режиме ожидания) или CapsLock. // emulate numpad on first 3 columns of alphabetic keys // leave other alphanumeric keys undefined // otherwise from /usr/share/X11/xkb/symbols/us (basic stanza) default partial alphanumeric_keys modifier_keys xkb_symbols "qweasdzxc" { name[Group1]= "Numpad Emulation"; key <AD01> { [ 7, division ] }; // q key <AD02> { [ 8, multiply ] }; // w key <AD03> { [ 9, minus ] }; // e key <AC01> { [ 4, F ] }; // a key <AC02> { [ 5, E ] }; // s key <AC03> { [ 6, D ] }; // d key <AB01> { [ 1, C ] }; // z key <AB02> { [ 2, B ] }; // x key <AB03> { [ 3, A ] }; // c // hexadecimal just for fun, replace if desired }; // end "qweasdzxc" // rules to load this as a layout ! layout = symbols qweasdzxc = qweasdzxc // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us,qweasdzxc -option grp:caps_toggle

Любой из этих параметров может быть реализован путем изменения файлов системы XKB в /usr/share/X11/xkb/{symbols,rules} или путем сохранения ваших настроек в локальных файлах конфигурации XKB. Изменения в системных файлах могут быть уничтожены обновлением до пакета xkeyboard-config, но более легки в использовании с инструментами настройки макета системы, такими как /etc/default/keyboard или демоном настроек GNOME.

1
ответ дан 24 July 2018 в 20:41

Я могу придумать пару способов сделать это с XKB, но это не для слабонервных.

Создайте пользовательский символ, который добавит ваши номера в «level3» или «level5» выбранных вами ключей. (AltGr - это клавиша ISO_Level3_Shift, используемая в неамериканских или американских шаблонах для символов). Обычно эти клавиши действуют как Shift - вам придется удерживать их, пока вы вводите цифры. Но ваш новый вариант может заставить их действовать скорее как CapsLock, если это необходимо. Такой вариант затем переопределит привязки по умолчанию для этих букв для добавления чисел. // emulate numpad on first 3 columns of alphabetic keys // initial key definitions from /usr/share/X11/xkb/symbols/us // ("intl" stanza) partial xkb_symbols "qweasdzxc" { // numbers on level3 (RightAlt chooses lv3) include "level3(ralt_switch)" key <AD01> { [ q, Q, 7, division ] }; key <AD02> { [ w, W, 8, multiply ] }; key <AD03> { [ e, E, 9, minus ] }; // etc ... // OR ... // numbers on level5 (RightCtrl chooses lv5) include "level5(rctrl_switch)" key <AD01> { [ q, Q, adiaeresis, Adiaeresis, 7, division ] }; key <AD02> { [ w, W, aring, Aring, 8, multiply ] }; key <AD03> { [ e, E, eacute, Eacute, 9, minus ] }; // etc ... }; // end "qweasdzxc" // rules to load this as an option ! option = symbols lv3:qweasdzxc = +filename(qweasdzxc) // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us -option lv3:qweasdzxc Сделайте пустой макет, который испускает только эти числа на этих клавишах и других буквенно-цифровых символов. Когда вы загружаетесь в качестве второго макета, у вас должен быть предопределенный ключ переключателя макета и он будет использовать это для переключения между вашим основным макетом и этим. Опять же, клавиша переключателя компоновки может быть сконфигурирована как Shift (только макеты коммутатора в режиме ожидания) или CapsLock. // emulate numpad on first 3 columns of alphabetic keys // leave other alphanumeric keys undefined // otherwise from /usr/share/X11/xkb/symbols/us (basic stanza) default partial alphanumeric_keys modifier_keys xkb_symbols "qweasdzxc" { name[Group1]= "Numpad Emulation"; key <AD01> { [ 7, division ] }; // q key <AD02> { [ 8, multiply ] }; // w key <AD03> { [ 9, minus ] }; // e key <AC01> { [ 4, F ] }; // a key <AC02> { [ 5, E ] }; // s key <AC03> { [ 6, D ] }; // d key <AB01> { [ 1, C ] }; // z key <AB02> { [ 2, B ] }; // x key <AB03> { [ 3, A ] }; // c // hexadecimal just for fun, replace if desired }; // end "qweasdzxc" // rules to load this as a layout ! layout = symbols qweasdzxc = qweasdzxc // load from commandline. may need -I/path/to/custom/xkb setxkbmap -layout us,qweasdzxc -option grp:caps_toggle

Любой из этих параметров может быть реализован путем изменения файлов системы XKB в /usr/share/X11/xkb/{symbols,rules} или путем сохранения ваших настроек в локальных файлах конфигурации XKB. Изменения в системных файлах могут быть уничтожены обновлением до пакета xkeyboard-config, но более легки в использовании с инструментами настройки макета системы, такими как /etc/default/keyboard или демоном настроек GNOME.

1
ответ дан 31 July 2018 в 23:43

Другие вопросы по тегам:

Похожие вопросы: