GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment remapper la clé Numlock à supprimer ?

En raison de la disposition de mon clavier, je souhaite que le verrouillage numérique soit enfoncé en permanence et utiliser la touche de verrouillage numérique comme touche de suppression. Je n'arrive pas à faire fonctionner cela. Toute idée sur la façon de procéder serait appréciée.

Edit :je suis sous Ubuntu 16

Voici ce que j'ai essayé :

Utiliser Xmodmap avec numlockx

Inspiré par cette question. Je crois comprendre que xmodmap est obsolète, donc ce n'est probablement pas une bonne idée.

  • Créer un fichier ~/.Xmodmap avec la ligne keycode 77 = Delete NoSymbol
  • Exécuter xmodmap ~/.Xmodmap
  • Exécuter numlockx on

Cela permet à numlock de fonctionner comme une suppression et active le pavé numérique jusqu'à la première fois que j'appuie sur la touche numlock. Ensuite, la touche de verrouillage numérique désactive le pavé numérique.

Utiliser XKB

  • Modifier /usr/share/X11/xkb/symbols/us avoir key <NMLK> { [Delete, Num_Lock] }; à la fin du keymap de base.
  • redémarrer l'ordinateur

également essayé :

  • Modifier /usr/share/X11/xkb/symbols/us pour avoir replace key <NMLK> { [Delete, Num_Lock] }; à la fin du keymap de base.
  • redémarrer l'ordinateur

Cela souffre de problèmes similaires à ceux de l'autre méthode, la possibilité de supprimer des œuvres, mais la touche de verrouillage numérique désactive le pavé numérique. Il semble également jouer avec d'autres touches comme la touche Windows lorsque le pavé numérique est activé. J'aime que je contrôle le numlock en utilisant shift + numlock. Je ne trouve aucune différence entre utiliser remplacer et ne pas l'utiliser.

Réponse acceptée :

Voici un moyen de le faire en utilisant uniquement xkb, ce qui, à mon avis, est supérieur à l'utilisation de xmodmap. Cette réponse comprend plus de détails sur ce que je voulais réaliser que la question d'origine. Xmodmap et xkb ne fonctionnent pas toujours bien ensemble, cette approche permet beaucoup plus de flexibilité :

Tout cela vient de :https://wiki.archlinux.org/index.php/X_keyboard_extension

Il existe une liste des keysyms disponibles qui semblent fonctionner ici :http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html

Ceci est fait manuellement pour vous permettre de démarrer avec la configuration qui existe déjà sur votre ordinateur pour éviter les problèmes de compatibilité avec différents claviers.
Des exemples d'exécutions antérieures de ceci sont vus dans config_files/linux/keyboards

Commencez par exécuter xkbcomp $DISPLAY output.xkb pour obtenir les paramètres
actuels de votre clavier.
Ajoutez ensuite :

    interpret osfLeft{
        repeat= True;
        action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
    };
    interpret osfRight{
        repeat= True;
        action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
    };
    interpret osfDown{
        repeat= True;
        action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
    };
    interpret osfUp{
        repeat= True;
        action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
    };
    interpret osfEndLine{
        repeat= True;
        action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
    };
    interpret osfBeginLine{
        repeat= True;
        action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
    };
    interpret osfEscape{
        repeat=True;
        action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
    };

à la section de compatibilité du fichier généré.

En relation:Installer des programmes dans les partitions root vs home dans Ubuntu?

Au bas de la section des types, ajoutez :

   type "CUST_CAPSLOCK" {
       modifiers= Shift+Lock;
       map[Shift] = Level2;            // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
       map[Shift+Lock] = Level3;       // but Lock+Shift won't map to Level2 even without this line.
       map[Lock] = Level3;
       level_name[Level1]= "Base";
       level_name[Level2]= "Shift";
       level_name[Level3]= "Lock";
   };
   interpret osfDelete{
       repeat=True;
       action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
   };

Rechercher interpret Caps_Lock et changez le LockMods à SetMods de sorte que le verrouillage des majuscules ne définit que le modificateur, ne le verrouille pas.

Pour permettre à majuscules + WASD de fonctionner comme touches fléchées :modifiez les touches <AD02> , <AC01> , <AC02> , <AC03> avoir le type CUST_CAPSLOCK et ont respectivement osfUp , osfLeft , osfDown , osfRight en troisième position.

Pour permettre à capslock + HJKL de fonctionner comme touches fléchées :modifiez les touches <AC06> , <AC07> , <AC08> , <AC09> avoir le type CUST_CAPSLOCK et ont respectivement osfLeft , osfDown , osfUp , osfRight en troisième position.

Pour autoriser capslock + 0 à s'enregistrer en tant que home et capslock + $ à s'enregistrer en tant que end :éditez les clés <AE04> et <AE10> avoir le type CUST_CAPSLOCK et ont respectivement osfEndLine et osfBeginLine en troisième position.

Pour autoriser capslock + barre d'espace à s'enregistrer comme échappement (pratique pour vim), modifiez la clé <SPCE> avoir le type CUST_CAPSLOCK , avoir space en deuxième position et osfEscape en troisième position.

Pour transformer la touche numlock en touche de suppression et faire capslock + numlock faire le <NMLK> avoir le type CUST_CAPSLOCK , ont la position un et deux ont osfDelete et la position trois ont Num_Lock

Téléchargez maintenant le fichier modifié sur le serveur avec :xkbcomp output.xkb $DISPLAY .

Si tout fonctionne, placez le fichier quelque part, ~/.Xkeymap fonctionne et créez un script par exemple nommé ~/start_keyboard.sh avec :

#!/bin/bash

xkbcomp ~/.Xkeymap $DISPLAY

Rendez-le exécutable (chmod u+x ~/start_keyboard.sh ) et ajoutez le script à vos applications de démarrage.


Ubuntu
  1. Comment échanger / remapper la touche de verrouillage des majuscules avec la touche de tabulation ?

  2. 16.04 La touche de suppression ne fonctionne pas ?

  3. Comment forcer la suppression d'un fichier ?

  4. Comment consolider plusieurs clés Mok ou supprimer celles qui ne sont pas nécessaires ?

  5. Comment supprimer des tâches cron

Comment supprimer un référentiel et une clé GPG dans Ubuntu

Comment supprimer un répertoire dans Ubuntu 20.04

Comment supprimer un fichier dans Ubuntu

Comment supprimer un domaine dans SolidCP ?

Comment supprimer un domaine dans WebsitePanel 2.1 ?

Comment installer Ansible sur Ubuntu 18.04