Issue description
Signal-desktop started with
signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland
does not open on the wayland backend. It does when using sway (It actually is native wayland, verified with xeyes so it's not because of a lack of Xwayland support in qtile). There seems to be an issue with setting the wid of the window (see stack trace obtained from running in a nested session). Chromium with the same flags works fine. So does vscode with those flags, so not all electron apps seem to be affected. I am trying to debug it in the meantime but I'm not very experienced with the wayland code.
Btw I love how smooth qtile works under wayland, great work!
Edit: Hmmm, those wid errors seem to happen on other windows too. But they only happen when I run Qtile in a nested session AFAICT, so I'm not sure what the issue is with signal-desktop not starting. In a normal session it also does not start and ~/.local/share/qtile/qtile.log
shows the top 5 lines before the wid errors in the stack trace I provided.
Qtile version
Master @ c9cc86dcff89d1b04ccf13626929538fbd21ae4a
- pywlroots: 0.14.6
- wlroots: 14.1
- python-xkbcommon: 0.4
- pywayland: 0.4.7
- wayland lib: 1.19.0
- wayland-scanner: 1.19.0
- signal-desktop: 5.17.2
Stack traces
2021-09-29 17:03:41,510 DEBUG libqtile core.py:_on_request_cursor():L269 Signal: seat request_set_cursor_event
2021-09-29 17:03:41,511 DEBUG libqtile core.py:_on_new_xdg_surface():L273 Signal: xdg_shell new_surface_event
2021-09-29 17:03:41,511 DEBUG libqtile core.py:_on_new_toplevel_decoration():L349 Signal: xdg_decoration new_top_level_decoration
2021-09-29 17:03:41,511 DEBUG libqtile window.py:_on_set_app_id():L217 Signal: window set_app_id
2021-09-29 17:03:41,512 DEBUG libqtile window.py:_on_set_title():L212 Signal: window set_title
--- Logging error ---
Traceback (most recent call last):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 1085, in emit
msg = self.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 929, in format
return fmt.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 668, in format
record.message = record.getMessage()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 373, in getMessage
msg = msg % self.args
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/base.py", line 224, in __repr__
return "Window(name=%r, wid=%i)" % (self.name, self.wid)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 124, in wid
return self._wid
AttributeError: 'Window' object has no attribute '_wid'
Call stack:
File "/nix/store/963rzjs9nd2w1c4yin2kxg90qbxzrj4c-python3.8-qtile-0.18.2-wayland/bin/.qtile-wrapped", line 9, in <module>
sys.exit(main())
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/main.py", line 61, in main
options.func(options)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/start.py", line 89, in start
q.loop()
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/core/manager.py", line 210, in loop
asyncio.run(self.async_loop())
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 603, in run_until_complete
self.run_forever()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
self._run_once()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
handle._run()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/core.py", line 522, in _poll
self.event_loop.dispatch(0)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/utils.py", line 30, in wrapper
return func(self, *args, **kwargs)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/eventloop.py", line 281, in dispatch
lib.wl_event_loop_dispatch(self._ptr, timeout)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/listener.py", line 33, in notify_func
callback(listener, data)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 214, in _on_set_title
hook.fire('client_name_updated', self)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/hook.py", line 385, in fire
logger.debug("Internal event: %s(%s, %s)", event, args, kwargs)
Unable to print the message and arguments - possible formatting error.
Use the traceback above to help find the error.
--- Logging error ---
Traceback (most recent call last):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/handlers.py", line 69, in emit
if self.shouldRollover(record):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/handlers.py", line 185, in shouldRollover
msg = "%s\n" % self.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 929, in format
return fmt.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 668, in format
record.message = record.getMessage()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 373, in getMessage
msg = msg % self.args
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/base.py", line 224, in __repr__
return "Window(name=%r, wid=%i)" % (self.name, self.wid)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 124, in wid
return self._wid
AttributeError: 'Window' object has no attribute '_wid'
Call stack:
File "/nix/store/963rzjs9nd2w1c4yin2kxg90qbxzrj4c-python3.8-qtile-0.18.2-wayland/bin/.qtile-wrapped", line 9, in <module>
sys.exit(main())
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/main.py", line 61, in main
options.func(options)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/start.py", line 89, in start
q.loop()
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/core/manager.py", line 210, in loop
asyncio.run(self.async_loop())
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 603, in run_until_complete
self.run_forever()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
self._run_once()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
handle._run()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/core.py", line 522, in _poll
self.event_loop.dispatch(0)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/utils.py", line 30, in wrapper
return func(self, *args, **kwargs)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/eventloop.py", line 281, in dispatch
lib.wl_event_loop_dispatch(self._ptr, timeout)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/listener.py", line 33, in notify_func
callback(listener, data)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 214, in _on_set_title
hook.fire('client_name_updated', self)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/hook.py", line 385, in fire
logger.debug("Internal event: %s(%s, %s)", event, args, kwargs)
Unable to print the message and arguments - possible formatting error.
Use the traceback above to help find the error.
--- Logging error ---
Traceback (most recent call last):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 1085, in emit
msg = self.format(record)
2021-09-29 17:03:46,525 DEBUG libqtile window.py:_on_destroy():L195 Signal: window destroy
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 929, in format
return fmt.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 668, in format
record.message = record.getMessage()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 373, in getMessage
msg = msg % self.args
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/base.py", line 224, in __repr__
return "Window(name=%r, wid=%i)" % (self.name, self.wid)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 124, in wid
return self._wid
AttributeError: 'Window' object has no attribute '_wid'
Call stack:
File "/nix/store/963rzjs9nd2w1c4yin2kxg90qbxzrj4c-python3.8-qtile-0.18.2-wayland/bin/.qtile-wrapped", line 9, in <module>
sys.exit(main())
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/main.py", line 61, in main
options.func(options)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/start.py", line 89, in start
q.loop()
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/core/manager.py", line 210, in loop
asyncio.run(self.async_loop())
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 603, in run_until_complete
self.run_forever()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
self._run_once()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
handle._run()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/core.py", line 522, in _poll
self.event_loop.dispatch(0)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/utils.py", line 30, in wrapper
return func(self, *args, **kwargs)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/eventloop.py", line 281, in dispatch
lib.wl_event_loop_dispatch(self._ptr, timeout)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/listener.py", line 33, in notify_func
callback(listener, data)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 214, in _on_set_title
hook.fire('client_name_updated', self)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/hook.py", line 385, in fire
logger.debug("Internal event: %s(%s, %s)", event, args, kwargs)
Unable to print the message and arguments - possible formatting error.
Use the traceback above to help find the error.
--- Logging error ---
Traceback (most recent call last):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/handlers.py", line 69, in emit
if self.shouldRollover(record):
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/handlers.py", line 185, in shouldRollover
msg = "%s\n" % self.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 929, in format
return fmt.format(record)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 668, in format
record.message = record.getMessage()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/logging/__init__.py", line 373, in getMessage
msg = msg % self.args
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/base.py", line 224, in __repr__
return "Window(name=%r, wid=%i)" % (self.name, self.wid)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 124, in wid
return self._wid
AttributeError: 'Window' object has no attribute '_wid'
Call stack:
File "/nix/store/963rzjs9nd2w1c4yin2kxg90qbxzrj4c-python3.8-qtile-0.18.2-wayland/bin/.qtile-wrapped", line 9, in <module>
sys.exit(main())
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/main.py", line 61, in main
options.func(options)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/scripts/start.py", line 89, in start
q.loop()
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/core/manager.py", line 210, in loop
asyncio.run(self.async_loop())
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 603, in run_until_complete
self.run_forever()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
self._run_once()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
handle._run()
File "/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/core.py", line 522, in _poll
self.event_loop.dispatch(0)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/utils.py", line 30, in wrapper
return func(self, *args, **kwargs)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/eventloop.py", line 281, in dispatch
lib.wl_event_loop_dispatch(self._ptr, timeout)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/listener.py", line 33, in notify_func
callback(listener, data)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 214, in _on_set_title
hook.fire('client_name_updated', self)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/hook.py", line 385, in fire
logger.debug("Internal event: %s(%s, %s)", event, args, kwargs)
Unable to print the message and arguments - possible formatting error.
Use the traceback above to help find the error.
From cffi callback <function notify_func at 0x7f19d735de50>:
Traceback (most recent call last):
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/pywayland/server/listener.py", line 33, in notify_func
callback(listener, data)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 199, in _on_destroy
self.qtile.unmanage(self.wid)
File "/nix/store/kl5jnamqhrrn4lxr5i8yq9lwmyrgdzxw-qtile-0.18.2-wayland/lib/python3.8/site-packages/libqtile/backend/wayland/window.py", line 124, in wid
return self._wid
AttributeError: 'Window' object has no attribute '_wid'
Configuration
Happens with the default