Come cambiare in modo permanente Caps Lock ed Esc


116

Come posso cambiare permanentemente le funzioni dei tasti Caps Locke Escin Saucy? Posso usare questo comando per farlo temporaneamente (fino al riavvio):

/usr/bin/setxkbmap -option "caps:swapescape"

Ho provato ad aggiungere quel comando come applicazione di avvio, ma non sembra fare nulla.


1
Ho inserito quel comando nel mio ~/.bashrcmodo che persista tra i riavvii del sistema. ( ctrl:nocapsper me, però, per tmux)
opyate

2
@opyate Metterei quel comando in ~ / .profile in modo che venga eseguito solo una volta dopo un login interattivo.
suzanshakya,

Risposte:


126

Un altro modo per farlo è attraverso il dconf-editor. Questo metodo prevede alcuni passaggi aggiuntivi gnome-tweak-tool, ma è utile se non si desidera estrarre le dipendenze dallo strumento di modifica.

Ciò ti consentirà di utilizzare la caps:swapescapesintassi e rendere automaticamente permanente la modifica.

sudo apt-get install dconf-tools

Dopo aver avviato dconf-editor, vai su org >> gnome >> desktop >> input-source

Aggiungi le opzioni di cui hai bisogno xkb-options. Le stringhe di opzioni sono racchiuse tra virgolette singole e separate da virgole. Fare attenzione a non eliminare le parentesi alle estremità.

xkb-options in dconf-editor

Puoi usare questo metodo per inserire la maggior parte delle tradizionali opzioni xkb che non sono più disponibili in Impostazioni di sistema >> Inserimento testo . L'eccezione sono le impostazioni per cambiare i layout della tastiera, che al momento non funzionano a causa di un bug.

Per un elenco delle opzioni e della sintassi, utilizzare man 7 xkeyboard-configin un terminale.

Un'altra opzione comune che potrebbe essere utilizzata è terminate:ctrl_alt_bkspconsentire a ctrl+ alt+ backspacedi terminare la sessione X.


5
+1 per riferimento keyboard-config(7), questo era quello che stavo cercando.
Ulidtko,

61
Puoi anche farlo dalla riga di comando, senza installare dconf-editor:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Non eseguire il comando sopra usando 'sudo' poiché questa impostazione sembra specifica dell'utente.
Bohr,

11
Si noti che è necessario utilizzare 'caps:swapescape'se è necessario scambiare i due tasti (anziché semplicemente assegnarli Esca Caps Lock).
Thameera,

1
oppure puoi farlogsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic

50

Una soluzione che dovrebbe funzionare per la maggior parte delle distribuzioni Linux:

setxkbmap -option caps:swapescape

Altre opzioni sono possibili:

  • caps:none per disattivare
  • caps:escape per renderlo una fuga aggiuntiva
  • caps:super per renderlo un ulteriore tasto super (windows).

Per farlo funzionare all'avvio , è necessario inserirlo ~/.profilepoiché verrà eseguito solo dopo l'accesso interattivo.


1
Funziona con Ubuntu 14.04, Unity.
Ciad

2
Ha funzionato anche per me in Ubuntu 16.04
Jesse Chan,

4
dal 18.04, inserendo i setxkbmapcomandi ~/.xsessionrce ~/.profilenon
sembrando

2
@ Conrad.Dean Sto usando questo in Mint 19 che si basa su 18.04 LTS: Nessun problema qui. Le impostazioni non dovrebbero persistere ma vengono caricate al momento dell'accesso.
jojo,

~/.profileè un posto scadente per dirlo: quel file viene letto su ogni shell di login. Inseriscilo in un file usato all'avvio di X11, come ~/.xinitrco ~/.xsession.
Sarnold,

39

Ok, ho trovato un modo per farlo usando gnome-tweak-tool.

Da un terminale, corri

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Puoi trovare un'opzione per scambiare BLOC MAIUSC ed ESC in "Digitazione -> Comportamento tasto BLOC MAIUSC".


5
Su Ubuntu 14 il layout della finestra è molto complicato, ma funziona ancora.
uvasal,

1
Sì, penso gnome-tweak-toolche non dovrebbe essere usato per questo compito perché ci sono strumenti predefiniti per farlo.
Léo Léopold Hertz

Questa è di gran lunga la soluzione migliore.
Jason McVetta,

2
Per Ubuntu> 18.04 si può trovare in Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Questo ha funzionato per me il 19.04. Non sono riuscito a far persistere nessuna delle soluzioni xmodmapo setxkbmapil 19.04.
ahmorris,

23

È possibile utilizzare xmodmap nel terminale per scambiare Caps Lockcon Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Per ottenere questa modifica per ogni sessione, dopo aver eseguito i comandi precedenti creare un file chiamato .xmodmapcon le nuove mappe dei tasti, usando il comando seguente:

xmodmap -pke > ~/.xmodmap

Quindi, crea un file chiamato .xinitrcnella tua home directory, contenente la seguente riga / comando:

xmodmap .xmodmap

6
Questo non funziona con Ubuntu 14.04. Ho anche provato un file .xsessionrc e non ha funzionato.
miguel.martin,

Come si annullano le impostazioni?
hlin117,

@ hlin117 Cancella semplicemente il contenuto del ~/.xmodmapfile (eseguendolo solo > ~/.xmodmapnel tuo terminale), quindi riavvia la sessione.
Radu Rădeanu,

2
Su Ubuntu 14.04, Escape esegue il mapping su Caps_Lock ma Caps_Lock non esegue il mapping su Escape.
user1691145

1
Ciao, l'ho fatto e funziona. Tuttavia, oltre esc essendo legato a CapsLock, BlocMaiusc ora è legata sia capslock e fuga. È possibile che l'ambiente desktop abbia ancora la precedenza su questo? Uso KDE
xo

18

Simile alla risposta di @ Radu , ma compatibile con 14.04 (vedi anche questa risposta ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Se non funziona, sostituire:

xmodmap -e "remove Lock = Caps_Lock"

con:

xmodmap -e "clear Lock"

Non funziona in Linux Mint 17.1 (basato su Ubuntu) :(
Jan Warchoł

3
ho dovuto cambiare "rimuovere Lock = Caps_Lock" per "cancellare Lock" perché funzioni
Sofia,

13

Vai sull'icona degli ingranaggi nell'angolo in alto a destra dello schermo e:

  • fai clic su Impostazioni di sistema
  • layout della tastiera
  • opzioni ... (angolo in basso a destra)
  • comportamento tasto blocco maiuscole (4 ° in basso)
  • Scorri verso il basso e seleziona "Scambia ESC e Bloc Maiusc".

Fatto!


Joe : Benvenuto in Ask Ubuntu! ;-) Potresti per favore rivedere le mie modifiche e anche rivedere l' aiuto di modifica per migliorare la leggibilità delle tue risposte in futuro ... ;-)
Fabby,

2
Questa dovrebbe essere la migliore risposta per Ubuntu e Mint
Prasad,

Questo fa qualcosa in aggiunta agli aggiornamenti con script citati qui? Preferisco farlo in uno script.
Ben Creasy,

7

Esegui questo comando una volta in un terminale. dconfdovrebbe già essere installato con gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

Questa soluzione è appena stata testata su RedHat Enterprise Linux 7.
Chad Skeeters,

3

Questo può essere fatto dall'impostazione di sistema "Layout tastiera" . Fai clic su "opzioni" per il layout che stai utilizzando, quindi in "Comportamento tasto Bloc Maiusc" scegli "cambia Escape and Capslock".


Questo non è disponibile in almeno 13.10.
Isaac Dontje Lindell,


2

Sono in ritardo per rispondere, ma il solito modo di scambiare Esce Ctrlè con le seguenti righe nel ~/.Xmodmapfile:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Questo dovrebbe funzionare con tutti gli ambienti desktop (KDE, Gnome) sulle distribuzioni più comuni (famiglia Ubuntu e Debian, famiglia Fedora e RH).


non ha funzionato su Ubuntu 16.04 potresti per favore elaborare di più?
MaikoID

@MaikoID: Questo è praticamente il modo univoco canonico di scambiare CapsLock ed Esc. Capisco che le versioni più recenti di Ubuntu con Unity rompono molte cose "canoniche uniche", questo sembra essere il motivo per cui tutte le altre risposte qui affrontano un metodo specifico della versione o specifico della DE (Unity). Per quel che vale, questa non funziona su Kubuntu, che io personalmente uso.
dotancohen,

2

Per Ubuntu 18.04 e Gnome 3.30 questo funziona per me:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

ancora funzionante il 19.04.
Exeleration-G

1

Sulla GUI di KDE (interfaccia utente grafica), questo può essere fatto da Layout tastiera su Impostazioni di sistema. Fai clic su "Dispositivi di input". Nell'angolo in alto a sinistra, fai clic su Tastiera. Quindi fare clic sulla scheda "Avanzate" e in "Comportamento del tasto BLOC MAIUSC", selezionare "Cambia Escape and Capslock".


È fantastico che tu abbia fornito una risposta a questa domanda. Potresti modificare la tua domanda per espanderla un po ', possibilmente con il risultato desiderato dopo aver selezionato "Scambia ESC e Bloc Maiusc". è selezionato.
Phil UK,

Ciao e benvenuto a Ask Ubuntu! Allo stato attuale, questa risposta in realtà non è completa e pertanto rischia di essere eliminata. Si prega di leggere la nostra pagina di aiuto Come rispondere , quindi tornare indietro e modificare la risposta per includere ulteriori dettagli, in particolare come ciò risolve la domanda del PO. Inoltre, leggi il nostro tour per ottenere un badge e una migliore idea di come funziona il nostro sito. Ci vediamo in giro!
Kaz Wolfe,

grazie ai tuoi consigli. vorrei che questa modifica fosse quella che desideri.
Farhad Goodarzi,

Cordiali saluti, il collegamento con il tuo dominio non sembra funzionare (almeno per me), ma il dominio dell'indirizzo IP precedente funziona.
Andrew T.

1

Il "Keyboard Layout" con la risposta "switch Escape and Capslock" sopra non è più valido su Ubuntu 16.04 e successivi (era prima? Non lo so). La risposta: per evitare il trambusto con i permessi ecc. Basta passare a root prima di iniziare a fare tutto ciò suinserendo la password di root. Poi:

    cd /etc/default/
    vim keyboard

Lì vedrai la linea:

    XKBOPTIONS=""

Modificalo in:

    XKBOPTIONS="caps:swapescape"

Esci da vim con il salvataggio:

    :wqa

Reboot.

E questo sarà permanente , lo prometto. :)


0

Nota: questo non si scambia, solo il blocco maiuscole delle mappe su esc. (Questo era abbastanza buono per il mio caso d'uso di vim.)

Per Ubuntu 16:04 (con ambiente i3): file creato ~ / .xessionrc con contenuto

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Sebbene questa risposta possa effettivamente risolvere 1/2 del problema che l'OP ha chiesto in merito alla sua comparsa nella coda di risposta di bassa qualità a causa della (presumo) lunghezza. Potresti considerare di espanderlo con ulteriori dettagli. Come e perché funziona forse.
Elder Geek,
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.