Ubuntu 20.04
我使用 xkb 创建了一个新的键盘键盘映射,并将 Caps Lock 键重新映射为左控制键,但是,一些键盘组合键(例如 ctrl+shift+c 和 ctrl+shift+s)不起作用(使用 xev 时没有输出)。
但是,当我使用右控制键时,这些快捷键似乎有效。当控制键映射到另一个键(例如退格键)时,它们也有效。直观地讲,我尝试将 Caps Lock 重新映射到右控制键,但这也不起作用,事实上,这导致实际的右控制键也不起作用。
我怀疑这是键码的问题,因为将“c”映射到另一个键并不能解决问题,而且其他布局(例如 Colemak)也存在此问题。
这是我能够用在另一台计算机上重现该问题的 xkb 源文件。
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
partial alphanumeric_keys
xkb_symbols "colemak-programmer" {
include "pc"
include "us(basic)"
name[Group1]= "English (Programmer Colemak)";
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleftquotemark ] };
key <AE10> { [ 0, parenrightequotemark ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ f, F ] };
key <AD04> { [ p, P ] };
key <AD05> { [ b, B ] };
key <AD06> { [ j, J ] };
key <AD07> { [ l, L ] };
key <AD08> { [ u, U ] };
key <AD09> { [ y, Y ] };
key <AD10> { [ semicolon, colon ] };
key <AD11> { [ BackSpace ] };
key <AD12> { [ BackSpace ] };
key <BKSL> { [ backslash, bar ] };
key <AC01> { [ a, A, bracketleft ] };
key <AC02> { [ r, R, braceleft ] };
key <AC03> { [ s, S, equal ] };
key <AC04> { [ t, T, parenleft ] };
key <AC05> { [ g, G, asterisk ] };
key <AC06> { [ k, K, minus ] };
key <AC07> { [ n, N, parenright ] };
key <AC08> { [ e, E, underscore ] };
key <AC09> { [ i, I, braceright ] };
key <AC10> { [ o, O, bracketright ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ x, X ] };
key <AB02> { [ c, C ] };
key <AB03> { [ d, D ] };
key <AB04> { [ v, V ] };
key <AB05> { [ ISO_Level3_Shift ] };
key <AB06> { [ m, M ] };
key <AB07> { [ h, H ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
key <LSGT> { [ minus, underscore ] };
key <SPCE> { [ space, space ] };
key <CAPS> { [ Control_L ] };
key <BKSP> { [ 0, BackSpace ] };
key <LCTL> { [ z, Z ] };
};
xkb_geometry { include "pc(pc101)" };
};