Come scambiare a livello di codice i tasti maiuscole e Esc?


18

Sono un forte utente di Vim e una delle prime cose che faccio quando inizio a lavorare su un'installazione Ubuntu pulita è scambiare i tasti maiuscole e Esc per ridurre i movimenti delle mani sulla tastiera.

Finora ho fatto attraverso la finestra di configurazione della tastiera, ma ora sto scrittura una serie di script che impostare Ubuntu il modo in cui mi piace e non sono stato in grado di trovare un script modo o programmabile per cambiare questo elemento di configurazione.

Non sto cercando opzioni che scambino i tasti a un livello diverso da quello di Gnome stesso, quindi quello che sto cercando è un modo per scrivere questo cambiamento e farlo apparire nella configurazione della tastiera che usavo usare, se dovessi decidere di ripristinalo manualmente in futuro.


bella idea! mi sono sempre lamentato di aver mosso la mano per Esc mentre lavoravo a Vim, ma ora questa è la soluzione! grazie fratello ;-)
sazary

1
Fai attenzione, tuttavia, una volta che ti sei abituato a farli scambiare, diventa imbarazzante quando devi lavorare sulla tastiera di qualcun altro :)
Jacobo de Vera,

2
Un'altra opzione è Ctrl-C invece di Esc. (Funziona su tutte le tastiere.
Eric Wilson,

@FarmBoy, fantastico! Non lo sapevo!
Jacobo de Vera,

Risposte:


22

Puoi farlo tramite la GUI aprendo il Keyboard Preferencespannello di controllo (sotto System -> Preferences) e selezionando la Layoutscheda. Fare clic sul Options...pulsante per aprire la finestra di dialogo delle opzioni di layout. Espandi la Caps Lock key behavioursezione e seleziona Swap ESC and Caps Lock.

Ci sono alcuni modi in cui potresti scrivere questo tipo di cose.

Direttamente tramite Xkb

Possiamo apportare la modifica direttamente con quanto segue:

setxkbmap -option caps:swapescape

Puoi disabilitare tutte le opzioni di layout correnti (che restituiranno il blocco maiuscole al suo comportamento predefinito) con:

setxkbmap -option ''

Tramite GConf

Il pannello di controllo delle preferenze della tastiera memorizza la sua configurazione tramite gconf, con il layout effettivamente applicato da gnome-settings-daemon. Pertanto, puoi fare gnome-settings-daemonin modo di regolare il layout aggiornando te stesso gconf.

L'impostazione pertinente in questo caso sembra essere /desktop/gnome/peripherals/keyboard/kbd/options. Quindi puoi impostare l'opzione con:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

In quanto sopra, <tab>dovrebbe essere un carattere di tabulazione letterale piuttosto che spazi. È possibile disabilitare nuovamente il comportamento impostando la chiave gconf su un elenco vuoto.


L'opzione gconf è esattamente quello che stavo cercando, tuttavia la tua configurazione stava trasformando il blocco maiuscole in una chiave di escape e la chiave di escape in un tasto di tabulazione. Ho modificato di nuovo l'impostazione manualmente e ho dato un'occhiata al valore in gconf-editor, in realtà lo era [caps<tab>caps:swapescape]. Ora funziona tutto, accetto la tua risposta e ti suggerisco di modificarla per cambiare il valore per riferimento futuro. Grazie.
Jacobo de Vera,

@Jacobo In futuro, potresti suggerire la modifica da solo: basta premere il pulsante Modifica sotto la risposta. La tua modifica verrà rapidamente approvata da qualcuno. Ho fatto la modifica per te (controlla se è giusto). Comunque, bella risposta @James! +1
Stefano Palazzo

1
@Sfano, grazie, non avevo notato l'opzione di modifica.
Jacobo de Vera,

C'è un modo per farlo funzionare in GDM nella schermata di accesso?
lindhe,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.