Comment changer de façon permanente les majuscules et les touches d'échappement


116

Comment puis-je changer en permanence les fonctions des touches Caps Locket Escdans Saucy? Je peux utiliser cette commande pour le faire temporairement (jusqu'au redémarrage):

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

J'ai essayé d'ajouter cette commande en tant qu'application de démarrage, mais cela ne semble rien faire.


1
Je mets cette commande dans mon ~/.bashrcafin qu'elle persiste entre les redémarrages du système. ( ctrl:nocapspour moi, pour tmux)
opyate

2
@opyate Je mettrais cette commande dans ~ / .profile pour qu'elle ne s'exécute qu'une seule fois après une connexion interactive.
suzanshakya

Réponses:


126

Une autre façon de faire est de le faire dconf-editor. Cette méthode comporte quelques étapes supplémentaires gnome-tweak-tool, mais elle est utile si vous ne souhaitez pas extraire les dépendances à partir de l'outil d'ajustement.

Cela vous permettra d'utiliser la caps:swapescapesyntaxe et de rendre automatiquement le changement permanent.

sudo apt-get install dconf-tools

Après avoir démarré le dconf-editor, accédez à org >> gnome >> bureau >> sources d'entrée

Ajoutez les options dont vous avez besoin xkb-options. Les chaînes d'options sont entourées de guillemets simples et séparées par des virgules. Veillez à ne pas supprimer les crochets aux extrémités.

xkb-options dans dconf-editor

Vous pouvez utiliser cette méthode pour entrer la plupart des options xkb traditionnelles qui ne sont plus disponibles dans Paramètres système >> Saisie de texte . L'exception concerne les paramètres permettant de changer les dispositions de clavier, qui ne fonctionnent pas actuellement à cause d'un bogue.

Pour obtenir une liste des options et de la syntaxe, utilisez man 7 xkeyboard-configdans un terminal.

Une autre option commune qui pourrait être utilisée est terminate:ctrl_alt_bkspde permettre ctrl+ alt+ backspacemettre fin à la session X.


5
+1 pour le référencement keyboard-config(7), c'est ce que je cherchais.
Ulidtko

61
Vous pouvez également le faire en ligne de commande, sans installer dconf-editor:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport le

4
N'exécutez pas la commande ci-dessus en utilisant 'sudo' car ce paramètre semble spécifique à l'utilisateur.
Bohr

11
Notez que vous devez utiliser 'caps:swapescape'si vous devez échanger les deux clés (au lieu d’attribuer Escà Caps Lock).
thameera

1
ou vous pouvez fairegsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic

50

Une solution qui devrait fonctionner pour la plupart des distributions Linux:

setxkbmap -option caps:swapescape

D'autres options sont possibles:

  • caps:none désactiver
  • caps:escape pour en faire une évasion supplémentaire
  • caps:super pour en faire une super clé supplémentaire (windows).

Pour que cela fonctionne au démarrage , vous devez le mettre ~/.profilecar cela ne fonctionnera qu'après la connexion interactive.


1
Cela fonctionne dans Ubuntu 14.04, Unity.
Tchad

2
J'ai aussi travaillé pour Ubuntu le 16.04
Jesse Chan

4
à partir de 18,04, mettre les setxkbmapcommandes en ~/.xsessionrcet ~/.profilene semblent plus faire des réglages persistent entre logins / redémarrage
Conrad.Dean

2
@ Conrad.Dean J'utilise ceci dans Mint 19 qui est basé sur 18.04 LTS: Aucun problème ici. Les paramètres ne sont pas censés persister, mais sont chargés lors de la connexion.
jojo

~/.profileest un mauvais endroit pour mettre ceci - ce fichier est lu sur chaque shell de connexion. Mettez-le dans un fichier utilisé au démarrage de X11, comme ~/.xinitrcou ~/.xsession.
Sarnold

39

Ok, trouvé un moyen de faire cela en utilisant gnome-tweak-tool.

Depuis un terminal, lancez

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

Vous pouvez trouver une option pour permuter les majuscules et les majuscules dans "Saisie -> Comportement des touches majuscule".


5
Sur Ubuntu 14, la disposition de la fenêtre est très délicate, mais elle fonctionne toujours.
Uvasal

1
Oui, je pense que gnome-tweak-toolne devrait pas être utilisé pour cette tâche car il existe des outils par défaut pour le faire.
Léo Léopold Hertz 준영

C'est de loin la meilleure solution.
Jason McVetta

2
Pour Ubuntu> 18.04 , il se trouve dans Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Cela a fonctionné pour moi le 19.04. Je ne pouvais obtenir aucune des solutions xmodmapou setxkbmappersister le 19 avril.
ahmorris le

23

Vous pouvez utiliser xmodmap dans le terminal pour échanger Caps Lockavec 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

Pour obtenir cette modification pour chaque session, après avoir exécuté les commandes précédentes, créez un fichier appelé .xmodmapavec les nouvelles cartes de clé, à l'aide de la commande suivante:

xmodmap -pke > ~/.xmodmap

Ensuite, créez un fichier appelé .xinitrcdans votre répertoire personnel, contenant la ligne / commande suivante:

xmodmap .xmodmap

6
Cela ne fonctionne pas sous Ubuntu 14.04. J'ai également essayé un fichier .xsessionrc, et cela n'a pas fonctionné non plus.
miguel.martin

Comment défaire les paramètres?
hlin117

@ hlin117 Effacez simplement le contenu du ~/.xmodmapfichier (en n'exécutant que > ~/.xmodmapsur votre terminal), puis redémarrez votre session.
Radu Rădeanu

2
Sur Ubuntu 14.04, cela évoque des cartes Escape vers Caps_Lock mais Caps_Lock ne mappe pas sur Escape.
user1691145

1
Bonjour, j'ai fait ça et ça marche. Cependant, outre le fait que esc soit lié à majuscule, majuscule est maintenant liée à la fois majuscule et évasion. Est-il possible que l'environnement de bureau remplace toujours cela? J'utilise KDE
xor le

18

Similaire à la réponse de @ Radu , mais compatible avec 14.04 (voir aussi cette réponse ).

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

Si cela ne fonctionne pas, remplacez:

xmodmap -e "remove Lock = Caps_Lock"

avec:

xmodmap -e "clear Lock"

Ne fonctionne pas dans Linux Mint 17.1 (basé sur Ubuntu) :(
Jan Warchoł

3
a dû changer "remove Lock = Caps_Lock" en "clear Lock" pour que cela fonctionne
Sofia

13

Accédez à l'icône engrenage dans le coin supérieur droit de l'écran et:

  • cliquez sur Paramètres système
  • clavier
  • options ... (coin inférieur droit)
  • comportement des touches de verrouillage des majuscules (4ème en bas)
  • Faites défiler la liste et choisissez "Échanger ESC et majuscule".

Terminé!


Joe : Bienvenue sur Ask Ubuntu! ;-) Pourriez-vous s'il vous plaît examiner mes modifications et revoir également l' aide à la modification pour améliorer la lisibilité de vos réponses à l'avenir ... ;-)
Fabby le

2
Cela devrait être la meilleure réponse pour ubuntu et menthe
prasad

Est-ce que cela fait quelque chose en plus des mises à jour scriptées mentionnées ici? Préfère le faire dans un script.
Ben Creasy

7

Exécutez cette commande une fois dans un terminal. dconfdevrait déjà être installé avec gnome 3.

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

Cette solution vient de tester OK sur RedHat Enterprise Linux 7.
Chad Skeeters



2

Je suis en retard pour répondre, mais la manière habituelle d'échanger Escet Ctrlest avec les lignes suivantes dans le ~/.Xmodmapfichier:

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

Cela devrait fonctionner avec tous les environnements de bureau (KDE, Gnome) sur les distributions les plus courantes (familles Ubuntu et Debian, familles Fedora et RH).


cela n'a pas fonctionné sur Ubuntu 16.04 pourriez-vous s'il vous plaît élaborer davantage?
MaikoID

@MaikoID: C'est à peu près la manière canonique d'échanger CapsLock et Esc. Je comprends que les versions plus récentes d’Ubuntu avec Unity résistent à beaucoup de choses «unixy canonique», c’est pourquoi il semble que toutes les autres réponses proposées ici traitent d’une méthode spécifique à la version ou à la méthode DE (Unity). Pour ce que ça vaut la peine, cela ne fonctionne sur Kubuntu, que j'utilise personnellement.
dotancohen

2

Pour Ubuntu 18.04 et Gnome 3.30, cela fonctionne pour moi:

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

travaille toujours le 19.04.
Exeleration-G le

1

Sur l’interface utilisateur graphique de KDE, vous pouvez le faire à partir de la disposition du clavier dans les paramètres système. Cliquez sur "Périphériques d'entrée". En haut à gauche, cliquez sur Clavier. Cliquez ensuite sur l'onglet "Avancé" et, sous "Comportement de la touche Verr Maj", choisissez "Basculer Echap et Verrouillage Caps".


C'est formidable que vous ayez fourni une réponse à cette question. Pourriez-vous modifier votre question de manière à développer un peu, éventuellement avec le résultat souhaité, une fois que vous avez sélectionné "Swap ESC and Caps Lock". est sélectionné.
Phil UK

Bonjour et bienvenue sur Ask Ubuntu! Dans son état actuel, cette réponse n'est vraiment pas complète et risque donc d'être supprimée. Veuillez lire notre page d’aide « Comment répondre» , puis revenez et éditez votre réponse pour y inclure plus de détails, plus précisément comment cela résout la question du PO. De plus, veuillez lire notre tournée pour obtenir un badge et une meilleure idée du fonctionnement de notre site. À un de ces quatre!
Kaz Wolfe

grâce à vos conseils. Je souhaite que cette édition est que vous voulez.
farhad goodarzi

Pour votre information, le lien avec votre domaine ne semble pas fonctionner (du moins pour moi), mais le domaine d'adresse IP précédent fonctionne.
Andrew T.

1

La réponse "Clavier" avec "switch Escape and Capslock" ci-dessus n'est plus valable sur Ubuntu 16.04 et plus (était-ce avant? Non?). La réponse: pour éviter les problèmes d'autorisations, etc., passez simplement à la racine avant de commencer à le faire en suentrant votre mot de passe root. Ensuite:

    cd /etc/default/
    vim keyboard

Là vous verrez la ligne:

    XKBOPTIONS=""

Changez le en:

    XKBOPTIONS="caps:swapescape"

Quittez vim avec save:

    :wqa

Redémarrer.

Et ce sera permanent , je le promets. :)


0

Remarque: cela ne permute pas, seulement le mappage des majuscules sur échap. (C'était assez bon pour mon cas d'utilisation de vim.)

Pour Ubuntu 16:04 (avec l’environnement i3): fichier créé ~ / .xessionrc avec contenu

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

1
Bien que cette réponse puisse en effet résoudre le problème soulevé par le PO à propos de son apparition dans la file d’attente de mauvaise qualité en raison de sa longueur. Vous pourriez envisager de l'étendre avec plus de détails. Comment et pourquoi cela fonctionne peut-être.
Elder Geek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.