1 2 3 4 5 6 | // Mandatory to extend the ! include %S/evdev ! option = symbols cweiske:kinesis = +cweiske(kinesis) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd"> <xkbConfigRegistry version="1.1"> <layoutList> <layout> <configItem> <name>cweiske</name> <shortDescription>cweiske kinesis</shortDescription> <description>cweiske (English intl., with AltGr dead keys)</description> <countryList> <iso3166Id>US</iso3166Id> <iso3166Id>DE</iso3166Id> </countryList> <languageList> <iso639Id>eng</iso639Id> <iso639Id>deu</iso639Id> </languageList> </configItem> </layout> </layoutList> </xkbConfigRegistry> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | partial alphanumeric_keys xkb_symbols "kinesis" { include "pc+us(altgr-intl)+inet(evdev)" name[Group1] = "cweiske (English intl., with AltGr dead keys)"; key <AC01> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ a, A, adiaeresis, Adiaeresis ] }; key <AD03> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ e, E, EuroSign, EuroSign ] }; key <AD07> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ u, U, udiaeresis, Udiaeresis ] }; key <AD09> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ o, O, odiaeresis, Odiaeresis ] }; }; |
https://xkbcommon.org/doc/current/user-configuration.html https://xkbcommon.org/doc/current/debugging.html https://p.cweiske.de/678 https://www.mkammerer.de/blog/custom-keyboard-layouts-in-cinnamon/ https://codeaffen.org/2023/09/16/custom-keyboard-layouts-with-xkb/ áóúé Englisch (International, mit AltGr-Akzenttasten) /var/lib/dpkg/info/keyboard-configuration.config de*variant*us*altgr-intl*English (USA) - Englisch (International, mit AltGr-Akzenttasten) /usr/share/X11/xkb/symbols/pc partial alphanumeric_keys modifier_keys xkb_symbols "hyper" { name[Group1]= "Hyper (US)"; include "us(basic)" key <PRSC> { [ Hyper_L ] }; modifier_map Mod3 { <PRSC> }; }; l$ setxkbmap -query rules: evdev model: pc105 layout: us variant: altgr-intl /.config/xkb/symbol/us partial xkb_symbols "pc+us(altgr-intl)+inet(evdev)" { include "pc+us(altgr-intl)+inet(evdev)" key <AD03> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ e, E, EuroSign, EuroSign ] }; key <AC01> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ a, A, ae, AE ] }; key <AD07> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ u, U, ue, UE ] }; key <AD09> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ o, O, oe, OE ] }; } tail -f ~/.xsession-errors xkbcli compile-keymap --include ~/.config/xkb --include-defaults --layout custom|less xkbcli list compilation errors: root@gpc-rom:/home/cweiske/.config/xkb# xkbcli interactive-evdev --include /home/cweiske/.config/xkb --include-defaults --layout 'us(cweiske)' udevadm trigger --subsystem-match=input --action=change emacs /usr/share/X11/xkb/rules/evdev.xml root@gpc-rom:/usr/share/X11/xkb/symbols# ln -s /home/cweiske/.config/xkb/symbols/cweiske . cweiske@gpc-rom:~$ tail -f ~/.xsession-errors Error: Can't find file "cweiske" for symbols include Exiting Abandoning symbols file "(null)" (csd-keyboard:447450): csd-keyboard-WARNING **: 13:28:46.817: Could not activate the XKB configuration Error: Can't find file "cweiske" for symbols include Exiting Abandoning symbols file "(null)" (csd-keyboard:447450): csd-keyboard-WARNING **: 13:29:24.217: Could not activate the XKB configuration -> symlink