custom xkb layout 2025 debian 13 cinnamon 6.4

revision f4b15e1039f301998e2c93d5ff739eed8e2b24be

raw

.config/xkb/rules/evdev

1
2
3
4
5
6
// Mandatory to extend the
! include %S/evdev
 
! option     = symbols
  cweiske:kinesis = +cweiske(kinesis)
 
raw

.config/xkb/rules/evdev.xml

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>
 
raw

.config/xkb/symbols/cweiske

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 ]
    };
};
 
raw

phork0.txt

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

History