Open Meister1593 opened 3 years ago
Would be nice if someone who uses pipewire could implement a new module. The pulse module should be a useful template for how it could work
It seems that pipewire now supports this correctly and while audio is playing caffeine activates automatically
@Meister1593 But does it work for you with xidlehook as well now or just caffeine? Since I switched to pipewire (I do not know if it does matter that I am using pipewire-pulse) --not-when-audio is unfortunately not working anymore.
@Meister1593 But does it work for you with xidlehook as well now or just caffeine? Since I switched to pipewire (I do not know if it does matter that I am using pipewire-pulse) --not-when-audio is unfortunately not working anymore.
a lot of stuff happened in a while and unfortunately author of this tool passed away i don't use xidlehook anymore (i use just gnome instead of setup i had) and if you're willing to use it, be mindful that it's unmaintained now
Thank you. I just read the text from Jackpot51 about it. That is sad.
Very sad to hear about jD91mZM2 😢
For those who want to keep using xidlehook
and are still struggling with pipewire
support, I found a workaround that is not the most elegant solution but works for me.
xidlehook
has a cool feature that allows you to use sockets to communicate (see https://github.com/jD91mZM2/xidlehook#socket-api), so you can manually reset the timer at any given time (sending a message to the same socket you're using for idle detection).
If you run xidlehook
like so:
xidlehook --socket /tmp/xidlehook.sock --not-when-audio --timer 600 "$HOME/bin/lock-screen" "" &
... then you could reset the timer checking for running sinks manually:
#
# Abort if there are any kind of sinks running (music audio, meetings, etc.)
#
echo "Checking running sinks..."
RUNNING_SINKS=$(pactl list short sinks | grep -c RUNNING)
if [ $RUNNING_SINKS -gt 0 ]; then
echo "There are $RUNNING_SINKS running sinks. Aborting lock screen."
xidlehook-client --socket /tmp/xidlehook.sock reset-idle
else
echo "No running sinks. Locking screen..."
# lock screen using i3lock or whatever program you would normally use
fi
The important piece here is the use of --socket
when running xidlehook
So issue is explained by title,
xidlehook
can't work withpipewire
and simply does not detect any audio.Pipewire
has pulse module, most likely issue is that it haven't implemented 100% of pulse api. I don't know exactly what would be better: topipewire
handle pulse methods properly or to implementpipewire
support inxidlehook
. In first case, i think would be nice to know what part oflibpulse
has to be implemented to work properly with audio levels (or what is used insidexidlehook
to detect audio) In second case, there is two options: either to implement it throughlibpipewire
, or to implement it through something that works with bothpulse
and withpipewire
throughlibpulse
(which is implemented in pipewire throughpipewire-pulse
).Either way, it would be nice to have such support.