Voglio mescolare alcune chiavi in giro con XKB. (Perché? Su un laptop in cui alcune chiavi si trovano in una posizione scomoda.) Attualmente utilizzo xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Invece voglio usare XKB e assegnare nomi simbolici diversi per determinate chiavi fisiche, piuttosto che assegnare keysyms diversi a determinati codici chiave. (Ecco perché.) Voglio che il codice chiave 110 invii PGUP
invece di HOME
, codice chiave 115 per inviare DELE
invece di END
, ecc. Il resto della configurazione non deve essere influenzato (quindi PGUP
è continuare a inviare il keysym Prior
, ecc. e tutte le altre chiavi rimangono come sono).
Come posso modificare l'assegnazione di questi codici chiave specifici? Carico un file con xkbcomp somefile.xkb $DISPLAY
, cosa devo inserire in somefile.xkb
?
Risposta accettata:
Crea un file contenente le modifiche al codice chiave e salvalo come (ad esempio) ~/.xkb/keycodes/local
. (I keycodes
la directory è codificata; la directory di base può essere qualcos'altro e anche il nome del file.) Questo conterrà nel tuo caso
xkb_keycodes {
<PGUP> = 110;
<PGDN> = 112;
<DELE> = 115;
<INS> = 117;
<HOME> = 118;
<END> = 119;
};
Per caricarlo, esegui
setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY
Questo emette le tue impostazioni attuali, aggiunge +local
al xkb_keycodes
include
istruzione e lo carica nel compilatore XKB, aggiungendo ~/.xkb
al percorso di inclusione. (Se hai assegnato al file un nome diverso da ~/.xkb/keycodes/local
, dovrai ovviamente cambiare +local
e -I${HOME}/.xkb}
.) In questo modo vengono conservate tutte le altre impostazioni.