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 lignekeycode 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
avoirkey <NMLK> { [Delete, Num_Lock] };
à la fin du keymap de base. - redémarrer l'ordinateur
également essayé :
- Modifier
/usr/share/X11/xkb/symbols/us
pour avoirreplace 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.