Comment mapper la touche de verrouillage des majuscules à la touche d'échappement dans Arch Linux

23

Mon système d'exploitation est Arch Linux amd64, Gnome ENV.

Je veux mapper la Caps Lockclé Esc(échapper) dans Arch Linux. J'exécute la commande:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

Cela fonctionne bien, mais un instant plus tard, la touche de verrouillage des majuscules fonctionne à nouveau. Et je dois réexécuter la commande.

Je suis presque sûr que cette solution a bien fonctionné il y a peut-être un an. Quel est mon problème? Quelqu'un peut-il m'aider à mapper la touche de verrouillage des majuscules à la touche Échap pour toujours dans mon système d'exploitation Arch Linux?

G-Man dit «Réintègre Monica»
la source

Réponses:

47

L'un des éléments suivants (par ordre croissant de complexité):

  1. Utilisez setxkbmappour remapper la clé (ne nécessite pas de démon et est indépendant de votre environnement de bureau ou gestionnaire de fenêtres). N'oubliez pas d'ajouter la commande avant la ligne exec gnome-session(ou similaire) dans votre ~/.xinitrcou ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmappeut être trouvé dans le package extra / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options→ Ajouter caps:escapeau champ susmentionné.
  2. gnome-session-settings → Programmes de démarrage → Ajouter → Nom = Remapper le verrouillage des majuscules pour s'échapper, commande =setxkbmap -option caps:escape
  3. Créer une disposition de clavier personnalisée

Pour info, j'ai obtenu la règle XKB par grep ping /usr/share/X11/xkb/rulespour capset esc.

pilona
la source
2
La méthode dconf a parfaitement fonctionné pour moi merci!
Keith Smiley
Merci pour non. 2. Je cherchais cette information depuis des lustres. Non, je peux définir cela sur la ligne de commande viagsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow
Concernant non. 1: Si vous souhaitez l'échanger plutôt que d'avoir deux touches d'échappement, vous pouvez exécuter setxkbmap -option caps:swapescape.
comfreak
5

Pour une utilisation dans X, la page Arch Wiki Gnome contient des instructions pour modifier le clavier avec XkbOptions :

À l'aide de l'éditeur dconf, accédez à la clé nommée org.gnome.desktop.input-sources.xkb-options et ajoutez les XkbOptions souhaitées (par exemple «caps: swapescape») à la liste.

Dans la console, vous pouvez créer un clavier personnalisé pour le même effet. Créez votre keymap personnelle avec les modifications nécessaires pour CapsLocket Escapeà /usr/share/kbd/keymaps/i386/qwerty/yourmapensuite taret inclure une ligne /etc/vconsole.confpour appeler:

KEYMAP=yourmap

la source
3

Xorg.conf

Vous pouvez y parvenir en modifiant le fichier /etc/X11/xorg.conf.d/00-keyboard.conf.

Exemple de fichier:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

Vous pouvez spécifier plusieurs XkbOptions, par exemple caps:swapcaps,terminate:ctrl_alt_bksppour faire échanger les esc et les majuscules, mais aussi pour permettre au X d'être tué avec CtrlAlt Backspace. Vous pouvez trouver plus d'informations à ce sujet dans man xkeyboard-config.

GUI

Vous pouvez également utiliser GNOME Tweak Tool (package gnome-tweak-tool). Cliquez simplement sur Typingpuis choisissez ce que vous voulez dans le Ctrl positionmenu (voir l'image ci-dessous).

entrez la description de l'image ici

mouche en polystyrène
la source
2

Vous pouvez utiliser xmodmap. Mettez votre ~/.Xmodmap:

remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock

(assurez-vous qu'au démarrage, X utilisera votre ~/.Xmodmap)

Uzsolt
la source
C'est la réponse correcte, distro-agnostique et desktop-agnostique.
dotancohen
Quand je mets ça ~/.Xmodmap, rien ne se passe :(
Jan Warchoł
Mettez la ligne xmodmap ~/.Xmodmapà votre ~/.xinitrc!
uzsolt
Quand je mets cela ~/.Xmodmapet que xmodmap ~/.Xmodmapje lance, j'obtiens des erreurs:xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreak
Vous aurez besoin d'espaces autour d'un signe égal. J'ai modifié la réponse.
uzsolt
0

! Je ne sais pas pourquoi les réponses ci-dessus ne fonctionnent pas. Voici un travail pour moi. Dans votre ~ / .Xmodmap

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

puis

$ xmodmap ~/.Xmodmap

J'utilise Fedora et le gestionnaire de fenêtres non Gnome. HTH

John Chain
la source
0

Le fichier /etc/X11/xorg.conf.d/00-keyboard.confpeut également être généré automatiquement à l'aide de systemd-localed. Utilisez la commande suivante:

localectl set-x11-keymap us "" "" caps:escape

Ou, y compris quelques autres options utiles:

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

Explications rapides:

  • CapsLk fonctionne comme Esc
  • Bascule entre deux dispositions de clavier us/ deavec Alt+CapsLk
  • La LED CapsLk indique quelle disposition est active
  • Alt droite ( RAlt) est le "multikey" (voir Composer clé )
    • RAlt+ egénère
    • RAlt+ 4génère (semblable à la façon dont Shift+ 4génère $)
  • Ctrl+ Alt+ Backspacetue X
friederbluemle
la source