You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fails to detect system pause on python-pywayland 0.4.19 #906
Describe the bug
Fails to detect system idle, stays active forever. When I come back to the PC - I may get prompted for a break immediately or it would be on break already
To Reproduce
Steps to reproduce the behavior:
Launch from application menu
Leave mouse alone for the idle duration
Observe the eye doesn't become gray
Expected behavior
The icon should turn gray and should not count time against break time
Desktop (please complete the following information):
SafeEyes (AUR safeeyes package, Arch/CachyOS)
Python 3.14
python-pywayland 0.4.19-1.1
KDE Plasma on Wayland
Problem
SafeEyes crashes on startup during plugin_manager.start() while loading the smartpause plugin:
File ".../safeeyes/plugins/smartpause/ext_idle_notify.py", line 29, in
from pywayland.protocol.wayland.wl_seat import WlSeat
ModuleNotFoundError: No module named 'pywayland.protocol.wayland.wl_seat'; 'pywayland.protocol.wayland' is not a package
Because this exception is unhandled, it propagates up through do_startup and the whole application fails to initialize — not just the smartpause feature. Breaks never fire, including forced breaks (safeeyes -t).
Root cause
Recent pywayland releases (confirmed with 0.4.19, built Aug 2025) changed how generated protocol code is laid out: instead of a subpackage per protocol with a submodule per interface (pywayland/protocol/wayland/wl_seat.py), each protocol is now a single flat module containing all its interface classes directly (pywayland/protocol/wayland.py, containing class WlSeat). The old nested import path no longer exists.
Fix
In safeeyes/plugins/smartpause/ext_idle_notify.py, change:
python
from pywayland.protocol.wayland.wl_seat import WlSeat
to:
python
from pywayland.protocol.wayland import WlSeat
This matches the current pywayland API and resolves the crash. Ideally this import should also be wrapped in a try/except (similar to the existing handling for ext_idle_notify_v1) so that a future pywayland/idle-notify API change degrades smartpause gracefully instead of blocking the entire app from starting.
Activity
Lupccs commentedon Sep 5, 2026
It also fails to launch a pause, if I force it.
Environment
SafeEyes (AUR safeeyes package, Arch/CachyOS)
Python 3.14
python-pywayland 0.4.19-1.1
KDE Plasma on Wayland
Problem
SafeEyes crashes on startup during plugin_manager.start() while loading the smartpause plugin:
File ".../safeeyes/plugins/smartpause/ext_idle_notify.py", line 29, in
from pywayland.protocol.wayland.wl_seat import WlSeat
ModuleNotFoundError: No module named 'pywayland.protocol.wayland.wl_seat'; 'pywayland.protocol.wayland' is not a package
Because this exception is unhandled, it propagates up through do_startup and the whole application fails to initialize — not just the smartpause feature. Breaks never fire, including forced breaks (safeeyes -t).
Root cause
Recent pywayland releases (confirmed with 0.4.19, built Aug 2025) changed how generated protocol code is laid out: instead of a subpackage per protocol with a submodule per interface (pywayland/protocol/wayland/wl_seat.py), each protocol is now a single flat module containing all its interface classes directly (pywayland/protocol/wayland.py, containing class WlSeat). The old nested import path no longer exists.
Fix
In safeeyes/plugins/smartpause/ext_idle_notify.py, change:
python
from pywayland.protocol.wayland.wl_seat import WlSeat
to:
python
from pywayland.protocol.wayland import WlSeat
This matches the current pywayland API and resolves the crash. Ideally this import should also be wrapped in a try/except (similar to the existing handling for ext_idle_notify_v1) so that a future pywayland/idle-notify API change degrades smartpause gracefully instead of blocking the entire app from starting.
archisman-panigrahi commentedon Sep 5, 2026
@0x09AF Can you please check whether this fixes the issue?
0x09AF commentedon Sep 5, 2026
@archisman-panigrahi Yes, it does. I also described the fix in my first post as well.
Fix #906
Merge pull request #908 from archisman-panigrahi/patch-2
archisman-panigrahi commentedon Sep 5, 2026
@0x09AF Sorry, I did not notice your patch before.
I just released a new version with this patch.
Thank you @0x09AF and @Lupccs
safeeyes: Update to 3.5.1 (#10963)
safeeyes: Update to 3.5.1