Ubuntu
XKB 無法辨識我的自定義佈局
我為我的 Lubuntu 18.04 基於 Colemak 創建了一個自定義鍵盤佈局(文件名為“brc”),並將其複製到 /usr/share/X11/xkb/symbols:
default partial xkb_symbols "basic" { name[Group1]= "brc"; // Alphanumeric section key <TLDE> { [ apostrophe, quotedbl, notsign, notsign ] }; key <AE01> { [ 1, exclam, onesuperior, exclamdown ] }; key <AE02> { [ 2, at, twosuperior, onehalf ] }; key <AE03> { [ 3, numbersign, threesuperior, threequarters ] }; key <AE04> { [ 4, dollar, sterling, onequarter ] }; key <AE05> { [ 5, percent, cent, threeeighths ] }; key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] }; key <AE07> { [ 7, ampersand, braceleft, seveneighths ] }; key <AE08> { [ 8, asterisk, bracketleft, trademark ] }; key <AE09> { [ 9, parenleft, bracketright, plusminus ] }; key <AE10> { [ 0, parenright, braceright, degree ] }; key <AE11> { [ minus, underscore, endash, questiondown ] }; key <AE12> { [ equal, plus, section, dead_ogonek ] }; key <AE13> { [ bracketright, braceright, masculine, masculine ] }; key <BKSP> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; key <AD01> { [ q, Q, slash, slash ] }; key <AD02> { [ w, W, question, question ] }; key <AD03> { [ f, F, EuroSign, EuroSign ] }; key <AD04> { [ p, P, thorn, THORN ] }; key <AD05> { [ g, G ] }; key <AD06> { [ j, J, yen ] }; key <AD07> { [ l, L ] }; key <AD08> { [ u, U ] }; key <AD09> { [ y, Y, oacute, Oacute ] }; key <AD10> { [ ccedilla, Ccedilla, ] }; key <AD11> { [ dead_acute, dead_grave, acute, grave ] }; key <AD12> { [ bracketleft, braceleft, ordfeminine, dead_macron ] }; key <AC01> { [ a, A, ae, AE ] }; key <AC02> { [ r, R, registered, registered ] }; key <AC03> { [ s, S ] }; key <AC04> { [ t, T ] }; key <AC05> { [ d, D ] }; key <AC06> { [ h, H ] }; key <AC07> { [ n, N ] }; key <AC08> { [ e, E ] }; key <AC09> { [ i, I ] }; key <AC10> { [ o, O, oe, OE ] }; key <AC11> { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; key <AC12> { [ slash, question, questiondown ] }; key <AB01> { [ z, Z, guillemotleft ] }; key <AB02> { [ x, X, guillemotright ] }; key <AB03> { [ c, C copyright, copyright ] }; key <AB04> { [ v, V ] }; key <AB05> { [ b, B ] }; key <AB06> { [ k, K ] }; key <AB07> { [ m, M, mu, mu ] }; key <AB08> { [ comma, less ] }; key <AB09> { [ period, greater ] }; key <AB10> { [ semicolon, colon ] }; key <SPCE> { [ space, space, space, nobreakspace ] }; // Configures the "," for the numeric keypad include "kpdl(comma)" // Configures the use of the AltGr key include "level3(ralt_switch)" };
我還更改了 /usr/share/X11/xkb/rules 中的以下文件:
在 evdev.xml
<layout> <configItem> <name>brc</name> <shortDescription>custom-clmk</shortDescription> <description>custom-colemak-abnt2</description> <languageList> <iso639Id>por</iso639Id> </languageList> </configItem> <variantList/> </layout>
在 evdev.lst
! layout brc abnt2+colemak
這是結果:
~$ setxkbmap -v brc Warning! Multiple definitions of keyboard layout Using command line, ignoring X server Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+brc+inet(evdev) geometry: pc(pc105) Error loading new keyboard description
另外,這是我目前的佈局:
~$ setxkbmap -v Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+br+inet(evdev) geometry: pc(pc105)
如何讓 xkb 辨識我的自定義佈局?
AD10
如果您只想設置兩個級別,則在 Ccedilla 之後似乎有一個逗號打破了定義。您也只設置了兩個級別的其他鍵似乎很好。在 AB03 中 C 和版權之間也缺少逗號。
key <AD10> { [ ccedilla, Ccedilla ] }; // ... key <AB03> { [ c, C, copyright, copyright ] }; ...
我決定嘗試使用 Xmodmap 來重新映射我的鍵盤佈局而不是 XKB,並且效果很好。與 Xmodmap 相比,在 XKB 中創建自定義佈局似乎過於復雜,我推薦 Xah Lee關於後者的教程。謝謝你的幫助。