J'ai acheté l'ordinateur portable ROG G551JM Asus qui s'est révélé compatible avec Ubuntu. Le clavier de l'ordinateur est mal conçu avec la touche "Poweroff" étant une touche ordinaire, placée à l'endroit où l'on trouve généralement la touche "End". L'ordinateur fonctionne bien sinon, je l'ai donc acheté en supposant que je serais en mesure de "résoudre" le problème, c'est-à-dire de remapper le bouton PowerOff dans la touche "Fin".
Le bouton PowerOff a mal tourné (ASUS G551JM):
Il y a normalement une touche «Fin» (ASUS N56VZ):
Les événements de bouton « PowerOff » sont produits par le /dev/input/event2: Power Button
dispositif (comme rapporté par evtest
) avec le code 116 ( par exemple à partir de la ligne evtest
: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
)
La clé est également visible pour le serveur X, et finalement Ubuntu peut identifier les touches comme une PowerOff
clé et lance la boîte de dialogue semi-transparente "Au revoir Adam ..." qui confirme ma volonté de mettre l'ordinateur hors tension.
Le problème est que la liaison qui lie la pression sur la touche PowerOff avec la routine qui affiche cette boîte de dialogue de confirmation n'est pas visible sous dconf-editor et je n'ai aucune indication où la trouver.
Quelqu'un peut-il me dire où modifier (ou supprimer) la liaison par défaut pour la clé PowerOff ???
Ça devrait être quelque chose de facile.
modifier le 21.IX.2016:
Il existe un moyen de désactiver définitivement la boîte de dialogue, voir Comment modifier les options du bouton d'alimentation? . J'espère qu'après avoir désactivé le bouton d'alimentation, il serait possible de le réaffecter à autre chose.
la source
Home
etEnd
sont les touches "meta" que j'utilise le plus ... :(Réponses:
J'ai pu le faire fonctionner sur mon ASUS N751JK dans Ubuntu 18.04 LTS et Ubuntu 16.04 LTS (testé avec l'environnement de bureau Unity dans les deux cas et KDE Plasma en 18.04):
Tout d'abord, réglez l'action du bouton "Power Off" sur
nothing
.Unité
Comme mentionné dans la réponse de Johano Fierra :
ou alternativement
sudo apt install dconf-tools
et utilisezdconf-editor
pour changer laorg.gnome.settings-daemon.plugins.power
propriété (comme décrit ici ). Un redémarrage ou une déconnexion est nécessaire pour le faire fonctionner.KDE
Allez dans "Paramètres système" , sélectionnez l' onglet "Gestion de l'alimentation" dans la section "Matériel" puis sélectionnez l' onglet "Économie d'énergie" , faites défiler vers le bas, recherchez la liste déroulante "Lorsque le bouton d'alimentation est enfoncé" et changez sa valeur en "Ne rien faire" . Cliquez sur le bouton "Appliquer" pour que les modifications prennent effet.
Installez xdotool :
Celui-ci nous permettra de déclencher des événements clés.
L'étape suivante consiste à déclencher la touche «Fin» sur la touche «Éteindre» .
Ubuntu 18.04
Créez un
/etc/acpi/events/power
fichier avec le contenu suivant:et créer un
/etc/acpi/power.sh
script avec le contenu suivant:et y ajouter des autorisations d'exécution:
Ubuntu 16.04
Script ACPI de sauvegarde utilisé pour gérer l'événement du bouton "Power Off" :
Ensuite, modifiez-le, recherchez les éléments suivants:
et modifiez le code ci-dessous pour qu'il ressemble à ceci:
Pour appliquer ces modifications, il faut exécuter:
Grâce à Adam, il est possible de redémarrer
acpid
automatiquement lorsqu'un utilisateur se connecte (au démarrage du système). Donc au lieu de manuelsudo acpid restart
dans le terminal à chaque fois après le redémarrage, ajoutez la ligne suivante:à la fin du
/etc/pam.d/common-session
fichier.la source
sudo acpid reload
lieu de redémarrer? Cela fonctionnerait-il?acpid restart
problème, c'est d'ajouter une lignesession optional pam_exec.so /usr/sbin/acpid restart
à la fin de/etc/pam.d/common-session
. De cette façon, l'acpid sera redémarré juste après la connexion de l'utilisateur et cela me suffit. Le problème est enfin résolu !!gsettings set
au lieu degsettings get
.sudo chmod +x /etc/acpi/power.sh
@Ezze, vous pourriez peut-être mettre à jour votre réponse pour l'inclure.Cela devrait faire l'affaire.
Entrez dans le terminal:
la source
xev
commande et empêchexmodmap
de le remapper. Et en passant, le code de touche du bouton "Éteindre" peut être différent (124 pour mon ASUS N751JK).gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"
(si vous appuyez sur le bouton est capturé), puis modifiez/etc/acpi/events/powerbtn
et commentez la ligne#action=/etc/acpi/powerbtn.sh
, puis entrez dans le terminal:xmodmap -e "keycode 124 = End"
cela devrait empêcher le bouton d'alimentation de faire quoi que ce soit et en même temps le mapper à la touche Fin.powerbtn.sh
script mais aussi par (au moins) lesystemd-logind
service (probablement, il utilise lebutton-power
paramètre que vous avez mentionné dans votre réponse). Vous pouvez trouverif pidof systemd-logind >/dev/null; then
...exit 0
ligne danspowerbtn.sh
laquelle signifie que le script permetsystemd-logind
de gérer lui-même l'événement "Power off" lorsque la session de bureau est active. Une chose que vous avez raison - la modification de labutton-power
valeur n'affecte pas la capacité de capturer la clé mais elle est déjà capturée par un processus (systemd-logind
ou autre).