È possibile scambiare il Shift sinistro e il CTRL sinistro chiavi usando setxkbmap
invece di xmodmap
?
MODIFICA
Sono passato a Fcitx, che funziona molto meglio con il layout della mia tastiera e la mappa dei tasti personalizzata rispetto a IBus sotto ogni aspetto. Lo consiglio vivamente.
Risposta accettata:
xmodmap
è obsoleto; quindi in effetti dovrebbe essere fatto con xkb
strumenti.
Lo scambio che desideri sembra non essere incluso per impostazione predefinita con i file X11; quindi devi scriverlo tu stesso.
La pagina https://web.archive.org/web/20170825051821/http://madduck.net/docs/extending-xkb/ mi ha aiutato a capire e trovare un modo per farlo.
Crea un file ~/.xkb/keymap/mykbd
dove metti l'output di setxkbmap
, sarà la definizione di base della tastiera; es:
setxkbmap -print > ~/.xkb/keymap/mykbd
quindi, crea un file di simboli per definire lo scambio di chiavi, mettilo ad esempio in ~/.xkb/symbols/myswap
lì, inserisci le seguenti righe:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
quindi, modifica il ~/.xkb/keymap/mykbd
file e cambia il xkb_symbols
riga da aggiungere
+myswap(swap_l_shift_ctrl)
infine, puoi caricarlo con xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(non puoi usare "~" per -I
parametro).
Probabilmente sputerà molti avvisi su simboli non definiti per alcune chiavi rare, ma puoi ignorarli (ad esempio, reindirizzare l'errore a dave:2> /dev/null
).
Se vuoi essere in grado di passare facilmente da uno normale a uno ctrl/shift invertito; crea semplicemente in ~/.xkb/keymap/
un altro file, senza l'opzione extra "myswap", e caricalo con xkbcomp
. Puoi creare due piccoli script per caricarli.