Voglia di Linux

avventure e soddisfazioni usando software libero

Sostituire caratteri dei tasti

closeQuesto articolo è stato pubblicato 4 anni 8 mesi 10 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

A volte sia perché è rotto fisicamente un tasto, sia perché la mappatura non lo identifica correttamente potrebbe essere necessario di imporre un carattere diverso, rimappare uno o più tasti soli. Lanciamo da terminale

xev

che ci apre una piccola finestra bianca, che dobbiamo lasciare a fuoco, mentre premiamo i due tasti che vogliamo scambiare. Esempio vogliamo mettere la d sul tasto ò/ç, nel terminale viene stampato (ci interessa solo le voci con KeyPress:

KeyPress event, serial 36, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68514751, (938,793), root:(1416,1016),
state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XmbLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68514887, (938,793), root:(1416,1016),
state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68519295, (938,793), root:(1416,1016),
state 0x1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XmbLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68519383, (938,793), root:(1416,1016),
state 0x1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False

Ora sappiamo il keycode di d (40) e il keycode di ò/ç, 47:
keycode 40 (keysym 0x64, d)
keycode 47 (keysym 0xe7, ccedilla)keycode 47 (keysym 0xe7, ccedilla)

Basta dare

xmodmap -e ‘keycode 47 = d’

Ovviamente questo funziona solo per la sessione attuale, se vogliamo che sia perenne basta creare uno script in avvio automatico.



Leave a Reply

Continuando navigare nel sito accetti l'utilizzo dei cookie. maggiori informazioni

Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella pagina sulla privacy. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.

Chiudi