Мой ноутбук не имеет цифровой клавиатуры, даже те, в которых он активируется ключом FN.
Когда я использовал окна, я использовал AutoHotkey со сценарием, что я заменил ключи QWEASDZXC 789456123, и если я хочу отключить его, просто нуждаются к типу F12.
Существует ли способ сделать это в Linux?
Я могу придумать пару способов сделать это с XKB, но это не для слабонервных.
Сделайте опцию пользовательского символа , которая добавляет ваши номера к «level3» или «level5» выбранных вами клавиш. ( AltGr kbd> - это клавиша ISO_Level3_Shift
, используемая в раскладках не для США и США для международных символов.) Обычно эти клавиши действуют как Shift kbd> - вам придется удерживать их, пока вы набираете цифры. Но ваш новый вариант может сделать их более похожими на CapsLock kbd>, если предпочтительнее. Такая опция затем переопределит привязки по умолчанию вашего макета для этих букв, чтобы добавить цифры.
// 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 kbd> (переключать макеты только во время удержания) или CapsLock kbd>.
// 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.