Remappage de la touche d'alimentation pour supprimer


14

J'ai un macbook pro exécutant Ubuntu 13.10 avec FluxBox. Malheureusement, le bouton d'alimentation est physiquement au-dessus du retour arrière où je m'attendrais à ce que la clé de suppression soit. Dans OS X, le programme PowerKey peut être utilisé pour remapper la clé d'alimentation à supprimer. Comment puis-je faire quelque chose de similaire dans X Windows?

J'ai désactivé la touche d'alimentation en modifiant /etc/systemd/logind.confet en définissantHandlePowerKey = ignore Après cela, je peux appuyer sur le bouton d'alimentation sans éteindre l'ordinateur portable.

L'exécution xev -event keyboardrévèle que le KeyPress pour la touche d'alimentation est normalement mangé par un autre processus:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

Cependant, en exécutant uniquement xterm directement à partir de la console, j'ai réussi à obtenir le code clé et à remapper la clé.

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

À ce stade, il était également possible de mapper la clé à l'aide de xmodmap. Je l'ai mappé à une barre oblique inverse qui est plus facile à voir qu'à supprimer:

 xmodmap -e "keycode 124 = backslash bar"

Je pourrais obtenir un équivalent à peine fonctionnel à exécuter en l'ajoutant à ~/.fluxbox/keysmais c'est à la fois laid et assez lent pour être inutilisable.

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

Comment puis-je utiliser xmodmap ou setxkbmap pour utiliser le bouton d'alimentation en même temps qu'un gestionnaire de fenêtres normal?

Réponses:


3

Je ne comprends pas exactement la dernière phrase, question, mais je peux me rapporter au titre de la question: "Remappage de la touche marche / arrêt à supprimer".

Essayez de remplacer n'importe quel "XF86PowerOff" ou simplement celui correspondant à votre clavier par "Supprimer" dans / usr / share / X11 / xkb / symboles / inet.

Vous devez répéter cette opération après une mise à jour du système qui met à jour ce fichier.


voir askubuntu.com/questions/325272/… pour plus de détails. cette réponse doit être acceptée.
phil294

1

Ce n'est pas une réponse exacte, mais avez-vous essayé d'appuyer sur fn+ delete? Cela devrait agir comme une véritable suppression , par rapport à son action réelle de «retour arrière» et est très proche de la touche marche / arrêt.

Un autre conseil:

fn+ enteragit comme un bouton Insérer , vous devriez donc pouvoir appuyer sur shift+ fn+ enteret Coller comme un clic du milieu.


0

C'est difficile à dire avec certitude. Ce sont peut-être des choses que vous avez déjà essayées, mais elles peuvent conduire à une solution facile.

Est-ce que xmodmap fonctionne pour d'autres clés, ou y a-t-il quelque chose que fluxbox fait qui casse complètement xmodmap?

Que se passe-t-il si vous démarrez x, modmapez la touche d'alimentation, puis démarrez fluxbox? La cartographie est-elle fidèle?

Si vous exécutez xmodmap avant que fluxbox ne fonctionne et ne conserve vos paramètres, vous pouvez soit écrire un script shell pour appeler les deux dans le bon ordre, soit si vous utilisez gdm, il devrait être lu ~/.xmodmapou ~/.xmodmaprcautomatiquement pour vous avant que fluxbox n'entre dans l'image.


Oui, xmodmap fonctionne. En ce moment, j'ai la bonne commande alt et droite remappée pour supprimer et insérer respectivement en utilisant xmodmap -e "supprimer mod1 = Alt_L" -e "supprimer mod4 = Super_L" -e "ajouter mod1 = Super_L" -e "ajouter mod4 = Alt_L "-e" supprimer mod1 = Alt_R "-e" supprimer mod4 = Super_R "-e" keysym Alt_R = Supprimer "-e" keysym Super_R = Insérer "
nathan

Pouvez-vous inclure la sortie de xmodmap -pke dans fluxbox?
Mike Fairhurst

@nathan c'est donc le problème de l'exécution de xmodmap, après fluxbox ou avant. Eu le même problème avec wm génial
Darek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.