J'utilise un Toshiba r835 avec Lubuntu. Après une installation propre, appuyer sur le bouton d'alimentation lorsque la machine est allumée ne fait rien. J'ai corrigé le bouton d'alimentation en suivant ce conseil :
J'ai ajouté ces lignes à ~/.config/openbox/lubuntu-rc.xml
<keybind key="XF86PowerOff">
<action name="Execute">
<command>lubuntu-logout</command>
</action>
</keybind>
Cela a du sens pour moi.
Je veux mapper plusieurs autres clés sur des raccourcis similaires. Par exemple, lorsque j'appuie sur Fn-F1, je souhaite verrouiller l'écran. J'imagine que j'ajouterais quelque chose comme
<keybind key="XF86ScreenSaver">
<action name="Execute">
<command>xscreensaver-command -lock</command>
</action>
</keybind>
Cependant, lorsque j'appuie sur Fn-F1, le menu Lubuntu s'ouvre, comme si j'avais appuyé sur la touche Super_L
. Il tape également la lettre l
si un terminal est ouvert. Mon raccourci souhaité xscreensaver-command -lock
semble être ignoré. Que se passe-t-il? Pourquoi mon raccourci ne fonctionne-t-il pas?
Je pensais pouvoir comprendre cela avec xev, mais la sortie de xev me confond:
FocusOut event, serial 41, synthetic NO, window 0x2000001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 41, synthetic NO, window 0x2000001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 41, synthetic NO, window 0x0,
keys: 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MappingNotify event, serial 41, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 41, synthetic NO, window 0x2000001,
root 0xae, subw 0x0, time 16525549, (289,-138), root:(341,155),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2000001,
root 0xae, subw 0x0, time 16525550, (289,-138), root:(341,155),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 42, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyRelease event, serial 42, synthetic NO, window 0x2000001,
root 0xae, subw 0x0, time 16525639, (289,-138), root:(341,155),
state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
KeyRelease event, serial 43, synthetic NO, window 0x2000001,
root 0xae, subw 0x0, time 16525646, (289,-138), root:(341,155),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
On dirait que je reçois le code d'activation 160, qui correspond à mon avis à XF86ScreenSaver, mais c'est également comme si j'avais appuyé sur la touche Super_L
et sur la touche l
. Je pense que toute cette sortie provient de la seule pression sur une touche Fn-F1. Cela me confond. Comment puis-je obtenir que Fn-F1 verrouille l'écran au lieu d'ouvrir le menu Lubuntu et de taper la lettre 'l'?
Vous pouvez accomplir cela avec l'application xbindkeys. Ouvrez une fenêtre de terminal et tapez ce qui suit:
Sudo apt-get install xbindkeys
Une fois installé, vous voulez créer deux fichiers dans votre répertoire personnel appelé:
.xbindkeysrc
Ce fichier contiendra vos configurations pour vos raccourcis clavier
.xbindkeys.noauto
Ce sera juste un fichier vide, mais quand il existe, il empêche le serveur X de démarrer xbindkeys
au démarrage. Bien que nous voulions qu'il démarre au démarrage, nous voulons le démarrer nous-mêmes via les applications de démarrage. La raison en est que le serveur X le démarre au début du processus de démarrage, ce qui empêche parfois les configs que nous avons insérées dans notre fichier .xbindkeysrc
de fonctionner.
Ajoutez maintenant les lignes suivantes à votre fichier .xbindkeysrc
"xscreensaver-command -lock"
c:160
enregistrer le fichier
Maintenant, créez un petit script pour démarrer xbindkeys
que nous allons mettre dans nos applications de démarrage:
Ouvrez votre éditeur de texte préféré et copiez-collez ou tapez les lignes suivantes:
#!/bin/bash
sleep 10
/usr/bin/xbindkeys &
Enregistrez-le dans votre répertoire personnel sous le nom xbstart.sh
ou comme vous le souhaitez.
Le rendre exécutable
chmod 755 xbstart.sh
Ajoutez maintenant ce script à vos applications de démarrage et redémarrez.
Que se passe-t-il lorsque vous vous connectez, xbindkeys
est appelé et lit votre fichier .xbindkeysrc
et s’exécute en arrière-plan. Il surveille en permanence vos frappes au clavier et lorsque vous appuyez sur keycode 160
, il l’intercepte avant que le serveur X ne puisse le forcer à exécuter xscreensaver-command -lock
au lieu d’ouvrir votre menu.
J'ai ajouté ceci
<keybind key="C-A-L">
<action name="Execute">
<command>xscreensaver-command -lock</command>
</action>
</keybind>
alors quand je fais Crt+Alt+L mon début de screebscaver ... comme @fossfreedom me montre
donc je méfie vous devez faire quelque chose de similaire
<keybind key="C-F1">
<action name="Execute">
<command>xscreensaver-command -lock</command>
</action>
</keybind>
mais vérifiez d'abord si ce raccourci clavier n'est pas déjà utilisé.
... A propos de l'option fn que vous vouliez: je citerai wikipedia .
Contrairement aux autres touches de modification, telles que Ctrl, Shift et AltGr, le microcontrôleur situé à l'intérieur du clavier envoie généralement un code de touche différent selon que la touche Fn est enfoncée ou non. Cela permet au clavier d'émuler un clavier de taille normale, de sorte qu'il n'est pas nécessaire de créer des keymaps spécialisées. le système d'exploitation peut utiliser des keymaps standard conçues pour un clavier de taille normale. Le système d'exploitation n'ayant aucune notion de la touche Fn, cette dernière ne peut pas être remappée dans un logiciel, contrairement à toutes les autres touches du clavier standard.