Re: devd lid close event
- In reply to: Dr. Amr Osman: "devd lid close event"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 Dec 2023 17:46:24 UTC
Dr. Amr Osman wrote in <CAEYFr1A0_qe5BJR_FVnkEEL1bdYZHbSeidqy6L4mZbVtzROKuw@mail.gmail.com>: |Hello, |I have freeBSD 14 on Thinkpad x270, |I just did do a fresh install and installed dwm and slock |the issue is I want to make laptop lock screen whenever I close the lid | |here is my /usr/local/etc/devd/lid.conf |``` |notify 10 { | match "system" "ACPI"; | match "subsystem" "Lid"; | match "notify" "0x00"; | action "/usr/local/bin/slock"; |}; | |``` |here is my /var/run/devd.pipe when I close the lid | |``` |!system=ACPI subsystem=Lid type=\_SB_.LID_ notify=0x00 !system=ACPI |subsystem=Lid type=\_SB_.LID_ notify=0x00 !system=ACPI |subsystem=Suspend type=\ notify=0x03 !system=IFNET subsystem=wlan0 |type=LINK_DOWN |``` | |what am I doing wrong? At minimum slock needs the $DISPLAY to connect to, eg :0. devd does not run within the X session, so no chance. Also the above runs slock as root, not the user who actually owns the X display. For the very same use case, on linux, i use if command -v X >/dev/null 2>&1 && command -v slock >/dev/null 2>&1; then had_z= for p in $(pgrep X); do ^ use pgrep to find all X instances uid=$(awk '/^Uid:/{print $2}' < /proc/$p/status) disp=$(sed -Ee 's/^.*DISPLAY=:([[:digit:]]+).*$/\1/' < /proc/$p/environ) [ -z "$disp" ] && disp=$(xargs -0 printf '%s\n' < /proc/$p/cmdline | awk '/^:[[:digit:]]+/{sub(":", ""); print}') ^ unfortunately non-portable approach to find out user id and actual display of _this_ X instance if [ -z "$disp" ]; then [ -n "$had_z" ] && continue had_z=y disp=0 elif [ $disp = 0 ]; then [ -n "$had_z" ] && continue had_z=y fi act "DISPLAY=:$disp $SUPER -u $uid slock </dev/null >/dev/null 2>&1 &" ^ and here we lock that display for the given user. $SUPER is doas(1) in this case, but was sudo(1) in the past (and could be super(1) like ~20 years ago if that could be find anywhere on the internet). done fi |Thank You |Dr. Amr Osman Ciao. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) | | Only in December: lightful Dubai COP28 Narendra Modi quote: | A small part of humanity has ruthlessly exploited nature. | But the entire humanity is bearing the cost of it, | especially the inhabitants of the Global South. | The selfishness of a few will lead the world into darkness, | not just for themselves but for the entire world.