[Решено] Скрин-локер после suspend в wayland labwc

https://wiki.archlinux.org/title/Power_management_(Русский)#Файлы_служб
#cat /etc/systemd/system/suspend@.service
[Unit]
Description=User suspend actions
Before=sleep.target

[Service]
User=%I
Type=forking
Environment=DISPLAY=:0
ExecStart=locker
ExecStartPost=/usr/bin/sleep 1

[Install]
WantedBy=sleep.target
В X11 это работало. В wayland :
Unable to connect to the compositor. If your compositor is running, check or set the WAYLAND_DISPLAY environment variable.
Меняю :
Environment=XDG_RUNTIME_DIR=/run/user/%U
Environment=WAYLAND_DISPLAY=wayland-0
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/bus
Та же ошибка

Тогда пошел другим путем :
while true; do swayidle before-sleep swaylock || break ;done &
Убивать : killall -9 swayidle
Без while срабатывает только 1 раз

Работает, но костыль еще тот... Может кто знает более красивое решение?

Что-то похоже , я перемудрил
swayidle -w before-sleep 'swaylock -f'
Нормально работает без заморочек с циклом и systemd
PuppyRusArch (PRA)
А не проще отключить этот Скрин-локер при уходе suspend/hibernate и включить его при выходе из suspend/hibernate???
Делаться это просто ... а выполнялся автоматом
Ошибки не исчезают с опытом - они просто умнеют
vasek
отключить этот Скрин-локер при уходе suspend/hibernate и включить его при выходе из suspend/hibernate???
swayidle after-resume swaylock ?
Так swaylock вообще не запускается или что вы имели ввиду?
PuppyRusArch (PRA)
sfs
вы имели ввиду?
Я никогда не использовал Скрин-локер …
Но он же так то включается/вывключается ??? - или systemd или скрит …
И пишетcя скрипт в /usr/lib/systemd/system-sleep/name.sh … типа
- для systemd
#!/bin/sh
#
case $1/$2 in
  pre/*)
    /usr/bin/systemctl stop name.service
    ;;
  post/*)
    /usr/bin/systemctl start name.service
    ;;
esac
- для скрипта
#!/bin/sh
case $1/$2 in
  pre/*)
    /usr/bin/command(script - выклучить)
    ;;
  post/*)
    /usr/bin/command(script - вклучить)
    ;;
esac
Ошибки не исчезают с опытом - они просто умнеют
vasek
Я никогда не использовал Скрин-локер …
Но он же так то включается/вывключается ??? - или systemd или скрит …
Скринлокеры запускаются от юзера. В первом сообщении я написал , что с .service под wayland не получается
PuppyRusArch (PRA)
У меня в качестве напоминалки с выводом сообщений на экран используется at (atd.service) но есть определенные проблемлы после выхода их suspend … создал файл
/usr/lib/systemd/system-sleep/atd_sleep.sh
#!/bin/sh
#
case $1/$2 in
  pre/*)
    /usr/bin/systemctl stop atd.service
    ;;
  post/*)
    /usr/bin/systemctl start atd.service
    ;;
esac
и проблемла ушла ...

sfs
Скринлокеры запускаются от юзера
но откучить то его можно ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
/usr/lib/systemd/system-sleep/
Если прописать здесь что-то графическое - "cannot open display"
WAYLAND_DISPLAY=wayland-0 и т.п. не помогают
PuppyRusArch (PRA)
sfs
WAYLAND_DISPLAY=wayland-0
???
Мой вывод
echo $WAYLAND_DISPLAY
wayland-1

или
env | grep WAYLAND_DISPLAY
WAYLAND_DISPLAY=wayland-1

PS - и провер вывод
echo $XDG_SESSION_TYPE
wayland
Ошибки не исчезают с опытом - они просто умнеют
echo $WAYLAND_DISPLAY
wayland-0
echo $XDG_SESSION_TYPE
wayland
Дело не в этом.
PuppyRusArch (PRA)
это пробовал?
Тоже ошибка
sfs
Unable to connect to the compositor. If your compositor is running, check or set the WAYLAND_DISPLAY environment variable.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.