Chci zamíchat pár klíčů s XKB. (Proč? Na notebooku, kde jsou některé klávesy nevhodně umístěny.) Momentálně používám xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Místo toho chci používat XKB a přiřazovat různá symbolická jména pro určité fyzické klíče, spíše než přiřazovat různé klíčové symboly určitým kódům kláves. (To je důvod.) Chci, aby kód klíče 110 posílal PGUP
místo HOME
, klíčový kód 115 pro odeslání DELE
místo END
, atd. Zbytek konfigurace nesmí být ovlivněn (takže PGUP
je pokračovat v odesílání keyym Prior
, atd. a všechny ostatní klávesy zůstanou tak, jak jsou).
Jak mohu změnit přiřazení těchto specifických kódů klíčů? Načtu soubor s xkbcomp somefile.xkb $DISPLAY
, co potřebuji vložit do somefile.xkb
?
Přijatá odpověď:
Vytvořte soubor obsahující změny kódu klíče a uložte jej jako (například) ~/.xkb/keycodes/local
. (keycodes
adresář je pevně zakódován; základní adresář může být něco jiného a název souboru také.) Toto bude ve vašem případě obsahovat
xkb_keycodes {
<PGUP> = 110;
<PGDN> = 112;
<DELE> = 115;
<INS> = 117;
<HOME> = 118;
<END> = 119;
};
Chcete-li to načíst, spusťte
setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY
Tím se zobrazí vaše aktuální nastavení, přidá se +local
do xkb_keycodes
include
a načte jej do kompilátoru XKB s přidáním ~/.xkb
na zahrnutou cestu. (Pokud jste soubor pojmenovali jinak než ~/.xkb/keycodes/local
, budete samozřejmě muset změnit +local
a -I${HOME}/.xkb}
.) Tímto způsobem zůstanou všechna ostatní nastavení zachována.