[ACPI] Eteindre l'écran en rabattant ? (Résolu)
[ACPI] Eteindre l'écran en rabattant ? (Résolu)
Je viens de passer à systemd. J'ai désactivé la mise en veille quand l'écran est rabattu via /etc/systemd/logind.conf.
Problème : l'écran ne s’éteint plus quand je le rabat. Par contre il s'éteint une demi-seconde quand je l'ouvre !
J'ai beau chercher, je ne vois pas bien où je pourrais régler ça. Si quelqu'un a une idée, ca m’intéresse fortement !
Problème : l'écran ne s’éteint plus quand je le rabat. Par contre il s'éteint une demi-seconde quand je l'ouvre !
J'ai beau chercher, je ne vois pas bien où je pourrais régler ça. Si quelqu'un a une idée, ca m’intéresse fortement !
Dernière modification par sushi le ven. 16 nov. 2012, 01:39, modifié 1 fois.
- FoolEcho
- Maître du Kyudo
- Messages : 10707
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [Systemd] Eteindre l'écran en rabattant ?
Tu peux montrer ton logind.conf ?
Tu es sous quel environnement (dès fois qu'il y ait un conflit avec) ?
Tu es sous quel environnement (dès fois qu'il y ait un conflit avec) ?
«The following statement is not true. The previous statement is true.»
Re: [Systemd] Eteindre l'écran en rabattant ?
Mon logind.conf (tout le reste est commenté, donc paramètres par défault)
J'ai aussi testé
Mon environnement, c'est compiz (via 'exec fusion-icon' dans mon xinitrc). J'ai installé gnome-3.6 et KDE pour voir. Même punition.
En fouillant un peu mieux les wiki, j'ai trouvé quels fichiers sont censés gérer ça :
avec laptop-mode-tools installé : /etc/acpi/events/lm_lid qui lance /etc/acpi/actions/lm_lid.sh
avec ou sans laptop-mode-tools : /etc/acpi/handler.sh
J'ai testé les différentes méthodes de configuration proposées sur les wikis, sans succès.
Pour faire simple, j'ai fini par virer laptop-mode-tools, j'ai configuré /etc/acpi/handler.sh pour qu'il lance ce script quand l'écran est fermé :
Le message apparaît bien sur le tty2, mais l'écran ne s’éteint pas. Alors que le script fonctionne quand je le lance moi même.
Je ne comprends vraiment pas.
edit : je sais pas si ca peut-être utile, mais voila ce que raconte systemctl
Code : Tout sélectionner
HandleLidSwitch=ignore
Code : Tout sélectionner
LidSwitchIgnoreInhibited=no
En fouillant un peu mieux les wiki, j'ai trouvé quels fichiers sont censés gérer ça :
avec laptop-mode-tools installé : /etc/acpi/events/lm_lid qui lance /etc/acpi/actions/lm_lid.sh
avec ou sans laptop-mode-tools : /etc/acpi/handler.sh
J'ai testé les différentes méthodes de configuration proposées sur les wikis, sans succès.
Pour faire simple, j'ai fini par virer laptop-mode-tools, j'ai configuré /etc/acpi/handler.sh pour qu'il lance ce script quand l'écran est fermé :
Code : Tout sélectionner
#!/bin/bash
###Pour vérifier que le script est lancé
sudo echo "lid closed">/dev/tty2 ;
###Pour éteindre l'écran
sudo xset dpms force off
Je ne comprends vraiment pas.
edit : je sais pas si ca peut-être utile, mais voila ce que raconte systemctl
- cdemoulins
- Chu Ko Nu
- Messages : 310
- Inscription : mar. 11 mars 2008, 04:15
- Localisation : Paris
Re: [Systemd] Eteindre l'écran en rabattant ?
Pour ton script handler.sh, tu peux déjà enlevé les «sudo» qui trainent vu que le script est exécuté par le compte root.
Ensuite, est-ce que par hasard, la commande xset n'aurai pas besoin que la variable DISPLAY soit défini ?
Ça expliquerait pourquoi la commande fonctionne quand tu l'exécute dans un terminal mais pas lorsque acpid l'exécute.
Ensuite, est-ce que par hasard, la commande xset n'aurai pas besoin que la variable DISPLAY soit défini ?
Ça expliquerait pourquoi la commande fonctionne quand tu l'exécute dans un terminal mais pas lorsque acpid l'exécute.
- banditblue
- Elfe
- Messages : 591
- Inscription : dim. 10 janv. 2010, 10:19
Re: [Systemd] Eteindre l'écran en rabattant ?
voila le script que j'ai sur mon eeepc ainsi que sur le pc fixe et tout fonctionne parfaitement
sur le eeepc quand je rabbat l'ecran il s'éteint bien
sur le eeepc quand je rabbat l'ecran il s'éteint bien
Code : Tout sélectionner
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See logind.conf(5) for details
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#Controllers=
#ResetControllers=cpu
#InhibitDelayMaxSec=5
HandleRebootKey=reboot
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé
Pc fixe --- MSI MPG Z490 Gaming Edge WiFi, I9-9900Kf, RTX3070Ti, 64Go DDR4, SSD 1Tera nvme gen4 Samsung 980 pro, SSD 1Tera WD Blacksn850X,3HDD 5Tera
Eeepc Asus 1015pem --- Intel Atom N550 Dual-core 1.5Ghz / DD 1Tera 7200rpm / Ram 2Go
Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Mais sa valeur, est d'autant plus grande, une fois partagé
Pc fixe --- MSI MPG Z490 Gaming Edge WiFi, I9-9900Kf, RTX3070Ti, 64Go DDR4, SSD 1Tera nvme gen4 Samsung 980 pro, SSD 1Tera WD Blacksn850X,3HDD 5Tera
Eeepc Asus 1015pem --- Intel Atom N550 Dual-core 1.5Ghz / DD 1Tera 7200rpm / Ram 2Go
Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Re: [Systemd] Eteindre l'écran en rabattant ?
@cdemoulins
Je savais bien qu'on allait me faire la réflexion pour mes sudos ! Tu as raison, mais je lance aussi ce script à la main en tant qu'utilisateur, et comme je suis très feignant... Je dégaine un peu vite le sudo dans mes scripts
Doublement inutile en plus, xset n'a pas besoin d'être lancé en root, et le "sudo echo" ne marche pas. Par contre quand je sudo le script avec la commande echo dedans, ca marche. Encore une subtilité de sudo qui m'échappe.
Pour le -display, j'avais commencé avec, vu que les wikis indiquent de le mettre. Ca ne marche pas plus.
J'avais fini par le virer car ma compréhension de cet argument est qu'il sert à limiter la commande à un écran, ce qui est utile uniquement quand on en possède plusieurs; je ne possède qu'un seul écran. J'ai revu les manuels xset et X pour vérifier, et je n'ai rien trouvé d'explicite sur ce qu'il se passe en l'absence de cette option.
Je l'ai donc remis, même si pour l'instant ça ne change rien à mon problème.
@banditblue
C'est l'option par défaut et ton écran ne devrait pas se contenter de s'éteindre quand tu le rabats : ton système devrait passer en veille. Si ce n'est pas le cas, c'est que tu vas un peu vite en disant "tout fonctionne parfaitement".
Le fichier logind.conf ne gère pas l'extinction seule de l'écran, sauf omission du manuel.
Je savais bien qu'on allait me faire la réflexion pour mes sudos ! Tu as raison, mais je lance aussi ce script à la main en tant qu'utilisateur, et comme je suis très feignant... Je dégaine un peu vite le sudo dans mes scripts
Doublement inutile en plus, xset n'a pas besoin d'être lancé en root, et le "sudo echo" ne marche pas. Par contre quand je sudo le script avec la commande echo dedans, ca marche. Encore une subtilité de sudo qui m'échappe.
Pour le -display, j'avais commencé avec, vu que les wikis indiquent de le mettre. Ca ne marche pas plus.
J'avais fini par le virer car ma compréhension de cet argument est qu'il sert à limiter la commande à un écran, ce qui est utile uniquement quand on en possède plusieurs; je ne possède qu'un seul écran. J'ai revu les manuels xset et X pour vérifier, et je n'ai rien trouvé d'explicite sur ce qu'il se passe en l'absence de cette option.
Je l'ai donc remis, même si pour l'instant ça ne change rien à mon problème.
@banditblue
Code : Tout sélectionner
HandleLidSwitch=suspend
Le fichier logind.conf ne gère pas l'extinction seule de l'écran, sauf omission du manuel.
- cdemoulins
- Chu Ko Nu
- Messages : 310
- Inscription : mar. 11 mars 2008, 04:15
- Localisation : Paris
Re: [Systemd] Eteindre l'écran en rabattant ?
Je viens de voir que sur le wiki anglais il y a des trucs qui devrait t'intéresser :
https://wiki.archlinux.org/index.php/Ac ... _Power_Off
https://wiki.archlinux.org/index.php/Ac ... _Power_Off
Re: [Systemd] Eteindre l'écran en rabattant ?
Ca incluais le wiki anglais Mais tu as bien fait de me le rapeller:sushi a écrit :J'ai testé les différentes méthodes de configuration proposées sur les wikis, sans succès.
Ce script ne m'est pas apparu intéressant dans le sens où il fait doublon avec ce acpid fait déjà très bien : détecter si l'écran est ouvert ou rabattu. Et que je ne vois vraiment pas ce qu'apporte le "`ps -o ruser= -C xinit`".
Par contre le revoir avec ce sudo énorme m'a fait pensé que je n'avais pas testé avec un sudo dans le handler.sh... Et ça marche !
Je ne comprend pas vraiment, mais comme quoi, les sudos qui servent à rien des fois ils ont du bon
Je confirme que -display est nécessaire.
La partie concernée de /etc/acpi/handler.sh
Résolu, merci à tous.button/lid)
case "$3" in
close)
logger 'LID closed'
sudo xset dpms force off -display :0
;;
EDIT: Je pense savoir pourquoi ca marche avec le sudo. J'ai utilisé xauth pour autoriser root a controler X. J'avais fait ca suite a un message d'erreur (MIT-MAGIC-COOKIE-1) en utilisant xset en root depuis un tty.