我的笔记本电脑没有数字键盘,甚至没有通过 FN 键激活数字键盘的笔记本电脑。
当我使用 Windows 时,我使用 AutoHotkey 和一个脚本,我用 789456123 替换了 QWEASDZXC 键,如果我想禁用它只需输入 F12。
有没有办法在 Linux 中做到这一点?
答案1
我可以想到几种使用 XKB 来实现这一点的方法,但这并不适合胆小的人。
做一个自定义符号选项将您的数字添加到您选择的键的“level3”或“level5”。(AltGr是
ISO_Level3_Shift
键,用于非美国或美国国际布局中的 áçćéñþëd 字符。)通常这些键的作用就像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 配置文件。对系统文件的更改可能会因软件包更新而被消除,但使用系统布局设置工具(如或 GNOME 的设置守护进程)xkeyboard-config
会更容易使用。/etc/default/keyboard