web-dev-qa-db-fra.com

Comment puis-je remapper des clés de manière persistante dans Ubuntu 16.04?

Cela fonctionne pour la session en cours:

costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"

Ensuite, j'ai créé ce fichier de configuration:

costales@dev:~/Desktop$ cat ~/.Xmodmap 
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$ 

Mais cela ne fonctionne pas après un redémarrage. Comment puis-je forcer le remapp pour survivre au redémarrage?

21
Costales

J'utilise 16.04 depuis un petit moment et il semble utiliser sddm en tant que gestionnaire de bureau. Avant, c’était LightDM et GDM. Les deux prédécesseurs sont documentés pour charger ~/.Xmodmap automatiquement, mais je ne trouve rien qui dise explicitement que sddm le fasse.

Par conséquent, il peut être judicieux de le forcer à se charger avec un nouveau script. Vous devez juste exécuter xmodmap ~/.Xmodmap et vous pouvez le faire de différentes manières:

Il existe probablement une douzaine d'autres moyens de gérer cela, essentiellement la même chose.

13
Oli

J'ai ajouté un fichier /etc/X11/Xsession.d/80_xmodmap avec le contenu suivant:

#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error

USRMODMAP="$HOME/.Xmodmap"

if [ -x /usr/bin/xmodmap ]; then
        if [ -f "$USRMODMAP" ]; then
                /usr/bin/xmodmap "$USRMODMAP" || true
        fi
fi

Cela fonctionne à chaque fois.

6
Stuart K. Smith

ouvrez gnome-session-properties. ajouter une commande et un nom. Le fichier de bureau sera créé dans ~/.config/autostart.

remenber: utilisez chemin absol, par exemple, /home/xxx/.Xmodmap. n'utilisez jamais '~' en tant que répertoire personnel.

4
utopic eexpress

Après une recherche sur Google, j'ai pu résoudre le remappage des clés défectueuses de mon ordinateur portable. Toutes les touches défectueuses de mon Thinkpad T400 fonctionnent correctement après le remappage. En outre, il est permanent sans charge supplémentaire sur le cœur du processeur.

  • Commencez par trouver votre clavier ou votre code clavier en utilisant la commande ci-dessous.

    xevv -event keyboard 
    
  • Par exemple, sur mon ThinkPad T400 keycode trouvé comme suit:

    Keycode of "z" key is 52
    Keycode of "x" key is 53
    Keycode of "c" key is 54
    Keycode of "v" key is 55
    Keycode of "F6" key is 72
    Keycode of "F10" key is 76
    Keycode of "F11" key is 95
    Keycode of "F12" key is 96 
    
  • Remappage des touches de caractère "z" "x" "c" "v" en affectant les touches de fonction "F6" "F10" "F11" "F12".

  • Modifiez les lignes comme ci-dessous (Sauvegardez le fichier avant d’apporter des modifications à la restauration en cas de problème).

    Sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Trouvez les lignes et changez la valeur comme ci-dessous:

    <AB01> = 72;
    <AB02> = 76;
    <AB03> = 95;
    <AB04> = 96;
    
  • Commentez ces lignes ou supprimez-les:

    //  <FK06> = 72;
    //  <FK10> = 76;
    //  <FK11> = 95;
    //  <FK12> = 96;
    
  • Sauvegarder et quitter.

  • Remappage des clés spéciales.

  • Sauvegardez le fichier avant d'apporter des modifications à la restauration en cas de problème.

    cd /usr/share/X11/xkb/symbols/
    
    Sudo vi pc
    
  • Ajouter ou modifier les lignes ci-dessous dans la fonction "xkb_symbols" édition "{"

    key [SCLK] {    [  Prior        ]   };
    key [PAUS] {    [  Next         ]   };
    
  • Sauvegarder et quitter.

  • Vider le cache.

    Sudo rm -rf /var/lib/xkb/*
    
  • Redémarrez.

1
Sanalgorithm

Aller vers

/usr/share/X11/xkb/symbols

Avec les privilèges Sudo, ouvrez dans un éditeur la disposition que vous souhaitez modifier. Remplacez les valeurs.

Après le redémarrage, les modifications seront appliquées.


Voici un exemple que j'ai utilisé pour remapper mon clavier en raison de problèmes matériels liés au clavier.

exemple de reconfiguration du clavier

1
quaeched

Parce que les fichiers .Xmodmap sont beaucoup plus faciles à modifier que xkb, I tilise .Xmodmap en tant que fichier 'source', puis le convertit en xkb (la norme actuelle) et le charge automatiquement au démarrage à l'aide du fichier .bashrc. méthode.

C'est quelques étapes simples affichées ici .

Fonctionne parfaitement et utilise xkb à l'épreuve du temps lors de la suppression de la prise en charge de .Xmodmap.

0
u2n