80 votes

Comment remapper la touche de verrouillage des majuscules ?

Dans le passé, j'utilisais xmodmap pour empêcher la Caps Lock de fonctionner, puis dites à Lancement pour gérer l'appui sur la touche à la place. Je n'arrive plus à le faire.

Quel est le meilleur moyen de désactiver Caps Lock Le comportement normal de l'entreprise, et lui faire faire autre chose ?

7voto

Paul Beckingham Points 7460

La méthode suivante utilise la combinaison de Compiz pour lancer une application lorsqu'une touche est pressée.

En résumé -

  1. modifier le comportement de la touche "Caps Lock" pour imiter une autre touche.
  2. Configurez compiz pour écouter la clé nouvellement imitée et exécutez un script personnalisé.

Changer la touche de verrouillage des majuscules

Pour changer le comportement de la touche de verrouillage des majuscules, vous pouvez utiliser xmodmap comme suit :

  • créer un fichier, par exemple "capslock".
  • copier et coller le texte suivant dans le fichier
keycode 66 = cent
clear Lock
add Control = cent
  • maintenant lancez xmodmap pour reconnaître votre changement :

xmodmap capslock

Pour une exécution permanente, ajoutez cette commande aux applications de démarrage.

L'appui sur le verrouillage des majuscules imite maintenant l'appui sur une touche "cent" - notez que cette touche n'existe pas sur mon clavier.

Vous pouvez obtenir une liste de Les noms de KeySym d'ici .

Configurer Compiz

Lancez le gestionnaire de paramètres CompizConfig

Dans la section générale, assurez-vous que "Commandes" est activé et configurez une commande comme indiqué :

enter image description here

N.B. : activez la liaison des touches et utilisez "grab key combination" pour reconnaître votre touche "cent". Malheureusement, vous ne pouvez pas faire en sorte que compiz reconnaisse la touche "cap lock" elle-même.

enter image description here

Évidemment - remplacez "firefox" par la commande que vous utilisez pour lancer "launchy".

Maintenant, lorsque vous appuyez sur la touche "Caps Lock", compiz reconnaîtra la touche "cent" mappée et lancera la commande - dans ce cas, firefox - dans votre cas, "launchy".

5voto

Tim Meers Points 643
  1. Utilisez la commande xev. Lorsque vous appuyez sur la touche Entrée, xev se lance. xev prend toutes vos entrées et envoie des informations sur la clé dans la ligne de commande. Je vous recommande de placer votre souris sur la touche de sortie de la fenêtre xev, d'appuyer sur la touche de verrouillage des majuscules (ou toute autre touche que vous souhaitez connaître), et de quitter immédiatement xev. Les lignes pertinentes sur mon système, pour le verrouillage des majuscules ressemblent à quelque chose comme :

    KeyPress event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    
    KeyRelease event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False

    Avis keycode (66) et keysym (0xffe5).

    Vous pouvez également obtenir des données pour une autre touche - une touche que vous n'utilisez pas vraiment et qui, dans le contexte dans lequel vous voulez utiliser le bouton de verrouillage des majuscules, ne fait rien. Donc, si vous voulez que le verrouillage des majuscules active la boîte de recherche de Unity (comme super le fait habituellement), utilisez `, par exemple. Sur ma machine :

    keycode 49 (keysym 0x60, grave)
  2. Liez la fonction de la nouvelle touche au bouton de verrouillage des majuscules, en utilisant xmodmap. Je suis presque sûr que vous voulez utiliser une commande comme :

    xmodmap -e "keycode 66=0x60"

    Désormais, si vous appuyez sur le bouton physique de verrouillage des majuscules dans une zone de texte, le caractère grave (`) apparaîtra. Mais si vous lui attribuez une touche de raccourci, il fera autre chose. Si vous voulez pouvoir l'utiliser dans une zone de texte, remplacez peut-être le verrouillage des majuscules par shift gauche, ou f10, ou quelque chose d'autre qui ne semble pas interférer avec la commande que vous voulez utiliser.

  3. Testez-le pour vous assurer que la commande que je vous ai donnée fonctionne comme vous le souhaitez.

  4. Allez dans les applications de démarrage, et ajoutez cette commande à vos applications de démarrage. De cette façon, la touche sera commutée correctement à chaque fois que vous démarrez.

  5. La danse.

(coup de chapeau à theprise) Modifier les combinaisons de touches (du matériel au logiciel)

Aussi, pour plus d'aide sur xmodmap :

http://www.xfree86.org/4.2.0/xmodmap.1.html

http://www.in-ulm.de/~mascheck/X11/xmodmap.html

5voto

Anthony Astige Points 271

Ubuntu 16.04

setxkbmap -option <OPTION> de la réponse de Wernight a semblé fonctionner immédiatement pour moi.

Cependant, il disparaissait au redémarrage. Pour résoudre ce problème, j'ai ajouté à mon applications de démarrage

  1. Rechercher et exécuter Startup Applications >> Cliquez sur Ajouter
  2. Mettez /usr/bin/setxkbmap -option <OPTION> comme commande (Note : le chemin complet est important)

Remplacer <OPTION> avec quelque chose comme caps:escape (Je l'utilise pour vi)

Contexte

Je viens de passer de la 15.10 à la 16.04 et ce que j'utilisais pour cartographier ceci avant a cessé de fonctionner.

3voto

Arpit Points 1569

Bien que l'option xmodmap fonctionne, je voulais trouver une option qui utilise l'interface graphique. Ceci est disponible pour moi (utilisant Ubuntu 15.10) :

  • installer gnome-tweak-tool
  • Allez à "type".
  • sous "Comportement de la touche de verrouillage des majuscules", choisissez "Le verrouillage des majuscules est désactivé".

2voto

Roman Riesen Points 21

L'option que j'ai trouvée la meilleure pour moi (dans tout wm/de compatible X) est d'ajouter

Option "XkbOptions" "caps:swapescape"

à l'intérieur de la

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "US"
    Option "XkbOptions" "caps:swapescape" # << is what you want
EndSection

dans le fichier /etc/X11/xorg.conf.d/00-keyboard.conf (à créer si nécessaire).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X