Repository: qtile/qtile

Issue:
Wayland: Signal-desktop with wayland flags does not open
<!--
Please do not ask general questions here! There are [community
contact](https://github.com/qtile/qtile#community) options for that.

If you are suggesting a new feature/enhancement please instead post it on the
discussions board as an idea: https://github.com/qtile/qtile/discussions/categories/ideas
-->

# 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.

<!--
A brief discussion of what failed and how it failed. A description of
what you tried is helpful, i.e. "When I use lazy.kill() on a window I get
the following stack trace" instead of "Closing windows doesn't work".
-->

# 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

<!--
Please include the exact commit hash of the version of Qtile that failed.
-->

# Stack traces

<!--
Please attach any stack traces found in:

* `~/.xsession-errors`
* `~/.local/share/qtile/qtile.log`
-->
```
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



Discussion:
I think the wid error messages are due to `__repr__` on the window accessing `self._wid` before the window is given a wid. Allocating a wid is delayed because the windows only become managed when they map for the first time, though we are aware of them before then so they are temporarily held in `Core.pending_windows` until mapped. Looks like `client_name_updated` is being fired and triggering this error before the first map, and so the error happens. Really, the listeners on the toplevel should only be set up when the window becomes mapped and managed. Coincidentally I have some changes I am going to submit as a PR soon that set up atomic changes and part of these changes is to move those listeners, and it will fix this issue (I wasn't trying to fix this issue so it's nice it preemptively fixes a bug!).

If it helps in debugging, you could either move the listeners on `self.surface.toplevel` to the bit inside `Window._on_map()` that manages the window for the first time, or you could just set `self.wid = None` or something inside `Window.__init__`. I don't know if this will fix the signal-desktop problem, but it'd be nice if it magically fixes that too. Given that the `client_name_updated` hook is firing in a different event in the event loop (in response to the misplaced listener), I don't think it'd make a difference.

> Btw I love how smooth qtile works under wayland, great work!

Thanks! And thanks for the bug report, these are important for really getting it off the ground :)
> I think the wid error messages are due to `__repr__` on the window accessing `self._wid` before the window is given a wid. Allocating a wid is delayed because the windows only become managed when they map for the first time, though we are aware of them before then so they are temporarily held in `Core.pending_windows` until mapped. Looks like `client_name_updated` is being fired and triggering this error before the first map, and so the error happens. Really, the listeners on the toplevel should only be set up when the window becomes mapped and managed. Coincidentally I have some changes I am going to submit as a PR soon that set up atomic changes and part of these changes is to move those listeners, and it will fix this issue (I wasn't trying to fix this issue so it's nice it preemptively fixes a bug!).
> 
> If it helps in debugging, you could either move the listeners on `self.surface.toplevel` to the bit inside `Window._on_map()` that manages the window for the first time, or you could just set `self.wid = None` or something inside `Window.__init__`. I don't know if this will fix the signal-desktop problem, but it'd be nice if it magically fixes that too. Given that the `client_name_updated` hook is firing in a different event in the event loop (in response to the misplaced listener), I don't think it'd make a difference.
> 
> > Btw I love how smooth qtile works under wayland, great work!
> 
> Thanks! And thanks for the bug report, these are important for really getting it off the ground :)

Thanks for the detailed response, this makes it more clear for me. I will play around with it in my free time and see if I can find a fix :+1: 

It's already really nice as a daily driver, for stuff that don't work I use cage atm (really only signal-desktop and some apps that are still only for x11).
I noticed the same thing with signal desktop and VS code/VS codium, however I have other electron apps that do work (WhatsApp) so it seems to be something with certain electron apps and qtile that doesn't behave well.
If you run signal-desktop the same way under a different compositor, does it open (and not via xwayland)?

I've just been reading through the discussion over on https://github.com/signalapp/Signal-Desktop/issues/3411 about their wayland support and it's both shiny and new but also dependent upon both electron and signal-desktop version (if I understand correctly), and possibly also build flags, which will depend on where you're installing signal-desktop from. For example, one of the last comments mentioned a beta signal release being packaged in the AUR that supported wayland, and I just tested `signal-desktop` from Arch's official repos and it will not run, so perhaps it's a matter of waiting. In the meantime running signal-desktop within cage is probably the only way to run it in Qtile wayland, sorry.

I'm going to close this as I believe this is not a Qtile issue, but if I am mistaken with this interpretation please feel free to re-open.
> If you run signal-desktop the same way under a different compositor, does it open (and not via xwayland)?
> 
> I've just been reading through the discussion over on https://github.com/signalapp/Signal-Desktop/issues/3411 about their wayland support and it's both shiny and new but also dependent upon both electron and signal-desktop version (if I understand correctly), and possibly also build flags, which will depend on where you're installing signal-desktop from. For example, one of the last comments mentioned a beta signal release being packaged in the AUR that supported wayland, and I just tested `signal-desktop` from Arch's official repos and it will not run, so perhaps it's a matter of waiting. In the meantime running signal-desktop within cage is probably the only way to run it in Qtile wayland, sorry.
> 
> I'm going to close this as I believe this is not a Qtile issue, but if I am mistaken with this interpretation please feel free to re-open.

See the original issue description. It does run under sway for me and xeyes cannot detect it so it's not running under xwayland. Just tried river without xwayland support (not providing xwayland build flag) and there it works too if I use ```--enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu``` (added `--disable-gpu` to make it reliably work). 

Whatever I try, it doesn't on qtile so I assume it's a qtile issue or an issue in my qtile environment if it works with the above flags for you.
> See the original issue description. It does run under sway for me and xeyes cannot detect it so it's not running under xwayland. 

:sweat_smile: ah yes my bad. What does xeyes do to report windows?

When I try running it, the final crash line is: `zsh: trace trap (core dumped)  signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland`. Do you see something similar?
> > See the original issue description. It does run under sway for me and xeyes cannot detect it so it's not running under xwayland.
> 
> sweat_smile ah yes my bad. What does xeyes do to report windows?

No problem! Xeyes is a simple utility that follows your mouse cursor if you're on x11/xwayland windows and doesn't when you're on wayland windows. If xeyes was at fault here of not showing movement on sway then it shouldn't open on river (without xwayland enabled) either. So I'm not sure what the difference is with qtile of handling things here haha.

> When I try running it, the final crash line is: `zsh: trace trap (core dumped) signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland`. Do you see something similar?

What signal version is this? When I do that it doesn't crash but just prints normal messages that it always does when opening a signal-desktop window, with qtile the only thing is that the windows just doesn't get mapped (not sure if this is the right terminology for it but I don't see the window). If I don't provide those flags it gives me a segfault.

We can further verify that signal succeeds in opening a hidden window by opening a second instance, it will close with:

```
quitting; we are the second instance
```

Btw if you want the same signal-desktop version as me, install [nix](https://nixos.org/download.html), and run:
```bash
nix-shell -p signal-desktop --run "signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu"
```
> Xeyes is a simple utility that follows your mouse cursor if you're on x11/xwayland windows and doesn't when you're on wayland windows.

Ah, so xeyes' movement halts when the cursor goes over a wayland window? That's weird, I guess I never considered how something like xeyes would spy on the cursor position when running via xwayland.

My signal version is `5.19.0-1` (Arch repos). With that I can reproduce; it works under sway in both XWayland and Wayland native. Oddly I am not getting the hidden window thing that you are seeing, but without the flags I am also getting a segfault.

Please could you run it with `WAYLAND_DEBUG=1`, and paste the last 50 or so lines?
> > Xeyes is a simple utility that follows your mouse cursor if you're on x11/xwayland windows and doesn't when you're on wayland windows.
> 
> Ah, so xeyes' movement halts when the cursor goes over a wayland window? That's weird, I guess I never considered how something like xeyes would spy on the cursor position when running via xwayland.

Exactly! I'm guessing because xwayland still opens a x11 display? Because xrandr even shows a display haha.

> My signal version is `5.19.0-1` (Arch repos). With that I can reproduce; it works under sway in both XWayland and Wayland native. Oddly I am not getting the hidden window thing that you are seeing, but without the flags I am also getting a segfault.

I am also running 5.19 so it's weird that it's not the same behaviour for you.

> Please could you run it with `WAYLAND_DEBUG=1`, and paste the last 50 or so lines?

Added a note where I pressed ctrl+c to force it to exit after a while:
```
[2616179.075]  -> wl_surface@6.attach(wl_buffer@21, 0, 0)
[2616179.098]  -> wl_surface@6.commit()
[2616179.114]  -> wl_compositor@9.create_region(new id wl_region@22)
[2616179.137]  -> wl_region@22.add(0, 0, 0, 0)
[2616179.169]  -> wl_surface@19.set_opaque_region(wl_region@22)
[2616179.181]  -> wl_region@22.destroy()
[2616214.614]  -> zwp_primary_selection_device_manager_v1@15.get_device(new id zwp_primary_selection_device_v1@23, wl_seat@12)
[2616225.918]  -> xdg_wm_base@14.get_xdg_surface(new id xdg_surface@24, wl_surface@19)
[2616225.952]  -> xdg_surface@24.get_toplevel(new id xdg_toplevel@25)
[2616225.964]  -> zxdg_decoration_manager_v1@16.get_toplevel_decoration(new id zxdg_toplevel_decoration_v1@26, xdg_toplevel@25)
[2616225.986]  -> wl_surface@19.commit()
[2616225.993]  -> xdg_toplevel@25.set_app_id("Signal")
[2616226.002]  -> xdg_toplevel@25.set_title("Signal")
[2616226.012]  -> xdg_toplevel@25.set_min_size(680, 550)
[2616226.024]  -> xdg_toplevel@25.set_max_size(2147483647, 2147483647)
[2616226.036]  -> xdg_toplevel@25.unset_maximized()
[2616226.044]  -> zxdg_toplevel_decoration_v1@26.set_mode(2)
[2616226.053]  -> wl_compositor@9.create_region(new id wl_region@27)
[2616226.064]  -> wl_region@27.add(0, 0, 0, 0)
[2616226.084]  -> wl_surface@19.set_opaque_region(wl_region@27)
[2616226.092]  -> wl_region@27.destroy()
[2616226.100]  -> xdg_toplevel@25.set_maximized()
[2616236.041] wl_keyboard@3.keymap(1, fd 110, 47506)
[2616238.045] wl_keyboard@3.repeat_info(25, 600)
[2616245.468] wl_display@1.delete_id(20)
[2616245.495] wl_display@1.delete_id(22)
[2616245.504] wl_display@1.delete_id(27)
[2616245.512] xdg_toplevel@25.configure(0, 0, array)
[2616245.531] zxdg_toplevel_decoration_v1@26.configure(2)
[2616245.539] xdg_surface@24.configure(259)
[2616303.576]  -> wl_shm@4.create_pool(new id wl_shm_pool@27, fd 111, 1496000)
[2616303.619]  -> wl_shm_pool@27.create_buffer(new id wl_buffer@22, 0, 680, 550, 2720, 0)
[2616303.652]  -> wl_shm_pool@27.destroy()
[2616305.449]  -> wl_compositor@9.create_region(new id wl_region@20)
[2616305.478]  -> wl_region@20.add(0, 0, 680, 550)
[2616305.500]  -> wl_surface@19.set_opaque_region(wl_region@20)
[2616305.509]  -> wl_region@20.destroy()
[2616320.200]  -> wl_shm@4.create_pool(new id wl_shm_pool@28, fd 111, 1496000)
[2616320.240]  -> wl_shm_pool@28.create_buffer(new id wl_buffer@29, 0, 680, 550, 2720, 0)
[2616320.273]  -> wl_shm_pool@28.destroy()
(node:24275) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `exe --trace-deprecation ...` to show where the warning was created)
[2618042.197]  -> wl_shm@4.create_pool(new id wl_shm_pool@30, fd 114, 1496000)
[2618042.239]  -> wl_shm_pool@30.create_buffer(new id wl_buffer@31, 0, 680, 550, 2720, 0)
[2618042.274]  -> wl_shm_pool@30.destroy()
```
I pressed ctrl+c:
```
[2652193.233]  -> zxdg_toplevel_decoration_v1@26.destroy()
[2652193.312]  -> xdg_toplevel@25.destroy()
[2652193.334]  -> xdg_surface@24.destroy()
[2652193.365]  -> wl_surface@19.attach(nil, 0, 0)
[2652193.419]  -> wl_surface@19.commit()
[2652234.102]  -> wl_surface@19.destroy()
[2652238.922]  -> wl_buffer@31.destroy()
```

Nothing in `~/.local/share/qtile/qtile.log`

Annoying that we're seeing different things! Mine is reliably ending right after `[2616236.041] wl_keyboard@3.keymap(1, fd 110, 47506)`, a bit before yours.

> Nothing in ~/.local/share/qtile/qtile.log

This is with `debug` set right?
> Annoying that we're seeing different things! Mine is reliably ending right after `[2616236.041] wl_keyboard@3.keymap(1, fd 110, 47506)`, a bit before yours.

Very odd indeed. Are you testing in a nested session?

> > Nothing in ~/.local/share/qtile/qtile.log
> 
> This is with `debug` set right?

Whoops, well with debug it only shows foot terminal things pretty much:

```
2021-10-11 12:00:16,391 DEBUG libqtile hook.py:fire():L385 Internal event: group_window_add((<group.Group ('[1] term')>, Window(name='foot', wid=2)), {})
2021-10-11 12:00:16,392 DEBUG libqtile window.py:_on_map():L176 Signal: window map
2021-10-11 12:00:16,393 DEBUG libqtile core.py:focus_window():L564 Focussing new window
2021-10-11 12:00:16,393 DEBUG libqtile hook.py:fire():L385 Internal event: client_focus((Window(name='foot', wid=2),), {})
2021-10-11 12:00:16,394 DEBUG libqtile hook.py:fire():L385 Internal event: client_focus((Window(name='foot', wid=2),), {})
2021-10-11 12:00:16,394 DEBUG libqtile hook.py:fire():L385 Internal event: client_focus((Window(name='foot', wid=2),), {})
2021-10-11 12:00:16,394 DEBUG libqtile hook.py:fire():L385 Internal event: focus_change((), {})
2021-10-11 12:00:16,394 DEBUG libqtile hook.py:fire():L385 Internal event: client_focus((Window(name='foot', wid=2),), {})
2021-10-11 12:00:16,395 DEBUG libqtile hook.py:fire():L385 Internal event: client_managed((Window(name='foot', wid=2),), {})
2021-10-11 12:00:20,865 DEBUG libqtile core.py:_on_request_cursor():L269 Signal: seat request_set_cursor_event
2021-10-11 12:00:20,875 DEBUG libqtile core.py:_on_new_xdg_surface():L273 Signal: xdg_shell new_surface_event
2021-10-11 12:00:20,876 DEBUG libqtile core.py:_on_new_toplevel_decoration():L349 Signal: xdg_decoration new_top_level_decoration
2021-10-11 12:00:20,876 DEBUG libqtile window.py:_on_set_app_id():L226 Signal: window set_app_id
2021-10-11 12:00:20,876 DEBUG libqtile window.py:_on_set_title():L221 Signal: window set_title
2021-10-11 12:00:32,670 DEBUG libqtile window.py:_on_destroy():L204 Signal: window destroy
```
>  Are you testing in a nested session?

Yes but I see the same thing in my normal session.

My log output looks pretty much the same. The segfaults are making me think that some struct member somewhere is being accessed by either Qtile or signal-desktop before it should be accessed. That keymap log entry was my first lead but it seems that we're doing the same as sway when it comes to listening to any keyboard signals etc, and setting up keyboards when they are detected. Now I'm just fixing up those signals, and doing so might help some of the wid log output you saw in your first post: https://github.com/qtile/qtile/pull/2876
OK I have another way of getting information. Are you testing with a nested session? If so, we can get wayland debug info on the compositor side to see what Qtile's wlroots sees. If you run Qtile with `WAYLAND_DEBUG=1`, then run signal-desktop either from within or in a different terminal (as opposed to `$APP` when using the wephyr script). This might be informative, because, for example, signal-desktop is accumulating many state changes before committing them, and any that cancel out will not be seen by Qtile (e.g. for some reason it seems to be setting and unsetting the maximized state of its toplevel window before it gets mapped).
> OK I have another way of getting information. Are you testing with a nested session? If so, we can get wayland debug info on the compositor side to see what Qtile's wlroots sees. If you run Qtile with `WAYLAND_DEBUG=1`, then run signal-desktop either from within or in a different terminal (as opposed to `$APP` when using the wephyr script). This might be informative, because, for example, signal-desktop is accumulating many state changes before committing them, and any that cancel out will not be seen by Qtile (e.g. for some reason it seems to be setting and unsetting the maximized state of its toplevel window before it gets mapped).

I wasn't testing with a nested session before. But I have done so now.

Steps taken: 

- Checked out branch #2876
- Ran with `APP=foot LOG_LEVEL=DEBUG WAYLAND_DEBUG=1 ./scripts/wephyr `
- Then ran `signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu` in the created foot terminal

<details>
  <summary>Wephyr log (I tried to isolate the calls for only signal-desktop but it's a bunch) click to expand</summary>

```
[2610447.440] wl_keyboard@17.key(14, 5949945, 33, 0)
[2644537.262] wl_keyboard@12.key(4730, 5984035, 28, 1)
[2644537.339]  -> wl_keyboard@17.key(15, 5984035, 28, 1)
[2644537.395] wl_keyboard@17.key(15, 5984035, 28, 1)
[2644542.912]  -> wl_surface@3.damage_buffer(10, 27, 1211, 34)
[2644542.971]  -> wl_surface@3.frame(new id wl_callback@27)
[2644542.981]  -> wl_surface@3.set_buffer_scale(1)
[2644542.987]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644542.995]  -> wl_surface@3.commit()
[2644543.148] wl_surface@3.damage_buffer(10, 27, 1211, 34)
[2644543.169] wl_surface@3.frame(new id wl_callback@27)
[2644543.194] wl_surface@3.set_buffer_scale(1)
[2644543.200] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644543.222] wl_surface@3.commit()
[2644543.505]  -> wl_buffer@26.release()
[2644543.747]  -> wl_callback@27.done(5984041)
[2644543.756]  -> wl_display@1.delete_id(27)
[2644543.840]  -> wl_surface@3.frame(new id wl_callback@16)
[2644543.850]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2644543.858]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2644543.867]  -> wl_surface@3.commit()
[2644543.947] wl_display@1.delete_id(27)
[2644543.962] wl_buffer@26.release()
[2644543.967] wl_callback@27.done(5984041)
[2644544.153] wl_buffer@20.release()
[2644558.947] wl_display@1.delete_id(16)
[2644558.969] wl_callback@16.done(5984056)
[2644599.893] wl_keyboard@12.key(4731, 5984097, 28, 0)
[2644599.961]  -> wl_keyboard@17.key(16, 5984097, 28, 0)
[2644600.012] wl_keyboard@17.key(16, 5984097, 28, 0)
[2644823.029]  -> wl_surface@3.damage_buffer(10, 44, 1211, 170)
[2644823.817]  -> wl_surface@3.frame(new id wl_callback@27)
[2644823.842]  -> wl_surface@3.set_buffer_scale(1)
[2644823.849]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644823.861]  -> wl_surface@3.commit()
[2644823.985] wl_surface@3.damage_buffer(10, 44, 1211, 170)
[2644824.012] wl_surface@3.frame(new id wl_callback@27)
[2644824.023] wl_surface@3.set_buffer_scale(1)
[2644824.030] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644824.043] wl_surface@3.commit()
[2644824.779]  -> wl_buffer@26.release()
[2644825.112]  -> wl_callback@27.done(5984323)
[2644825.124]  -> wl_display@1.delete_id(27)
[2644825.229]  -> wl_surface@3.frame(new id wl_callback@16)
[2644825.242]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2644825.252]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2644825.267]  -> wl_surface@3.commit()
[2644825.314] wl_display@1.delete_id(27)
[2644825.333] wl_buffer@26.release()
[2644825.340] wl_callback@27.done(5984323)
[2644825.370]  -> wl_surface@3.damage_buffer(10, 197, 1211, 34)
[2644825.448]  -> wl_surface@3.frame(new id wl_callback@27)
[2644825.458]  -> wl_surface@3.set_buffer_scale(1)
[2644825.465]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644825.479]  -> wl_surface@3.commit()
[2644825.563] wl_surface@3.damage_buffer(10, 197, 1211, 34)
[2644825.596] wl_surface@3.frame(new id wl_callback@27)
[2644825.609] wl_surface@3.set_buffer_scale(1)
[2644825.617] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644825.631] wl_surface@3.commit()
[2644825.938]  -> wl_buffer@26.release()
[2644826.123] wl_buffer@26.release()
[2644826.209] wl_buffer@22.release()
[2644842.263] wl_display@1.delete_id(16)
[2644842.286] wl_callback@16.done(5984339)
[2644842.620]  -> wl_callback@27.done(5984340)
[2644842.634]  -> wl_display@1.delete_id(27)
[2644842.760]  -> wl_surface@3.frame(new id wl_callback@16)
[2644842.780]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2644842.796]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2644842.814]  -> wl_surface@3.commit()
[2644842.925] wl_display@1.delete_id(27)
[2644842.954] wl_callback@27.done(5984340)
[2644842.995]  -> wl_surface@3.damage_buffer(10, 214, 1211, 51)
[2644843.173] wl_buffer@20.release()
[2644843.210]  -> wl_surface@3.frame(new id wl_callback@27)
[2644843.226]  -> wl_surface@3.set_buffer_scale(1)
[2644843.240]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644843.251]  -> wl_surface@3.commit()
[2644843.291] wl_surface@3.damage_buffer(10, 214, 1211, 51)
[2644843.311] wl_surface@3.frame(new id wl_callback@27)
[2644843.319] wl_surface@3.set_buffer_scale(1)
[2644843.325] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2644843.336] wl_surface@3.commit()
[2644843.596]  -> wl_buffer@26.release()
[2644843.672] wl_buffer@26.release()
[2644858.983] wl_display@1.delete_id(16)
[2644859.011] wl_callback@16.done(5984356)
[2644859.277]  -> wl_callback@27.done(5984357)
[2644859.287]  -> wl_display@1.delete_id(27)
[2644859.381]  -> wl_surface@3.frame(new id wl_callback@16)
[2644859.391]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2644859.400]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2644859.408]  -> wl_surface@3.commit()
[2644859.481] wl_display@1.delete_id(27)
[2644859.519] wl_callback@27.done(5984357)
[2644859.711] wl_buffer@22.release()
[2644875.569] wl_display@1.delete_id(16)
[2644875.588] wl_callback@16.done(5984372)
[2645009.680]  -> wl_surface@3.damage_buffer(10, 248, 1211, 34)
[2645009.956]  -> wl_surface@3.frame(new id wl_callback@27)
[2645009.968]  -> wl_surface@3.set_buffer_scale(1)
[2645009.977]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645009.987]  -> wl_surface@3.commit()
[2645010.080] wl_surface@3.damage_buffer(10, 248, 1211, 34)
[2645010.105] wl_surface@3.frame(new id wl_callback@27)
[2645010.114] wl_surface@3.set_buffer_scale(1)
[2645010.120] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645010.131] wl_surface@3.commit()
[2645010.260]  -> wl_buffer@26.release()
[2645010.489]  -> wl_callback@27.done(5984508)
[2645010.498]  -> wl_display@1.delete_id(27)
[2645010.576]  -> wl_surface@3.frame(new id wl_callback@16)
[2645010.585]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645010.593]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645010.602]  -> wl_surface@3.commit()
[2645010.695] wl_display@1.delete_id(27)
[2645010.709] wl_buffer@26.release()
[2645010.716] wl_callback@27.done(5984508)
[2645011.277] wl_display@1.delete_id(16)
[2645011.318] wl_buffer@20.release()
[2645011.324] wl_callback@16.done(5984508)
[2645036.451]  -> wl_surface@3.damage_buffer(10, 265, 1211, 34)
[2645036.554]  -> wl_surface@3.frame(new id wl_callback@27)
[2645036.566]  -> wl_surface@3.set_buffer_scale(1)
[2645036.572]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645036.583]  -> wl_surface@3.commit()
[2645036.706] wl_surface@3.damage_buffer(10, 265, 1211, 34)
[2645036.743] wl_surface@3.frame(new id wl_callback@27)
[2645036.754] wl_surface@3.set_buffer_scale(1)
[2645036.762] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645036.777] wl_surface@3.commit()
[2645036.994]  -> wl_buffer@26.release()
[2645037.268]  -> wl_callback@27.done(5984535)
[2645037.280]  -> wl_display@1.delete_id(27)
[2645037.418]  -> wl_surface@3.frame(new id wl_callback@16)
[2645037.430]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645037.446]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645037.463]  -> wl_surface@3.commit()
[2645037.516] wl_display@1.delete_id(27)
[2645037.554] wl_buffer@26.release()
[2645037.559] wl_callback@27.done(5984535)
[2645037.705] wl_buffer@22.release()
[2645042.322] wl_display@1.delete_id(16)
[2645042.404] wl_callback@16.done(5984539)
[2645050.918] wl_display@1.get_registry(new id wl_registry@2)
[2645050.936]  -> wl_registry@2.global(1, "wl_shm", 1)
[2645050.950]  -> wl_registry@2.global(2, "wl_drm", 2)
[2645050.961]  -> wl_registry@2.global(3, "zwp_linux_dmabuf_v1", 3)
[2645050.972]  -> wl_registry@2.global(4, "wl_compositor", 4)
[2645050.981]  -> wl_registry@2.global(5, "wl_subcompositor", 1)
[2645050.989]  -> wl_registry@2.global(6, "wl_data_device_manager", 3)
[2645050.999]  -> wl_registry@2.global(7, "zwlr_data_control_manager_v1", 2)
[2645051.010]  -> wl_registry@2.global(8, "wl_seat", 7)
[2645051.024]  -> wl_registry@2.global(9, "zwlr_output_manager_v1", 2)
[2645051.038]  -> wl_registry@2.global(10, "xdg_wm_base", 2)
[2645051.048]  -> wl_registry@2.global(11, "zwlr_layer_shell_v1", 4)
[2645051.060]  -> wl_registry@2.global(12, "zxdg_output_manager_v1", 3)
[2645051.071]  -> wl_registry@2.global(13, "zwlr_screencopy_manager_v1", 3)
[2645051.083]  -> wl_registry@2.global(14, "zwlr_gamma_control_manager_v1", 1)
[2645051.093]  -> wl_registry@2.global(15, "zwp_primary_selection_device_manager_v1", 1)
[2645051.106]  -> wl_registry@2.global(16, "zwp_virtual_keyboard_manager_v1", 1)
[2645051.118]  -> wl_registry@2.global(17, "zxdg_decoration_manager_v1", 1)
[2645051.131]  -> wl_registry@2.global(18, "org_kde_kwin_server_decoration_manager", 1)
[2645051.143]  -> wl_registry@2.global(19, "zwp_pointer_constraints_v1", 1)
[2645051.156]  -> wl_registry@2.global(20, "zwp_relative_pointer_manager_v1", 1)
[2645051.168]  -> wl_registry@2.global(21, "wl_output", 3)
[2645051.180] wl_display@1.sync(new id wl_callback@3)
[2645051.189]  -> wl_callback@3.done(16)
[2645051.196]  -> wl_display@1.delete_id(3)
[2645051.735] wl_registry@2.bind(1, "wl_shm", 1, new id [unknown]@4)
[2645051.761]  -> wl_shm@4.format(0)
[2645051.767]  -> wl_shm@4.format(1)
[2645051.773]  -> wl_shm@4.format(875709016)
[2645051.778]  -> wl_shm@4.format(875708993)
[2645051.783] wl_registry@2.bind(2, "wl_drm", 2, new id [unknown]@5)
[2645051.798]  -> wl_drm@5.device("/dev/dri/renderD128")
[2645051.806]  -> wl_drm@5.format(808669761)
[2645051.814]  -> wl_drm@5.format(808669784)
[2645051.823]  -> wl_drm@5.format(808665665)
[2645051.849]  -> wl_drm@5.format(875713089)
[2645051.855]  -> wl_drm@5.format(875713112)
[2645051.860]  -> wl_drm@5.format(909199186)
[2645051.865]  -> wl_drm@5.format(961959257)
[2645051.869]  -> wl_drm@5.format(825316697)
[2645051.874]  -> wl_drm@5.format(842093913)
[2645051.879]  -> wl_drm@5.format(909202777)
[2645051.884]  -> wl_drm@5.format(875713881)
[2645051.888]  -> wl_drm@5.format(842094158)
[2645051.893]  -> wl_drm@5.format(909203022)
[2645051.898]  -> wl_drm@5.format(1448695129)
[2645051.903]  -> wl_drm@5.capabilities(1)
[2645051.908] wl_display@1.sync(new id wl_callback@6)
[2645051.915]  -> wl_callback@6.done(16)
[2645051.920]  -> wl_display@1.delete_id(6)
[2645051.925] wl_registry@2.bind(3, "zwp_linux_dmabuf_v1", 3, new id [unknown]@7)
[2645051.943]  -> zwp_linux_dmabuf_v1@7.modifier(1211384385, 0, 0)
[2645051.954]  -> zwp_linux_dmabuf_v1@7.modifier(1211384385, 16777216, 1)
[2645051.964]  -> zwp_linux_dmabuf_v1@7.modifier(1211384385, 16777216, 2)
[2645051.976]  -> zwp_linux_dmabuf_v1@7.modifier(1211384385, 16777216, 4)
[2645051.987]  -> zwp_linux_dmabuf_v1@7.modifier(1211384385, 16777215, 4294967295)
[2645051.996]  -> zwp_linux_dmabuf_v1@7.modifier(1211384408, 0, 0)
[2645052.005]  -> zwp_linux_dmabuf_v1@7.modifier(1211384408, 16777216, 1)
[2645052.015]  -> zwp_linux_dmabuf_v1@7.modifier(1211384408, 16777216, 2)
[2645052.025]  -> zwp_linux_dmabuf_v1@7.modifier(1211384408, 16777216, 4)
[2645052.036]  -> zwp_linux_dmabuf_v1@7.modifier(1211384408, 16777215, 4294967295)
[2645052.047]  -> zwp_linux_dmabuf_v1@7.modifier(808669761, 0, 0)
[2645052.057]  -> zwp_linux_dmabuf_v1@7.modifier(808669761, 16777216, 1)
[2645052.068]  -> zwp_linux_dmabuf_v1@7.modifier(808669761, 16777216, 2)
[2645052.079]  -> zwp_linux_dmabuf_v1@7.modifier(808669761, 16777215, 4294967295)
[2645052.089]  -> zwp_linux_dmabuf_v1@7.modifier(808669784, 0, 0)
[2645052.100]  -> zwp_linux_dmabuf_v1@7.modifier(808669784, 16777216, 1)
[2645052.113]  -> zwp_linux_dmabuf_v1@7.modifier(808669784, 16777216, 2)
[2645052.126]  -> zwp_linux_dmabuf_v1@7.modifier(808669784, 16777215, 4294967295)
[2645052.139]  -> zwp_linux_dmabuf_v1@7.modifier(808665665, 0, 0)
[2645052.151]  -> zwp_linux_dmabuf_v1@7.modifier(808665665, 16777216, 1)
[2645052.163]  -> zwp_linux_dmabuf_v1@7.modifier(808665665, 16777216, 2)
[2645052.176]  -> zwp_linux_dmabuf_v1@7.modifier(808665665, 16777215, 4294967295)
[2645052.188]  -> zwp_linux_dmabuf_v1@7.modifier(875713089, 0, 0)
[2645052.200]  -> zwp_linux_dmabuf_v1@7.modifier(875713089, 16777216, 1)
[2645052.212]  -> zwp_linux_dmabuf_v1@7.modifier(875713089, 16777216, 2)
[2645052.222]  -> zwp_linux_dmabuf_v1@7.modifier(875713089, 16777216, 4)
[2645052.233]  -> zwp_linux_dmabuf_v1@7.modifier(875713089, 16777215, 4294967295)
[2645052.245]  -> zwp_linux_dmabuf_v1@7.modifier(875708993, 0, 0)
[2645052.257]  -> zwp_linux_dmabuf_v1@7.modifier(875708993, 16777216, 1)
[2645052.272]  -> zwp_linux_dmabuf_v1@7.modifier(875708993, 16777216, 2)
[2645052.285]  -> zwp_linux_dmabuf_v1@7.modifier(875708993, 16777216, 4)
[2645052.297]  -> zwp_linux_dmabuf_v1@7.modifier(875708993, 16777215, 4294967295)
[2645052.311]  -> zwp_linux_dmabuf_v1@7.modifier(875713112, 0, 0)
[2645052.322]  -> zwp_linux_dmabuf_v1@7.modifier(875713112, 16777216, 1)
[2645052.335]  -> zwp_linux_dmabuf_v1@7.modifier(875713112, 16777216, 2)
[2645052.347]  -> zwp_linux_dmabuf_v1@7.modifier(875713112, 16777216, 4)
[2645052.359]  -> zwp_linux_dmabuf_v1@7.modifier(875713112, 16777215, 4294967295)
[2645052.371]  -> zwp_linux_dmabuf_v1@7.modifier(875709016, 0, 0)
[2645052.382]  -> zwp_linux_dmabuf_v1@7.modifier(875709016, 16777216, 1)
[2645052.392]  -> zwp_linux_dmabuf_v1@7.modifier(875709016, 16777216, 2)
[2645052.403]  -> zwp_linux_dmabuf_v1@7.modifier(875709016, 16777216, 4)
[2645052.416]  -> zwp_linux_dmabuf_v1@7.modifier(875709016, 16777215, 4294967295)
[2645052.427]  -> zwp_linux_dmabuf_v1@7.modifier(892424769, 0, 0)
[2645052.439]  -> zwp_linux_dmabuf_v1@7.modifier(892424769[2645052.432]  -> wl_surface@3.damage_buffer(, 1677721610, , 110)
, [2645052.454]  -> zwp_linux_dmabuf_v1@7.modifier(1211892424769, , 27216777216)
, 2)
[2645052.468]  -> zwp_linux_dmabuf_v1@7.modifier(892424769, 16777215, 4294967295)
[2645052.480]  -> zwp_linux_dmabuf_v1@7.modifier(909199186, 0, 0)
[2645052.494]  -> zwp_linux_dmabuf_v1@7.modifier([2645052.493]  -> wl_surface@3.damage_buffer(90919918610, , 1677721610, , 11211)
, 612[2645052.509]  -> zwp_linux_dmabuf_v1@7.modifier()
909199186, 16777216, 2)
[2645052.521]  -> zwp_linux_dmabuf_v1@7.modifier(909199186, 16777215, 4294967295)
[2645052.531]  -> zwp_linux_dmabuf_v1@7.modifier(538982482, 0, 0)
[2645052.546]  -> zwp_linux_dmabuf_v1@7.modifier(538982482, 16777216, 1)
[2645052.563]  -> zwp_linux_dmabuf_v1@7.modifier(538982482, 16777216, 2)
[2645052.575]  -> zwp_linux_dmabuf_v1@7.modifier(538982482, 16777215, 4294967295)
[2645052.587]  -> zwp_linux_dmabuf_v1@7.modifier(540422482, 0, 0)
[2645052.597]  -> zwp_linux_dmabuf_v1@7.modifier(540422482, 16777216, 1)
[2645052.608]  -> zwp_linux_dmabuf_v1@7.modifier(540422482, 16777216, 2)
[2645052.618]  -> zwp_linux_dmabuf_v1@7.modifier(540422482, 16777215, 4294967295)
[2645052.628]  -> zwp_linux_dmabuf_v1@7.modifier(943215175, 0, 0)
[2645052.640]  -> zwp_linux_dmabuf_v1@7.modifier(943215175, 16777216, 1)
[2645052.651]  -> zwp_linux_dmabuf_v1@7.modifier(943215175, 16777216, 2)
[2645052.661]  -> zwp_linux_dmabuf_v1@7.modifier(943215175, 16777215, 4294967295)
[2645052.670]  -> zwp_linux_dmabuf_v1@7.modifier(842224199, 0, 0)
[2645052.680]  -> zwp_linux_dmabuf_v1@7.modifier(842224199, 16777216, 1)
[2645052.691]  -> zwp_linux_dmabuf_v1@7.modifier(842224199, 16777216, 2)
[2645052.700]  -> zwp_linux_dmabuf_v1@7.modifier(842224199, 16777216, 4)
[2645052.709]  -> zwp_linux_dmabuf_v1@7.modifier(842224199, 16777215, 4294967295)
[2645052.720]  -> zwp_linux_dmabuf_v1@7.modifier(961959257, 0, 0)
[2645052.730]  -> zwp_linux_dmabuf_v1@7.modifier(961959257, 16777216, 1)
[2645052.741]  -> zwp_linux_dmabuf_v1@7.modifier(961959257, 16777216, 2)
[2645052.751]  -> zwp_linux_dmabuf_v1@7.modifier(961959257, 16777215, 4294967295)
[2645052.761]  -> zwp_linux_dmabuf_v1@7.modifier(825316697, 0, 0)
[2645052.771]  -> zwp_linux_dmabuf_v1@7.modifier(825316697, 16777216, 1)
[2645052.782]  -> zwp_linux_dmabuf_v1@7.modifier(825316697, 16777216, 2)
[2645052.794]  -> zwp_linux_dmabuf_v1@7.modifier(825316697, 16777215, 4294967295)
[2645052.804]  -> zwp_linux_dmabuf_v1@7.modifier(842093913, 0, 0)
[2645052.815]  -> zwp_linux_dmabuf_v1@7.modifier(842093913, 16777216, 1)
[2645052.825]  -> zwp_linux_dmabuf_v1@7.modifier(842093913, 16777216, 2)
[2645052.840]  -> zwp_linux_dmabuf_v1@7.modifier(842093913, 16777215, 4294967295)
[2645052.850]  -> zwp_linux_dmabuf_v1@7.modifier(909202777, 0, 0)
[2645052.859]  -> zwp_linux_dmabuf_v1@7.modifier(909202777, 16777216, 1)
[2645052.866]  -> zwp_linux_dmabuf_v1@7.modifier(909202777, 16777216, 2)
[2645052.873]  -> zwp_linux_dmabuf_v1@7.modifier(909202777, 16777215, 4294967295)
[2645052.882]  -> zwp_linux_dmabuf_v1@7.modifier(875713881, 0, 0)
[2645052.892]  -> zwp_linux_dmabuf_v1@7.modifier(875713881, 16777216, 1)
[2645052.904]  -> zwp_linux_dmabuf_v1@7.modifier(875713881, 16777216, 2)
[2645052.916]  -> zwp_linux_dmabuf_v1@7.modifier(875713881, 16777215, 4294967295)
[2645052.928]  -> zwp_linux_dmabuf_v1@7.modifier(961893977, 0, 0)
[2645052.954]  -> zwp_linux_dmabuf_v1@7.modifier(961893977, 16777216, 1)
[2645052.968]  -> zwp_linux_dmabuf_v1@7.modifier(961893977, 16777216, 2)
[2645052.982]  -> zwp_linux_dmabuf_v1@7.modifier(961893977, 16777215, 4294967295)
[2645052.994]  -> zwp_linux_dmabuf_v1@7.modifier(825316953, 0, 0)
[2645053.007]  -> zwp_linux_dmabuf_v1@7.modifier(825316953, 16777216, 1)
[2645053.021]  -> zwp_linux_dmabuf_v1@7.modifier(825316953, 16777216, 2)
[2645053.034]  -> zwp_linux_dmabuf_v1@7.modifier(825316953, 16777215, 4294967295)
[2645053.048]  -> zwp_linux_dmabuf_v1@7.modifier(842094169, 0, 0)
[2645053.062]  -> zwp_linux_dmabuf_v1@7.modifier(842094169, 16777216, 1)
[2645053.075]  -> zwp_linux_dmabuf_v1@7.modifier(842094169, 16777216, 2)
[2645053.088]  -> zwp_linux_dmabuf_v1@7.modifier(842094169, 16777215, 4294967295)
[2645053.101]  -> zwp_linux_dmabuf_v1@7.modifier(909203033, 0, 0)
[2645053.115]  -> zwp_linux_dmabuf_v1@7.modifier(909203033, 16777216, 1)
[2645053.129]  -> zwp_linux_dmabuf_v1@7.modifier(909203033, 16777216, 2)
[2645053.140]  -> zwp_linux_dmabuf_v1@7.modifier(909203033, 16777215, 4294967295)
[2645053.153]  -> zwp_linux_dmabuf_v1@7.modifier(875714137, 0, 0)
[2645053.166]  -> zwp_linux_dmabuf_v1@7.modifier(875714137, 16777216, 1)
[2645053.180]  -> zwp_linux_dmabuf_v1@7.modifier(875714137, 16777216, 2)
[2645053.193]  -> zwp_linux_dmabuf_v1@7.modifier(875714137, 16777215, 4294967295)
[2645053.206]  -> zwp_linux_dmabuf_v1@7.modifier(842094158, 0, 0)
[2645053.218]  -> zwp_linux_dmabuf_v1@7.modifier(842094158, 16777216, 1)
[2645053.230]  -> zwp_linux_dmabuf_v1@7.modifier(842094158, 16777216, 2)
[2645053.243]  -> zwp_linux_dmabuf_v1@7.modifier(842094158, 16777215, 4294967295)
[2645053.255]  -> zwp_linux_dmabuf_v1@7.modifier(808530000, 0, 0)
[2645053.269]  -> zwp_linux_dmabuf_v1@7.modifier(808530000, 16777216, 1)
[2645053.282]  -> zwp_linux_dmabuf_v1@7.modifier(808530000, 16777216, 2)
[2645053.294]  -> zwp_linux_dmabuf_v1@7.modifier(808530000, 16777215, 4294967295)
[2645053.306]  -> zwp_linux_dmabuf_v1@7.modifier(842084432, 0, 0)
[2645053.320]  -> zwp_linux_dmabuf_v1@7.modifier(842084432, 16777216, 1)
[2645053.333]  -> zwp_linux_dmabuf_v1@7.modifier(842084432, 16777216, 2)
[2645053.346]  -> zwp_linux_dmabuf_v1@7.modifier(842084432, 16777215, 4294967295)
[2645053.358]  -> zwp_linux_dmabuf_v1@7.modifier(909193296, 0, 0)
[2645053.371]  -> zwp_linux_dmabuf_v1@7.modifier(909193296, 16777216, 1)
[2645053.384]  -> zwp_linux_dmabuf_v1@7.modifier(909193296, 16777216, 2)
[2645053.397]  -> zwp_linux_dmabuf_v1@7.modifier(909193296, 16777215, 4294967295)
[2645053.410]  -> zwp_linux_dmabuf_v1@7.modifier(909203022, 0, 0)
[2645053.423]  -> zwp_linux_dmabuf_v1@7.modifier(909203022, 16777216, 1)
[2645053.437]  -> zwp_linux_dmabuf_v1@7.modifier(909203022, 16777216, 2)
[2645053.449]  -> zwp_linux_dmabuf_v1@7.modifier(909203022, 16777215, 4294967295)
[2645053.462]  -> zwp_linux_dmabuf_v1@7.modifier(1448433985, 0, 0)
[2645053.473]  -> zwp_linux_dmabuf_v1@7.modifier(1448433985, 16777216, 1)
[2645053.488]  -> zwp_linux_dmabuf_v1@7.modifier(1448433985, 16777216, 2)
[2645053.500]  -> zwp_linux_dmabuf_v1@7.modifier(1448433985, 16777215, 4294967295)
[2645053.513]  -> zwp_linux_dmabuf_v1@7.modifier(1448434008, 0, 0)
[2645053.526]  -> zwp_linux_dmabuf_v1@7.modifier(1448434008, 16777216, 1)
[2645053.539]  -> zwp_linux_dmabuf_v1@7.modifier(1448434008, 16777216, 2)
[2645053.551]  -> zwp_linux_dmabuf_v1@7.modifier(1448434008, 16777215, 4294967295)
[2645053.564]  -> zwp_linux_dmabuf_v1@7.modifier(1448695129, 0, 0)
[2645053.577]  -> zwp_linux_dmabuf_v1@7.modifier(1448695129, 16777216, 1)
[2645053.591]  -> zwp_linux_dmabuf_v1@7.modifier(1448695129, 16777216, 2)
[2645053.602]  -> zwp_linux_dmabuf_v1@7.modifier(1448695129, 16777215, 4294967295)
[2645053.614]  -> zwp_linux_dmabuf_v1@7.modifier(1498831189, 0, 0)
[2645053.628]  -> zwp_linux_dmabuf_v1@7.modifier(1498831189, 16777216, 1)
[2645053.641]  -> zwp_linux_dmabuf_v1@7.modifier(1498831189, 16777216, 2)
[2645053.653]  -> zwp_linux_dmabuf_v1@7.modifier(1498831189, 16777215, 4294967295)
[2645053.666] wl_display@1.sync(new id wl_callback@8)
[2645053.677]  -> wl_callback@8.done(16)
[2645053.683]  -> wl_display@1.delete_id(8)
[2645053.689] wl_registry@2.bind(4, "wl_compositor", 4, new id [unknown]@9)
[2645053.707] wl_registry@2.bind(5, "wl_subcompositor", 1, new id [unknown]@10)
[2645053.724] wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@11)
[2645053.741] wl_registry@2.bind(8, "wl_seat", 5, new id [unknown]@12)
[2645053.758]  -> wl_seat@12.name("seat0")
[2645053.765]  -> wl_seat@12.capabilities(3)
[2645053.770] wl_data_device_manager@11.get_data_device(new id wl_data_device@13, wl_seat@12)
[2645053.781] wl_registry@2.bind(10, "xdg_wm_base", 1, new id [unknown]@14)
[2645053.798] wl_registry@2.bind(15, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]@15)
[2645053.815] wl_registry@2.bind(17, "zxdg_decoration_manager_v1", 1, new id [unknown]@16)
[2645053.831] wl_registry@2.bind(21, "wl_output", 3, new id [unknown]@17)
[2645053.877]  -> wl_output@17.geometry(0, 0, 0, 0, 0, "wayland", "wayland", 0)
[2645053.913]  -> wl_output@17.mode(1, 740, 1024, 0)
[2645053.931]  -> wl_output@17.scale(1)
[2645053.938]  -> wl_output@17.done()
[2645054.689]  -> wl_surface@3.frame(new id wl_callback@27)
[2645054.710]  -> wl_surface@3.set_buffer_scale(1)
[2645054.718]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645054.733]  -> wl_surface@3.commit()
[2645054.803] wl_surface@3.damage_buffer(10, 10, 1211, 272)
[2645054.830] wl_surface@3.damage_buffer(10, 10, 1211, 612)
[2645054.851] wl_surface@3.frame(new id wl_callback@27)
[2645054.864] wl_surface@3.set_buffer_scale(1)
[2645054.871] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645054.886] wl_surface@3.commit()
[2645056.488]  -> wl_buffer@26.release()
[2645056.773]  -> wl_callback@27.done(5984554)
[2645056.784]  -> wl_display@1.delete_id(27)
[2645056.887]  -> wl_surface@3.frame(new id wl_callback@16)
[2645056.899]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645056.914]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645056.929]  -> wl_surface@3.commit()
[2645056.984] wl_display@1.delete_id(27)
[2645057.012] wl_buffer@26.release()
[2645057.018] wl_callback@27.done(5984554)
[2645057.066]  -> wl_surface@3.damage_buffer(10, 10, 1211, 612)
[2645059.263] wl_display@1.delete_id(16)
[2645059.305] wl_buffer@20.release()
[2645059.316] wl_callback@16.done(5984556)
[2645060.691]  -> wl_surface@3.frame(new id wl_callback@27)
[2645060.748]  -> wl_surface@3.set_buffer_scale(1)
[2645060.757]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645060.772]  -> wl_surface@3.commit()
[2645060.918] wl_surface@3.damage_buffer(10, 10, 1211, 612)
[2645060.953] wl_surface@3.frame(new id wl_callback@27)
[2645060.964] wl_surface@3.set_buffer_scale(1)
[2645060.972] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645060.989] wl_surface@3.commit()
[2645062.170]  -> wl_buffer@26.release()
[2645063.143]  -> wl_callback@27.done(5984560)
[2645063.185]  -> wl_display@1.delete_id(27)
[2645063.455]  -> wl_surface@3.frame(new id wl_callback@16)
[2645063.485]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645063.504]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645063.520]  -> wl_surface@3.commit()
[2645063.673] wl_display@1.delete_id(27)
[2645063.726] wl_buffer@26.release()
[2645063.738] wl_callback@27.done(5984560)
[2645064.090] wl_buffer@22.release()
[2645066.702] wl_display@1.get_registry(new id wl_registry@2)
[2645066.724]  -> wl_registry@2.global(1, "wl_shm", 1)
[2645066.741]  -> wl_registry@2.global(2, "wl_drm", 2)
[2645066.757]  -> wl_registry@2.global(3, "zwp_linux_dmabuf_v1", 3)
[2645066.772]  -> wl_registry@2.global(4, "wl_compositor", 4)
[2645066.786]  -> wl_registry@2.global(5, "wl_subcompositor", 1)
[2645066.800]  -> wl_registry@2.global(6, "wl_data_device_manager", 3)
[2645066.814]  -> wl_registry@2.global(7, "zwlr_data_control_manager_v1", 2)
[2645066.829]  -> wl_registry@2.global(8, "wl_seat", 7)
[2645066.850]  -> wl_registry@2.global(9, "zwlr_output_manager_v1", 2)
[2645066.865]  -> wl_registry@2.global(10, "xdg_wm_base", 2)
[2645066.879]  -> wl_registry@2.global(11, "zwlr_layer_shell_v1", 4)
[2645066.894]  -> wl_registry@2.global(12, "zxdg_output_manager_v1", 3)
[2645066.908]  -> wl_registry@2.global(13, "zwlr_screencopy_manager_v1", 3)
[2645066.923]  -> wl_registry@2.global(14, "zwlr_gamma_control_manager_v1", 1)
[2645066.938]  -> wl_registry@2.global(15, "zwp_primary_selection_device_manager_v1", 1)
[2645066.952]  -> wl_registry@2.global(16, "zwp_virtual_keyboard_manager_v1", 1)
[2645066.967]  -> wl_registry@2.global(17, "zxdg_decoration_manager_v1", 1)
[2645066.984]  -> wl_registry@2.global(18, "org_kde_kwin_server_decoration_manager", 1)
[2645066.998]  -> wl_registry@2.global(19, "zwp_pointer_constraints_v1", 1)
[2645067.013]  -> wl_registry@2.global(20, "zwp_relative_pointer_manager_v1", 1)
[2645067.028]  -> wl_registry@2.global(21, "wl_output", 3)
[2645067.043] wl_display@1.sync(new id wl_callback@3)
[2645067.054]  -> wl_callback@3.done(16)
[2645067.061]  -> wl_display@1.delete_id(3)
[2645067.703]  -> wl_buffer@26.destroy()
[2645067.788]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 134721200, 1234, 640, 4936, 0)
[2645068.000]  -> wl_surface@3.damage_buffer(10, 10, 1211, 510)
[2645068.039]  -> wl_surface@3.damage_buffer(10, 503, 1211, 119)
[2645068.273]  -> wl_surface@3.frame(new id wl_callback@20)
[2645068.296]  -> wl_surface@3.set_buffer_scale(1)
[2645068.305]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645068.321]  -> wl_surface@3.commit()
[2645068.403] wl_buffer@26.destroy()
[2645068.419]  -> wl_display@1.delete_id(26)
[2645068.429] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 134721200, 1234, 640, 4936, 0)
[2645068.459] wl_surface@3.damage_buffer(10, 10, 1211, 510)
[2645068.481] wl_surface@3.damage_buffer(10, 503, 1211, 119)
[2645068.500] wl_surface@3.frame(new id wl_callback@20)
[2645068.511] wl_surface@3.set_buffer_scale(1)
[2645068.519] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645068.534] wl_surface@3.commit()
[2645071.080]  -> wl_buffer@27.release()
[2645071.195] wl_display@1.delete_id(26)
[2645071.215] wl_buffer@27.release()
[2645075.520] wl_display@1.delete_id(16)
[2645075.578] wl_callback@16.done(5984572)
[2645076.343]  -> wl_callback@20.done(5984573)
[2645076.381]  -> wl_display@1.delete_id(20)
[2645076.791]  -> wl_surface@3.frame(new id wl_callback@16)
[2645076.815]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645076.830]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645076.859]  -> wl_surface@3.commit()
[2645077.088] wl_display@1.delete_id(20)
[2645077.140] wl_callback@20.done(5984573)
[2645077.189]  -> wl_buffer@27.destroy()
[2645077.402]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@20, 135392496, 1234, 640, 4936, 0)
[2645077.972]  -> wl_surface@3.damage_buffer(10, 10, 1211, 476)
[2645078.073]  -> wl_surface@3.damage_buffer(10, 469, 1211, 153)
[2645078.150] wl_buffer@20.release()
[2645078.674]  -> wl_surface@3.frame(new id wl_callback@26)
[2645078.692]  -> wl_surface@3.set_buffer_scale(1)
[2645078.701]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645078.716]  -> wl_surface@3.commit()
[2645078.797] wl_buffer@27.destroy()
[2645078.824]  -> wl_display@1.delete_id(27)
[2645078.850] wl_shm_pool@25.create_buffer(new id wl_buffer@20, 135392496, 1234, 640, 4936, 0)
[2645078.883] wl_surface@3.damage_buffer(10, 10, 1211, 476)
[2645078.905] wl_surface@3.damage_buffer(10, 469, 1211, 153)
[2645078.927] wl_surface@3.frame(new id wl_callback@26)
[2645078.938] wl_surface@3.set_buffer_scale(1)
[2645078.946] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645078.962] wl_surface@3.commit()
[2645080.279]  -> wl_buffer@20.release()
[2645080.460] wl_display@1.delete_id(27)
[2645080.498] wl_buffer@20.release()
[2645082.742] wl_registry@2.bind(1, "wl_shm", 1, new id [unknown]@4)
[2645082.772]  -> wl_shm@4.format(0)
[2645082.781]  -> wl_shm@4.format(1)
[2645082.789]  -> wl_shm@4.format(875709016)
[2645082.796]  -> wl_shm@4.format(875708993)
[2645082.804] wl_shm@4.create_pool(new id wl_shm_pool@5, fd 35, 2304)
[2645082.831] wl_shm_pool@5.resize(6912)
[2645082.855] wl_shm_pool@5.resize(16128)
[2645082.866] wl_shm_pool@5.resize(34560)
[2645082.876] wl_shm_pool@5.resize(71424)
[2645082.887] wl_shm_pool@5.resize(145152)
[2645082.897] wl_shm_pool@5.resize(292608)
[2645082.907] wl_shm_pool@5.resize(587520)
[2645082.918] wl_shm_pool@5.resize(1177344)
[2645082.928] wl_registry@2.bind(4, "wl_compositor", 3, new id [unknown]@6)
[2645082.950] wl_registry@2.bind(5, "wl_subcompositor", 1, new id [unknown]@7)
[2645082.970] wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@8)
[2645082.988] wl_registry@2.bind(8, "wl_seat", 5, new id [unknown]@9)
[2645083.013]  -> wl_seat@9.name("seat0")
[2645083.021]  -> wl_seat@9.capabilities(3)
[2645083.028] wl_compositor@6.create_surface(new id wl_surface@10)
[2645083.040] wl_data_device_manager@8.get_data_device(new id wl_data_device@11, wl_seat@9)
[2645083.053] wl_compositor@6.create_surface(new id wl_surface@12)
[2645083.064] wl_display@1.sync(new id wl_callback@13)
[2645083.074]  -> wl_callback@13.done(16)
[2645083.082]  -> wl_display@1.delete_id(13)
[2645083.089] wl_registry@2.bind(12, "zxdg_output_manager_v1", 3, new id [unknown]@14)
[2645083.109] wl_display@1.sync(new id wl_callback@15)
[2645083.119]  -> wl_callback@15.done(16)
[2645083.126]  -> wl_display@1.delete_id(15)
[2645083.133] wl_registry@2.bind(15, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]@16)
[2645083.152] wl_registry@2.bind(18, "org_kde_kwin_server_decoration_manager", 1, new id [unknown]@17)
[2645083.172]  -> org_kde_kwin_server_decoration_manager@17.default_mode(2)
[2645083.180] wl_registry@2.bind(21, "wl_output", 2, new id [unknown]@18)
[2645083.200]  -> wl_output@18.geometry(0, 0, 0, 0, 0, "wayland", "wayland", 0)
[2645083.229]  -> wl_output@18.mode(1, 740, 1024, 0)
[2645083.244]  -> wl_output@18.scale(1)
[2645083.249]  -> wl_output@18.done()
[2645083.255] zxdg_output_manager_v1@14.get_xdg_output(new id zxdg_output_v1@19, wl_output@18)
[2645083.270]  -> zxdg_output_v1@19.name("WL-1")
[2645083.277]  -> zxdg_output_v1@19.description("Wayland output 1")
[2645083.286]  -> zxdg_output_v1@19.logical_position(0, 0)
[2645083.296]  -> zxdg_output_v1@19.logical_size(740, 1024)
[2645083.305]  -> wl_output@18.done()
[2645083.311] wl_display@1.sync(new id wl_callback@20)
[2645083.320]  -> wl_callback@20.done(16)
[2645083.328]  -> wl_display@1.delete_id(20)
[2645092.272] wl_display@1.delete_id(16)
[2645092.331] wl_callback@16.done(5984589)
[2645093.298]  -> wl_callback@26.done(5984590)
[2645093.384]  -> wl_display@1.delete_id(26)
[2645093.803]  -> wl_surface@3.frame(new id wl_callback@16)
[2645093.883]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645093.903]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645093.925]  -> wl_surface@3.commit()
[2645094.053] wl_display@1.delete_id(26)
[2645094.082] wl_callback@26.done(5984590)
[2645094.137]  -> wl_surface@3.damage_buffer(10, 10, 1211, 612)
[2645095.386]  -> wl_surface@3.frame(new id wl_callback@26)
[2645095.439]  -> wl_surface@3.set_buffer_scale(1)
[2645095.449]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645095.466]  -> wl_surface@3.commit()
[2645095.671] wl_surface@3.damage_buffer(10, 10, 1211, 612)
[2645095.715] wl_surface@3.frame(new id wl_callback@26)
[2645095.732] wl_surface@3.set_buffer_scale(1)
[2645095.743] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645095.763] wl_surface@3.commit()
[2645097.104]  -> wl_buffer@20.release()
[2645097.282] wl_buffer@20.release()
[2645097.418] wl_buffer@22.release()
[2645108.946] wl_display@1.delete_id(16)
[2645109.005] wl_callback@16.done(5984606)
[2645109.664]  -> wl_callback@26.done(5984607)
[2645109.707]  -> wl_display@1.delete_id(26)
[2645110.209]  -> wl_surface@3.frame(new id wl_callback@16)
[2645110.247]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645110.266]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645110.284]  -> wl_surface@3.commit()
[2645110.416] wl_display@1.delete_id(26)
[2645110.463] wl_callback@26.done(5984607)
[2645112.050] wl_buffer@20.release()
[2645112.054]  -> wl_buffer@20.destroy()
[2645112.158]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 135476408, 1234, 640, 4936, 0)
[2645112.258]  -> wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2645112.308]  -> wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2645112.445]  -> wl_surface@3.frame(new id wl_callback@27)
[2645112.472]  -> wl_surface@3.set_buffer_scale(1)
[2645112.480]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645112.494]  -> wl_surface@3.commit()
[2645112.619] wl_buffer@20.destroy()
[2645112.649]  -> wl_display@1.delete_id(20)
[2645112.658] wl_shm_pool@25.create_buffer(new id wl_buffer@26, 135476408, 1234, 640, 4936, 0)
[2645112.683] wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2645112.700] wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2645112.716] wl_surface@3.frame(new id wl_callback@27)
[2645112.725] wl_surface@3.set_buffer_scale(1)
[2645112.731] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645112.745] wl_surface@3.commit()
[2645113.427]  -> wl_buffer@26.release()
[2645113.508] wl_display@1.delete_id(20)
[2645113.524] wl_buffer@26.release()
[2645126.166] wl_display@1.delete_id(16)
[2645126.238] wl_callback@16.done(5984622)
[2645127.367]  -> wl_callback@27.done(5984624)
[2645127.459]  -> wl_display@1.delete_id(27)
[2645127.853]  -> wl_surface@3.frame(new id wl_callback@16)
[2645127.874]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645127.888]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645127.907]  -> wl_surface@3.commit()
[2645128.014] wl_display@1.delete_id(27)
[2645128.059] wl_callback@27.done(5984624)
[2645128.079]  -> wl_buffer@26.destroy()
[2645128.180]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 135728144, 1234, 640, 4936, 0)
[2645128.482]  -> wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645128.549]  -> wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645128.728]  -> wl_surface@3.frame(new id wl_callback@20)
[2645128.746]  -> wl_surface@3.set_buffer_scale(1)
[2645128.754]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645128.768]  -> wl_surface@3.commit()
[2645129.029] wl_buffer@26.destroy()
[2645129.067]  -> wl_display@1.delete_id(26)
[2645129.079] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 135728144, 1234, 640, 4936, 0)
[2645129.126] wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645129.145] wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645129.170] wl_surface@3.frame(new id wl_callback@20)
[2645129.180] wl_surface@3.set_buffer_scale(1)
[2645129.190] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645129.207] wl_surface@3.commit()
[2645130.569]  -> wl_buffer@27.release()
[2645130.809] wl_display@1.delete_id(26)
[2645130.871] wl_buffer@27.release()
[2645130.970] wl_buffer@22.release()
[2645132.644] wl_seat@12.get_pointer(new id wl_pointer@8)
[2645132.677] wl_compositor@9.create_surface(new id wl_surface@6)
[2645132.693] wl_seat@12.get_keyboard(new id wl_keyboard@3)
[2645132.789]  -> wl_keyboard@3.keymap(1, fd 37, 47506)
[2645132.804]  -> wl_keyboard@3.repeat_info(25, 600)
[2645132.815]  -> wl_keyboard@17.modifiers(18, 0, 0, 0, 0)
[2645132.838] wl_shm@4.create_pool(new id wl_shm_pool@18, fd 35, 2304)
[2645132.860] wl_shm_pool@18.resize(5568)
[2645132.874] wl_shm_pool@18.resize(12096)
[2645132.920] wl_keyboard@17.modifiers(18, 0, 0, 0, 0)
[2645132.971] wl_seat@9.get_pointer(new id wl_pointer@3)
[2645132.984] wl_seat@9.get_keyboard(new id wl_keyboard@21)
[2645133.061]  -> wl_keyboard@21.keymap(1, fd 36, 47506)
[2645133.079]  -> wl_keyboard@21.repeat_info(25, 600)
[2645133.089]  -> wl_keyboard@17.modifiers(20, 0, 0, 0, 0)
[2645133.104] wl_registry@2.bind(10, "xdg_wm_base", 1, new id [unknown]@20)
[2645133.120] wl_compositor@6.create_surface(new id wl_surface@15)
[2645133.144] wl_keyboard@17.modifiers(20, 0, 0, 0, 0)
[2645142.383] wl_display@1.delete_id(16)
[2645142.427] wl_callback@16.done(5984639)
[2645142.878]  -> wl_callback@20.done(5984640)
[2645142.918]  -> wl_display@1.delete_id(20)
[2645143.346]  -> wl_surface@3.frame(new id wl_callback@16)
[2645143.410]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645143.431]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645143.458]  -> wl_surface@3.commit()
[2645143.929] wl_display@1.delete_id(20)
[2645143.982] wl_callback@20.done(5984640)
[2645144.017]  -> wl_buffer@27.destroy()
[2645144.180]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@20, 135895968, 1234, 640, 4936, 0)
[2645144.312]  -> wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645144.356]  -> wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645144.536]  -> wl_surface@3.frame(new id wl_callback@26)
[2645144.553]  -> wl_surface@3.set_buffer_scale(1)
[2645144.561]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645144.576]  -> wl_surface@3.commit()
[2645144.687] wl_buffer@27.destroy()
[2645144.708]  -> wl_display@1.delete_id(27)
[2645144.717] wl_shm_pool@25.create_buffer(new id wl_buffer@20, 135895968, 1234, 640, 4936, 0)
[2645144.747] wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645144.767] wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645144.788] wl_surface@3.frame(new id wl_callback@26)
[2645144.797] wl_surface@3.set_buffer_scale(1)
[2645144.805] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645144.820] wl_surface@3.commit()
[2645145.946]  -> wl_buffer@20.release()
[2645146.142] wl_display@1.delete_id(27)
[2645146.196] wl_buffer@20.release()
[2645146.789] wl_buffer@20.release()
[2645159.135] wl_display@1.delete_id(16)
[2645159.182] wl_callback@16.done(5984656)
[2645160.238]  -> wl_callback@26.done(5984657)
[2645160.315]  -> wl_display@1.delete_id(26)
[2645160.800]  -> wl_surface@3.frame(new id wl_callback@16)
[2645160.850]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645160.874]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645160.891]  -> wl_surface@3.commit()
[2645161.079] wl_display@1.delete_id(26)
[2645161.119] wl_callback@26.done(5984657)
[2645161.489]  -> wl_buffer@20.destroy()
[2645161.647]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 136147704, 1234, 640, 4936, 0)
[2645161.889]  -> wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645161.952]  -> wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645162.319]  -> wl_surface@3.frame(new id wl_callback@27)
[2645162.343]  -> wl_surface@3.set_buffer_scale(1)
[2645162.353]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645162.370]  -> wl_surface@3.commit()
[2645162.623] wl_buffer@20.destroy()
[2645162.671]  -> wl_display@1.delete_id(20)
[2645162.696] wl_shm_pool@25.create_buffer(new id wl_buffer@26, 136147704, 1234, 640, 4936, 0)
[2645162.727] wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645162.750] wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645162.772] wl_surface@3.frame(new id wl_callback@27)
[2645162.784] wl_surface@3.set_buffer_scale(1)
[2645162.793] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645162.807] wl_surface@3.commit()
[2645164.323]  -> wl_buffer@26.release()
[2645164.593] wl_display@1.delete_id(20)
[2645164.700] wl_buffer@26.release()
[2645164.718] wl_buffer@22.release()
[2645177.014] wl_display@1.delete_id(16)
[2645177.104] wl_callback@16.done(5984672)
[2645177.877]  -> wl_callback@27.done(5984675)
[2645177.906]  -> wl_display@1.delete_id(27)
[2645178.122]  -> wl_surface@3.frame(new id wl_callback@16)
[2645178.142]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645178.171]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645178.190]  -> wl_surface@3.commit()
[2645178.271] wl_display@1.delete_id(27)
[2645178.306] wl_callback@27.done(5984675)
[2645179.791] wl_buffer@20.release()
[2645180.952]  -> wl_buffer@26.destroy()
[2645181.054]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 136315528, 1234, 640, 4936, 0)
[2645181.198]  -> wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645181.243]  -> wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645181.581]  -> wl_surface@3.frame(new id wl_callback@20)
[2645181.595]  -> wl_surface@3.set_buffer_scale(1)
[2645181.609]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645181.625]  -> wl_surface@3.commit()
[2645181.748] wl_buffer@26.destroy()
[2645181.769]  -> wl_display@1.delete_id(26)
[2645181.781] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 136315528, 1234, 640, 4936, 0)
[2645181.812] wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645181.846] wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645181.869] wl_surface@3.frame(new id wl_callback@20)
[2645181.881] wl_surface@3.set_buffer_scale(1)
[2645181.890] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645181.908] wl_surface@3.commit()
[2645182.595]  -> wl_buffer@27.release()
[2645182.701] wl_display@1.delete_id(26)
[2645182.721] wl_buffer@27.release()
[2645184.629] wl_compositor@9.create_surface(new id wl_surface@19)
[2645192.623] wl_display@1.delete_id(16)
[2645192.669] wl_callback@16.done(5984689)
[2645193.877]  -> wl_callback@20.done(5984690)
[2645193.969]  -> wl_display@1.delete_id(20)
[2645194.569]  -> wl_surface@3.frame(new id wl_callback@16)
[2645194.606]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645194.629]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645194.648]  -> wl_surface@3.commit()
[2645194.824] wl_display@1.delete_id(20)
[2645194.885] wl_callback@20.done(5984690)
[2645195.233]  -> wl_surface@3.damage_buffer(10, 10, 1211, 238)
[2645195.289]  -> wl_surface@3.damage_buffer(10, 231, 1211, 391)
[2645197.091]  -> wl_surface@3.frame(new id wl_callback@20)
[2645197.160]  -> wl_surface@3.set_buffer_scale(1)
[2645197.172]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645197.191]  -> wl_surface@3.commit()
[2645197.286] wl_buffer@22.release()
[2645197.360] wl_surface@3.damage_buffer(10, 10, 1211, 238)
[2645197.389] wl_surface@3.damage_buffer(10, 231, 1211, 391)
[2645197.417] wl_surface@3.frame(new id wl_callback@20)
[2645197.432] wl_surface@3.set_buffer_scale(1)
[2645197.443] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645197.460] wl_surface@3.commit()
[2645198.673]  -> wl_buffer@27.release()
[2645198.819] wl_buffer@27.release()
[2645209.253] wl_display@1.delete_id(16)
[2645209.309] wl_callback@16.done(5984706)
[2645210.411]  -> wl_callback@20.done(5984707)
[2645210.465]  -> wl_display@1.delete_id(20)
[2645211.008]  -> wl_surface@3.frame(new id wl_callback@16)
[2645211.033]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645211.051]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645211.067]  -> wl_surface@3.commit()
[2645211.185] wl_display@1.delete_id(20)
[2645211.234] wl_callback@20.done(5984707)
[2645211.295]  -> wl_buffer@27.destroy()
[2645211.399]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@20, 136399440, 1234, 640, 4936, 0)
[2645211.538]  -> wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2645211.657]  -> wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2645211.899]  -> wl_surface@3.frame(new id wl_callback@26)
[2645211.914]  -> wl_surface@3.set_buffer_scale(1)
[2645211.921]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645211.936]  -> wl_surface@3.commit()
[2645212.173] wl_buffer@27.destroy()
[2645212.212]  -> wl_display@1.delete_id(27)
[2645212.224] wl_shm_pool@25.create_buffer(new id wl_buffer@20, 136399440, 1234, 640, 4936, 0)
[2645212.253] wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2645212.274] wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2645212.295] wl_surface@3.frame(new id wl_callback@26)
[2645212.306] wl_surface@3.set_buffer_scale(1)
[2645212.312] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645212.327] wl_surface@3.commit()
[2645213.696]  -> wl_buffer@20.release()
[2645213.953] wl_display@1.delete_id(27)
[2645213.983] wl_buffer@20.release()
[2645214.010] wl_buffer@20.release()
[2645226.386] wl_display@1.delete_id(16)
[2645226.472] wl_callback@16.done(5984722)
[2645228.044]  -> wl_callback@26.done(5984724)
[2645228.072]  -> wl_display@1.delete_id(26)
[2645228.217]  -> wl_surface@3.frame(new id wl_callback@16)
[2645228.232]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645228.243]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645228.258]  -> wl_surface@3.commit()
[2645228.333] wl_display@1.delete_id(26)
[2645228.372] wl_callback@26.done(5984724)
[2645228.861]  -> wl_surface@3.damage_buffer(10, 10, 1211, 255)
[2645228.931]  -> wl_surface@3.damage_buffer(10[2645228.926] wl_buffer@22.release(, )
248, 1211, 374)
[2645230.515]  -> wl_surface@3.frame(new id wl_callback@26)
[2645230.542]  -> wl_surface@3.set_buffer_scale(1)
[2645230.553]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645230.570]  -> wl_surface@3.commit()
[2645230.671] wl_surface@3.damage_buffer(10, 10, 1211, 255)
[2645230.701] wl_surface@3.damage_buffer(10, 248, 1211, 374)
[2645230.729] wl_surface@3.frame(new id wl_callback@26)
[2645230.744] wl_surface@3.set_buffer_scale(1)
[2645230.752] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645230.770] wl_surface@3.commit()
[2645232.003]  -> wl_buffer@20.release()
[2645232.174] wl_buffer@20.release()
[2645233.602] wl_compositor@9.create_region(new id wl_region@20)
[2645233.661] wl_region@20.add(0, 0, 680, 550)
[2645233.680] wl_surface@19.set_opaque_region(wl_region@20)
[2645233.697] wl_region@20.destroy()
[2645233.712]  -> wl_display@1.delete_id(20)
[2645233.723] wl_surface@6.set_buffer_scale(1)
[2645233.731] wl_shm_pool@18.create_buffer(new id wl_buffer@21, 4032, 10, 16, 40, 0)
[2645233.760] wl_pointer@8.set_cursor(0, wl_surface@6, 1, 1)
2021-10-11 12:58:58,553 libqtile core.py:_on_request_cursor():L282  Signal: seat request_set_cursor_event
[2645234.244]  -> wl_compositor@7.create_surface(new id wl_surface@18)
[2645234.259]  -> wl_surface@18.attach(nil, 0, 0)
[2645234.270]  -> wl_surface@18.commit()
[2645234.298] wl_surface@6.damage(0, 0, 10, 16)
[2645234.317] wl_surface@6.attach(wl_buffer@21, 0, 0)
[2645234.327] wl_surface@6.commit()
[2645234.550]  -> wl_buffer@21.release()
[2645234.564]  -> wl_surface@6.enter(wl_output@17)
[2645234.733]  -> zwp_linux_dmabuf_v1@6.create_params(new id zwp_linux_buffer_params_v1@23)
[2645234.750]  -> zwp_linux_buffer_params_v1@23.add(fd 37, 0, 0, 128, 16777216, 4)
[2645234.775]  -> zwp_linux_buffer_params_v1@23.add(fd 38, 1, 4096, 128, 16777216, 4)
[2645234.794]  -> zwp_linux_buffer_params_v1@23.create_immed(new id wl_buffer@24, 10, 16, 875713089, 0)
[2645234.816]  -> wl_surface@18.attach(wl_buffer@24, 0, 0)
[2645234.829]  -> wl_surface@18.damage_buffer(0, 0, 2147483647, 2147483647)
[2645234.849]  -> wl_surface@18.commit()
[2645234.866] wl_compositor@9.create_region(new id wl_region@22)
[2645234.879] wl_region@22.add(0, 0, 0, 0)
[2645234.892] wl_surface@19.set_opaque_region(wl_region@22)
[2645234.896] wl_region@22.destroy()
[2645234.900]  -> wl_display@1.delete_id(22)
[2645234.905] zwp_primary_selection_device_manager_v1@15.get_device(new id zwp_primary_selection_device_v1@23, wl_seat@12)
[2645234.920] xdg_wm_base@14.get_xdg_surface(new id xdg_surface@24, wl_surface@19)
[2645234.933] xdg_surface@24.get_toplevel(new id xdg_toplevel@25)
[2645234.939] zxdg_decoration_manager_v1@16.get_toplevel_decoration(new id zxdg_toplevel_decoration_v1@26, xdg_toplevel@25)
[2645234.948] wl_surface@19.commit()
2021-10-11 12:58:58,554 libqtile core.py:_on_new_xdg_surface():L286  Signal: xdg_shell new_surface_event
2021-10-11 12:58:58,554 libqtile core.py:_on_new_toplevel_decoration():L390  Signal: xdg_decoration new_top_level_decoration
[2645235.487] xdg_toplevel@25.set_app_id("Signal")
[2645235.501] xdg_toplevel@25.set_title("Signal")
[2645235.508] xdg_toplevel@25.set_min_size(680, 550)
[2645235.516] xdg_toplevel@25.set_max_size(2147483647, 2147483647)
[2645235.526] xdg_toplevel@25.unset_maximized()
[2645235.531] zxdg_toplevel_decoration_v1@26.set_mode(2)
[2645235.537] wl_compositor@9.create_region(new id wl_region@27)
[2645235.548] wl_region@27.add(0, 0, 0, 0)
[2645235.570] wl_surface@19.set_opaque_region(wl_region@27)
[2645235.579] wl_region@27.destroy()
[2645235.585]  -> wl_display@1.delete_id(27)
[2645235.593] xdg_toplevel@25.set_maximized()
[2645235.600]  -> xdg_toplevel@25.configure(0, 0, array)
[2645235.617]  -> zxdg_toplevel_decoration_v1@26.configure(2)
[2645235.624]  -> xdg_surface@24.configure(21)
[2645243.981] wl_display@1.delete_id(16)
[2645244.029] wl_callback@16.done(5984739)
[2645244.498]  -> wl_callback@26.done(5984742)
[2645244.516]  -> wl_display@1.delete_id(26)
[2645244.665]  -> wl_surface@3.frame(new id wl_callback@16)
[2645244.677]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645244.686]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645244.695]  -> wl_surface@3.commit()
[2645244.783] wl_display@1.delete_id(26)
[2645244.824] wl_callback@26.done(5984742)
[2645244.856]  -> wl_buffer@20.destroy()
[2645245.138]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 137574208, 1234, 640, 4936, 0)
[2645245.630]  -> wl_surface@3.damage_buffer(10, 10, 1211, 374)
[2645245.734]  -> wl_surface@3.damage_buffer(10, 367, 1211, 255)
[2645246.377]  -> wl_surface@3.frame(new id wl_callback@27)
[2645246.457]  -> wl_surface@3.set_buffer_scale(1)
[2645246.467]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645246.481]  -> wl_surface@3.commit()
[2645246.609] wl_buffer@20.release()
[2645246.648] wl_buffer@20.destroy()
[2645246.655]  -> wl_display@1.delete_id(20)
[2645246.662] wl_shm_pool@25.create_buffer(new id wl_buffer@26, 137574208, 1234, 640, 4936, 0)
[2645246.685] wl_surface@3.damage_buffer(10, 10, 1211, 374)
[2645246.701] wl_surface@3.damage_buffer(10, 367, 1211, 255)
[2645246.712] wl_surface@3.frame(new id wl_callback@27)
[2645246.718] wl_surface@3.set_buffer_scale(1)
[2645246.723] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645246.735] wl_surface@3.commit()
[2645247.497]  -> wl_buffer@26.release()
[2645247.585] wl_display@1.delete_id(20)
[2645247.601] wl_buffer@26.release()
[2645258.960] wl_display@1.delete_id(16)
[2645258.998] wl_callback@16.done(5984756)
[2645259.681]  -> wl_callback@27.done(5984757)
[2645259.715]  -> wl_display@1.delete_id(27)
[2645260.135]  -> wl_surface@3.frame(new id wl_callback@16)
[2645260.162]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645260.180]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645260.195]  -> wl_surface@3.commit()
[2645260.394] wl_display@1.delete_id(27)
[2645260.436] wl_callback@27.done(5984757)
[2645260.460]  -> wl_buffer@26.destroy()
[2645260.561]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 137742032, 1234, 640, 4936, 0)
[2645260.682]  -> wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645260.720]  -> wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645260.874]  -> wl_surface@3.frame(new id wl_callback@20)
[2645260.888]  -> wl_surface@3.set_buffer_scale(1)
[2645260.900]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645260.909]  -> wl_surface@3.commit()
[2645261.105] wl_buffer@26.destroy()
[2645261.172]  -> wl_display@1.delete_id(26)
[2645261.182] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 137742032, 1234, 640, 4936, 0)
[2645261.208] wl_surface@3.damage_buffer(10, 10, 1211, 578)
[2645261.227] wl_surface@3.damage_buffer(10, 571, 1211, 51)
[2645261.239] wl_surface@3.frame(new id wl_callback@20)
[2645261.245] wl_surface@3.set_buffer_scale(1)
[2645261.250] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645261.258] wl_surface@3.commit()
[2645262.286]  -> wl_buffer@27.release()
[2645262.552] wl_display@1.delete_id(26)
[2645262.590] wl_buffer@27.release()
[2645262.612] wl_buffer@22.release()
[2645275.574] wl_display@1.delete_id(16)
[2645275.626] wl_callback@16.done(5984772)
[2645276.706]  -> wl_callback@20.done(5984773)
[2645276.792]  -> wl_display@1.delete_id(20)
[2645277.206]  -> wl_surface@3.frame(new id wl_callback@16)
[2645277.236]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645277.257]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645277.275]  -> wl_surface@3.commit()
[2645277.405] wl_display@1.delete_id(20)
[2645277.440] wl_callback@20.done(5984773)
[2645278.801] wl_buffer@20.release()
[2645292.189] wl_display@1.delete_id(16)
[2645292.225] wl_callback@16.done(5984789)
[2645296.781] wl_shm@4.create_pool(new id wl_shm_pool@27, fd 37, 1496000)
[2645296.814] wl_shm_pool@27.create_buffer(new id wl_buffer@22, 0, 680, 550, 2720, 0)
[2645296.843] wl_shm_pool@27.destroy()
[2645296.849]  -> wl_display@1.delete_id(27)
[2645297.211]  -> wl_buffer@27.destroy()
[2645297.295]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@20, 137993768, 1234, 640, 4936, 0)
[2645297.390] wl_compositor@9.create_region(new id wl_region@20)
[2645297.409] wl_region@20.add(0, 0, 680, 550)
[2645297.429] wl_surface@19.set_opaque_region(wl_region@20)
[2645297.435]  -> wl_surface@3.damage_buffer(10[2645297.439] wl_region@20.destroy(, )
10, 1211[2645297.448]  -> wl_display@1.delete_id(, 20561)
)
[2645297.477]  -> wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645297.657]  -> wl_surface@3.frame(new id wl_callback@26)
[2645297.668]  -> wl_surface@3.set_buffer_scale(1)
[2645297.675]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645297.687]  -> wl_surface@3.commit()
[2645297.744] wl_buffer@27.destroy()
[2645297.757]  -> wl_display@1.delete_id(27)
[2645297.766] wl_shm_pool@25.create_buffer(new id wl_buffer@20, 137993768, 1234, 640, 4936, 0)
[2645297.793] wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645297.812] wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645297.841] wl_surface@3.frame(new id wl_callback@26)
[2645297.851] wl_surface@3.set_buffer_scale(1)
[2645297.859] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645297.875] wl_surface@3.commit()
[2645298.475]  -> wl_buffer@20.release()
[2645298.881]  -> wl_callback@26.done(5984796)
[2645298.908]  -> wl_display@1.delete_id(26)
[2645299.158]  -> wl_surface@3.frame(new id wl_callback@16)
[2645299.171]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645299.182]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645299.193]  -> wl_surface@3.commit()
[2645299.300] wl_display@1.delete_id(27)
[2645299.324] wl_display@1.delete_id(26)
[2645299.330] wl_buffer@20.release()
[2645299.334] wl_callback@26.done(5984796)
[2645299.347]  -> wl_buffer@20.destroy()
[2645299.424]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 138329416, 1234, 640, 4936, 0)
[2645299.513] wl_buffer@22.release()
[2645299.587]  -> wl_surface@3.damage_buffer(10, 10, 1211, 544)
[2645299.624]  -> wl_surface@3.damage_buffer(10, 537, 1211, 85)
[2645299.801]  -> wl_surface@3.frame(new id wl_callback@27)
[2645299.812]  -> wl_surface@3.set_buffer_scale(1)
[2645299.820]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645299.839]  -> wl_surface@3.commit()
[2645299.901] wl_buffer@20.destroy()
[2645299.916]  -> wl_display@1.delete_id(20)
[2645299.924] wl_shm_pool@25.create_buffer(new id wl_buffer@26, 138329416, 1234, 640, 4936, 0)
[2645299.954] wl_surface@3.damage_buffer(10, 10, 1211, 544)
[2645299.973] wl_surface@3.damage_buffer(10, 537, 1211, 85)
[2645299.992] wl_surface@3.frame(new id wl_callback@27)
[2645300.003] wl_surface@3.set_buffer_scale(1)
[2645300.011] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2645300.025] wl_surface@3.commit()
[2645300.611]  -> wl_buffer@26.release()
[2645300.683] wl_display@1.delete_id(20)
[2645300.691] wl_buffer@26.release()
[2645308.891] wl_display@1.delete_id(16)
[2645308.974] wl_callback@16.done(5984806)
[2645310.083]  -> wl_callback@27.done(5984807)
[2645310.180]  -> wl_display@1.delete_id(27)
[2645310.488]  -> wl_surface@3.frame(new id wl_callback@16)
[2645310.512]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2645310.524]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645310.536]  -> wl_surface@3.commit()
[2645310.676] wl_display@1.delete_id(27)
[2645310.709] wl_callback@27.done(5984807)
[2645312.054] wl_buffer@20.release()
[2645313.222] wl_shm@4.create_pool(new id wl_shm_pool@28, fd 37, 1496000)
[2645313.253] wl_shm_pool@28.create_buffer(new id wl_buffer@29, 0, 680, 550, 2720, 0)
[2645313.275] wl_shm_pool@28.destroy()
[2645313.281]  -> wl_display@1.delete_id(28)
[2645313.673]  -> wl_buffer@26.destroy()
[2645313.755]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 138581152, 1234, 640, 4936, 0)
[2645313.883]  -> wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645313.916]  -> wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645314.121]  -> wl_surface@3.frame(new id wl_callback@20)
[2645314.133]  -> wl_surface@3.set_buffer_scale(1)
[2645314.139]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645314.149]  -> wl_surface@3.commit()
[2645314.216] wl_buffer@26.destroy()
[2645314.230]  -> wl_display@1.delete_id(26)
[2645314.237] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 138581152, 1234, 640, 4936, 0)
[2645314.256] wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2645314.273] wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2645314.287] wl_surface@3.frame(new id wl_callback@20)
[2645314.295] wl_surface@3.set_buffer_scale(1)
[2645314.302] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2645314.313] wl_surface@3.commit()
[2645314.889]  -> wl_buffer@27.release()
[2645315.014] wl_display@1.delete_id(26)
[2645315.028] wl_buffer@27.release()
[2645325.550] wl_display@1.delete_id(16)
[2645325.630] wl_callback@16.done(5984822)
[2645326.750]  -> wl_callback@20.done(5984823)
[2645326.859]  -> wl_display@1.delete_id(20)
[2645327.156]  -> wl_surface@3.frame(new id wl_callback@16)
[2645327.181]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2645327.194]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2645327.211]  -> wl_surface@3.commit()
[2645327.362] wl_display@1.delete_id(20)
[2645327.396] wl_callback@20.done(5984823)
[2645328.709] wl_buffer@22.release()
[2645342.218] wl_display@1.delete_id(16)
[2645342.246] wl_callback@16.done(5984839)
[2646500.942]  -> wl_buffer@27.destroy()
[2646501.021]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@20, 138832888, 1234, 640, 4936, 0)
[2646501.176]  -> wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2646501.223]  -> wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2646501.416]  -> wl_surface@3.frame(new id wl_callback@26)
[2646501.430]  -> wl_surface@3.set_buffer_scale(1)
[2646501.437]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2646501.453]  -> wl_surface@3.commit()
[2646501.610] wl_buffer@27.destroy()
[2646501.634]  -> wl_display@1.delete_id(27)
[2646501.643] wl_shm_pool@25.create_buffer(new id wl_buffer@20, 138832888, 1234, 640, 4936, 0)
[2646501.668] wl_surface@3.damage_buffer(10, 10, 1211, 561)
[2646501.684] wl_surface@3.damage_buffer(10, 554, 1211, 68)
[2646501.699] wl_surface@3.frame(new id wl_callback@26)
[2646501.707] wl_surface@3.set_buffer_scale(1)
[2646501.713] wl_surface@3.attach(wl_buffer@20, 0, 0)
[2646501.724] wl_surface@3.commit()
[2646503.055]  -> wl_buffer@20.release()
[2646504.364]  -> wl_callback@26.done(5986001)
[2646504.402]  -> wl_display@1.delete_id(26)
[2646504.623]  -> wl_surface@3.frame(new id wl_callback@16)
[2646504.653]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2646504.666]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2646504.680]  -> wl_surface@3.commit()
[2646504.754] wl_display@1.delete_id(27)
[2646504.790] wl_display@1.delete_id(26)
[2646504.798] wl_buffer@20.release()
[2646504.806] wl_callback@26.done(5986001)
[2646504.823]  -> wl_buffer@20.destroy()
[2646504.851] wl_shm@4.create_pool(new id wl_shm_pool@30, fd 37, 1496000)
[2646504.912] wl_shm_pool@30.create_buffer(new id wl_buffer@31, 0, 680, 550, 2720, 0)
[2646504.947] wl_shm_pool@30.destroy()
[2646504.955]  -> wl_display@1.delete_id(30)
[2646504.981]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 139168536, 1234, 640, 4936, 0)
[2646505.315]  -> wl_surface@3.damage_buffer(10, 10, 1211, 544)
[2646505.382]  -> wl_surface@3.damage_buffer(10, 537, 1211, 85)
[2646505.558]  -> wl_surface@3.frame(new id wl_callback@27)
[2646505.576]  -> wl_surface@3.set_buffer_scale(1)
[2646505.584]  -> wl_surface@3.attach(wl_buffer@26, 0, 0)
[2646505.596]  -> wl_surface@3.commit()
[2646505.756] wl_buffer@20.destroy()
[2646505.787]  -> wl_display@1.delete_id(20)
[2646505.797] wl_shm_pool@25.create_buffer(new id wl_buffer@26, 139168536, 1234, 640, 4936, 0)
[2646505.822] wl_surface@3.damage_buffer(10, 10, 1211, 544)
[2646505.855] wl_surface@3.damage_buffer(10, 537, 1211, 85)
[2646505.873] wl_surface@3.frame(new id wl_callback@27)
[2646505.883] wl_surface@3.set_buffer_scale(1)
[2646505.889] wl_surface@3.attach(wl_buffer@26, 0, 0)
[2646505.903] wl_surface@3.commit()
[2646507.230]  -> wl_buffer@26.release()
[2646507.375] wl_display@1.delete_id(20)
[2646507.422] wl_buffer@26.release()
[2646510.053] wl_buffer@20.release()
[2646525.523] wl_display@1.delete_id(16)
[2646525.571] wl_callback@16.done(5986022)
[2646526.017]  -> wl_callback@27.done(5986023)
[2646526.039]  -> wl_display@1.delete_id(27)
[2646526.240]  -> wl_surface@3.frame(new id wl_callback@16)
[2646526.259]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2646526.270]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2646526.282]  -> wl_surface@3.commit()
[2646526.453] wl_display@1.delete_id(27)
[2646526.491] wl_callback@27.done(5986023)
[2646528.521] wl_buffer@22.release()
[2646541.986] wl_display@1.delete_id(16)
[2646542.010] wl_callback@16.done(5986039)
[2646680.209]  -> wl_buffer@26.destroy()
[2646680.255]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 139252448, 1234, 640, 4936, 0)
[2646680.332]  -> wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2646680.359]  -> wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2646680.577]  -> wl_surface@3.frame(new id wl_callback@20)
[2646680.586]  -> wl_surface@3.set_buffer_scale(1)
[2646680.590]  -> wl_surface@3.attach(wl_buffer@27, 0, 0)
[2646680.597]  -> wl_surface@3.commit()
[2646680.690] wl_buffer@26.destroy()
[2646680.707]  -> wl_display@1.delete_id(26)
[2646680.715] wl_shm_pool@25.create_buffer(new id wl_buffer@27, 139252448, 1234, 640, 4936, 0)
[2646680.739] wl_surface@3.damage_buffer(10, 10, 1211, 595)
[2646680.756] wl_surface@3.damage_buffer(10, 588, 1211, 34)
[2646680.773] wl_surface@3.frame(new id wl_callback@20)
[2646680.782] wl_surface@3.set_buffer_scale(1)
[2646680.789] wl_surface@3.attach(wl_buffer@27, 0, 0)
[2646680.801] wl_surface@3.commit()
[2646681.391]  -> wl_buffer@27.release()
[2646681.902]  -> wl_callback@20.done(5986179)
[2646681.923]  -> wl_display@1.delete_id(20)
[2646682.416]  -> wl_surface@3.frame(new id wl_callback@16)
[2646682.511]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[2646682.538]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2646682.562]  -> wl_surface@3.commit()
[2646683.018] wl_display@1.delete_id(26)
[2646683.072] wl_display@1.delete_id(20)
[2646683.079] wl_buffer@27.release()
[2646683.085] wl_callback@20.done(5986179)
[2646685.674] wl_buffer@20.release()
[2646692.002] wl_display@1.delete_id(16)
[2646692.024] wl_callback@16.done(5986189)
[2646692.360]  -> wl_surface@3.frame(new id wl_callback@16)
[2646692.373]  -> wl_surface@3.attach(wl_buffer@20, 0, 0)
[2646692.382]  -> wl_surface@3.damage_buffer(0, 0, 2147483647, 2147483647)
[2646692.392]  -> wl_surface@3.commit()
[2646692.656] wl_buffer@22.release()
[2646708.555] wl_display@1.delete_id(16)
[2646708.579] wl_callback@16.done(5986205)
```
</details>


@m-col I am trying to debug it right now and it does work in tinywl and tinywl from pywlroots. So I just started trying random things and the following patch makes signal-desktop appear for me. I'm not sure why as I'm not that experienced with wayland stuff. Any reason why this works for me :eyes: 

```diff
diff --git a/libqtile/backend/wayland/window.py b/libqtile/backend/wayland/window.py
index 18228b34..f37aedd6 100644
--- a/libqtile/backend/wayland/window.py
+++ b/libqtile/backend/wayland/window.py
@@ -94,7 +94,7 @@ class Window(base.Window, HasListeners):

         assert isinstance(surface, XdgSurface)
         self._app_id: Optional[str] = surface.toplevel.app_id
-        surface.set_tiled(EDGES_TILED)
+        #surface.set_tiled(EDGES_TILED)

         self._float_state = FloatStates.NOT_FLOATING
         self.float_x: Optional[int] = None
```

EDIT: This also solves vscode not opening so it seems to fix it for electron apps. Any reason why that was needed? As a quick test things seem to work in wephyr.
That change doesn't change anything for me unfortunately, and I also can't get it to work in pywlroots' tinywl (but it does work in sway). I guess this is due to the different signal-desktop versions we are using. Did you find anything else interesting when testing things?
> That change doesn't change anything for me unfortunately, and I also can't get it to work in pywlroots' tinywl (but it does work in sway). I guess this is due to the different signal-desktop versions we are using. Did you find anything else interesting when testing things?

Hmmmmm it is indeed weird that it crashes for you. I tried logging most functions and events that were called and honestly it looks good when compared to tinywl and pywlroots' tinywl. I just commented that because I saw that pywlroots didn't use it. And things magically work now. Uncommenting it again makes things not work again.

Also at first I thought I was running version 5.18 but apparently I'm running 5.19 so we should have the same version. I would suspect if it's an issue on your machine signal-desktop wouldn't open on sway either. Can you try another electron app such as vscode?

Edit: Didn't it crash with some keyboard stuff for you? My keyboard settings are default in wayland.
>  Didn't it crash with some keyboard stuff for you? My keyboard settings are default in wayland.

The last message when using `WAYLAND_DEBUG` is "[3303412.959] wl_keyboard@18.keymap(1, fd 110, 66058)", but comparing our setup of keyboards to sway's it's pretty much the same, and we are only doing the minimum required I think.

Could you maybe post the `env` of wherever you're starting it from? Maybe there is a lead in there. Mine is:
```
SHELL=/usr/bin/zsh
LSCOLORS=Gxfxcxdxbxegedabagacad
MYPYPATH=/home/mcol/git/reach:/home/mcol/git/qtile-extras:/home/mcol/git/qtile-examples:/home/mcol/git/python-xkbcommon:/home/mcol/git/pywlroots:/home/mcol/git/pywayland:/home/mcol/git/qtile-extras:/home/mcol/git/python-xkbcommon:/home/mcol/git/pywlroots:/home/mcol/git/pywayland:/home/mcol/git/visiomode:/home/mcol/git/reach:
WOB_BORDER=0
WOB_HEIGHT=28
WOB_WIDTH=1920
EDITOR=vim
XDG_SEAT=seat0
PWD=/home/mcol
AUR_PAGER=ranger
LOGNAME=mcol
XDG_SESSION_TYPE=tty
WOB_PADDING=0
IS_TMUX=false
LDFLAGS=-L /home/mcol/git/wlroots/build
HOME=/home/mcol
LANG=en_US.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
ard=mcolliga@172.19.82.117
KEYTIMEOUT=1
WAYLAND_DISPLAY=wayland-0
DLCDIR=/home/mcol/work/analysis/deeplabcut
APP=footclient
https_proxy=http://127.0.0.1:9052
WOB_MARGIN=0
WOB_BAR=#66CFCCD6
WOB_BACKGROUND=#00000000
XKB_DEFAULT_LAYOUT=gb
XDG_SESSION_CLASS=user
PYTHONPATH=/home/mcol/git/qtile-extras:/home/mcol/git/python-xkbcommon:/home/mcol/git/pywlroots:/home/mcol/git/pywayland:/home/mcol/git/visiomode:/home/mcol/git/reach:/home/mcol/git/qtile-extras:/home/mcol/git/qtile-examples:/home/mcol/git/python-xkbcommon:/home/mcol/git/pywlroots:/home/mcol/git/pywayland:/home/mcol/git/qtile-extras:/home/mcol/git/python-xkbcommon:/home/mcol/git/pywlroots:/home/mcol/git/pywayland:/home/mcol/git/visiomode:/home/mcol/git/reach:
TERM=foot
USER=mcol
SUDO_EDITOR=vim
pitv=192.168.1.101
SHLVL=3
trash=/home/mcol/.local/share/Trash/files
MOZ_ENABLE_WAYLAND=1
WOB_OFFSET=0
rp=cakeandcoffee.club
XDG_VTNR=1
XDG_SESSION_ID=4
http_proxy=http://127.0.0.1:9052
LD_LIBRARY_PATH=/home/mcol/git/wlroots/build:/home/mcol/git/wlroots/build:/home/mcol/git/wlroots/build:
XDG_RUNTIME_DIR=/run/user/1000
PYTHONBREAKPOINT=pudb.set_trace
MKLROOT=/opt/intel/mkl
BROWSER=firefox
PATH=/home/mcol/.config/bin:/home/mcol/.local/bin:/usr/local/bin:/etc/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/mcol/.cabal/bin:/home/mcol/.local/bin:/home/mcol/.cabal/bin:/home/mcol/.local/bin
IS_SSH=false
CFLAGS=-I /home/mcol/git/wlroots/include -I /home/mcol/git/wlroots/build/include
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
RANGER_LOAD_DEFAULT_RC=FALSE
HG=/usr/bin/hg
MAIL=/var/spool/mail/mcol
XKB_DEFAULT_OPTIONS=caps:swapescape,altwin:swap_alt_win
OLDPWD=/home/mcol
_=/usr/bin/env
COLORTERM=truecolor
LC_CTYPE=en_US.UTF-8
QT_QPA_PLATFORM=wayland
```
> > Didn't it crash with some keyboard stuff for you? My keyboard settings are default in wayland.
> 
> The last message when using `WAYLAND_DEBUG` is "[3303412.959] [wl_keyboard@18.keymap](mailto:wl_keyboard@18.keymap)(1, fd 110, 66058)", but comparing our setup of keyboards to sway's it's pretty much the same, and we are only doing the minimum required I think.
> 

Hmmm gotcha

My env: (there's a bunch of stuff here because I'm starting it in a `nix-shell`)

```
LD_LIBRARY_PATH=
XDG_CONFIG_HOME=/home/jerry/.config
LANG=en_US.UTF-8
DISPLAY=:0
OLDPWD=/home/jerry
EDITOR=emacs
LOCALE_ARCHIVE_2_27=/nix/store/9ksblw1v19rvyq6km2dcrkkawr9z320n-glibc-locales-2.32-54/lib/locale/locale-archive
MOZ_PLUGIN_PATH=/home/jerry/.nix-profile/lib/mozilla/plugins:/etc/profiles/per-user/jerry/lib/mozilla/plugins:/nix/var/nix/profiles/default/lib/mozilla/plugins:/run/current-system/sw/lib/mozilla/plugins
KDEDIRS=/home/jerry/.nix-profile:/etc/profiles/per-user/jerry:/nix/var/nix/profiles/default:/run/current-system/sw
NO_AT_BRIDGE=1
XDG_VTNR=1
QTWEBKIT_PLUGIN_PATH=/home/jerry/.nix-profile/lib/mozilla/plugins/:/etc/profiles/per-user/jerry/lib/mozilla/plugins/:/nix/var/nix/profiles/default/lib/mozilla/plugins/:/run/current-system/sw/lib/mozilla/plugins/
XDG_SESSION_ID=1
HUSHLOGIN=FALSE
USER=jerry
PAGER=less -R
TZDIR=/etc/zoneinfo
CUPS_DATADIR=/nix/store/4z2mx0dq6j89bvlrx3gbnz22y4fc7gy3-cups-progs/share/cups
LIBEXEC_PATH=/home/jerry/.nix-profile/lib/libexec:/etc/profiles/per-user/jerry/lib/libexec:/nix/var/nix/profiles/default/lib/libexec:/run/current-system/sw/lib/libexec
NIX_PROFILES=/run/current-system/sw /nix/var/nix/profiles/default /etc/profiles/per-user/jerry /home/jerry/.nix-profile
PYTHONNOUSERSITE=true
PWD=/home/jerry/Repos/qtile
NIX_PATH=/home/jerry/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
SSH_ASKPASS=/nix/store/znw85gjgp4147m43ra3cx3s45g7dai68-x11-ssh-askpass-1.2.4.1/libexec/x11-ssh-askpass
HOME=/home/jerry
XDG_SESSION_TYPE=tty
GTK_PATH=/home/jerry/.nix-profile/lib/gtk-2.0:/home/jerry/.nix-profile/lib/gtk-3.0:/etc/profiles/per-user/jerry/lib/gtk-2.0:/etc/profiles/per-user/jerry/lib/gtk-3.0:/nix/var/nix/profiles/default/lib/gtk-2.0:/nix/var/nix/profiles/default/lib/gtk-3.0:/run/current-system/sw/lib/gtk-2.0:/run/current-system/sw/lib/gtk-3.0
XDG_DATA_DIRS=/nix/store/5lja4nn28d699y3qkdbnqs38cip9v7dm-desktops/share:/home/jerry/.nix-profile/share:/etc/profiles/per-user/jerry/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share
GIO_EXTRA_MODULES=/nix/store/4wjid7mihhiy5m95iah803wbnzy7qk85-gvfs-1.48.1/lib/gio/modules:/nix/store/216dss95nnivphn0rhjyf1vgb8fm1ax2-dconf-0.40.0-lib/lib/gio/modules
TERMINFO_DIRS=/home/jerry/.nix-profile/share/terminfo:/etc/profiles/per-user/jerry/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo
__NIXOS_SET_ENVIRONMENT_DONE=1
WINDOWPATH=1
QT_PLUGIN_PATH=/home/jerry/.nix-profile/lib/qt4/plugins:/home/jerry/.nix-profile/lib/kde4/plugins:/etc/profiles/per-user/jerry/lib/qt4/plugins:/etc/profiles/per-user/jerry/lib/kde4/plugins:/nix/var/nix/profiles/default/lib/qt4/plugins:/nix/var/nix/profiles/default/lib/kde4/plugins:/run/current-system/sw/lib/qt4/plugins:/run/current-system/sw/lib/kde4/plugins
NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/jerry
SHELL=/run/current-system/sw/bin/zsh
TERM=st-256color
XDG_SESSION_CLASS=user
SHLVL=3
XDG_SEAT=seat0
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
XDG_DESKTOP_PORTAL_DIR=/nix/store/krb375a1pdq7gal41sjn0mv57wb07fhx-xdg-portals/share/xdg-desktop-portal/portals
XDG_CACHE_HOME=/home/jerry/.cache
LOGNAME=jerry
NIXPKGS_CONFIG=/etc/nix/nixpkgs-config.nix
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
__HM_SESS_VARS_SOURCED=1
XAUTHORITY=/home/jerry/.Xauthority
XDG_DATA_HOME=/home/jerry/.local/share
XDG_CONFIG_DIRS=/etc/xdg:/home/jerry/.nix-profile/etc/xdg:/etc/profiles/per-user/jerry/etc/xdg:/nix/var/nix/profiles/default/etc/xdg:/run/current-system/sw/etc/xdg
PATH=/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/bin:/nix/store/fd7hbbph3yiiv6fqcwdxcv1ih97pfnhb-python3.8-qtile-0.18.2-wayland/bin:/nix/store/n5j5fjn60nhck658j9ab84k8n9z24n1r-systemd-247.6/bin:/nix/store/l3r0pkp1gyi5yz21a9c0pc082w190987-libinput-1.16.4-bin/bin:/nix/store/sd2926girsnmxk4amjby4d7h6lghlb8c-python3.8-pywayland-v0.4.7/bin:/nix/store/gc5xyf506s9apmn2k1k6rll8521l97p0-wayland-1.19.0-bin/bin:/nix/store/9w0vim093yahm7fbml7xr9wgzadpql1s-libxkbcommon-1.3.0/bin:/nix/store/7v388c37vzgyllnm9qp2x88q66a26713-cairo-1.16.0-dev/bin:/nix/store/y0p9gpk51gds595q1m3cb7wscr3znx2v-freetype-2.10.4-dev/bin:/nix/store/k0wh42ls7blspkc7mmpgwwp9c9a7zcbl-bzip2-1.0.6.0.2-bin/bin:/nix/store/bid5jacyr52nk2bpvbzkk6s32vl05kny-libpng-apng-1.6.37-dev/bin:/nix/store/whl1zahn1q7605ammalx33hms9ds5q1k-fontconfig-2.13.92-bin/bin:/nix/store/fjwzjdl8gk0s19awf486gns06lwgp6ys-expat-2.2.10-dev/bin:/nix/store/jqjdkgwf49q3vlbgh3qsjmz5569hnrj8-glib-2.68.4-dev/bin:/nix/store/hng9vklzx5pgrf25cnl4pfc0gzsvv62b-gettext-0.21/bin:/nix/store/j77gd73psb8dchgwcyk3i2flncqbgimk-glib-2.68.4-bin/bin:/run/wrappers/bin:/home/jerry/.nix-profile/bin:/etc/profiles/per-user/jerry/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/home/jerry/.zsh/plugins/zsh-autosuggestions:/home/jerry/.zsh/plugins/zsh-syntax-highlighting
INFOPATH=/home/jerry/.nix-profile/info:/home/jerry/.nix-profile/share/info:/etc/profiles/per-user/jerry/info:/etc/profiles/per-user/jerry/share/info:/nix/var/nix/profiles/default/info:/nix/var/nix/profiles/default/share/info:/run/current-system/sw/info:/run/current-system/sw/share/info
GTK_USE_PORTAL=1
XCURSOR_PATH=/home/jerry/.icons:/home/jerry/.local/share/icons:/home/jerry/.nix-profile/share/icons:/home/jerry/.nix-profile/share/pixmaps:/etc/profiles/per-user/jerry/share/icons:/etc/profiles/per-user/jerry/share/pixmaps:/nix/var/nix/profiles/default/share/icons:/nix/var/nix/profiles/default/share/pixmaps:/run/current-system/sw/share/icons:/run/current-system/sw/share/pixmaps
__ETC_PROFILE_DONE=1
WINDOWID=31457286
STARSHIP_SHELL=zsh
STARSHIP_SESSION_KEY=2946127008632282
_=/run/current-system/sw/bin/env
```


Nothing really jumps out at me as possibly interacting with things. Try this to start with a fresh environment:
```
env -i WAYLAND_DISPLAY=$WAYLAND_DISPLAY XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR WAYLAND_DEBUG=1 signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland
```

I see the same thing though.
Oh btw I posted my x11 env where I run wephyr, let me actually start qtile as wayland with that patch and test again.

> Nothing really jumps out at me as possibly interacting with things. Try this to start with a fresh environment:
> 
> ```
> env -i WAYLAND_DISPLAY=$WAYLAND_DISPLAY XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR WAYLAND_DEBUG=1 signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland
> ```
> 
> I see the same thing though.

I am beyond confused
yeah still works using qtile as the wayland compositor, Now the firefox edges are all screwed up though but that makes sense I guess. Env, shouldn't make a difference:

```
LD_LIBRARY_PATH=
LANG=en_US.UTF-8
OLDPWD=/home/jerry
EDITOR=nano
MOZ_PLUGIN_PATH=/home/jerry/.nix-profile/lib/mozilla/plugins:/etc/profiles/per-user/jerry/lib/mozilla/plugins:/nix/var/nix/profiles/default/lib/mozilla/plugins:/run/current-system/sw/lib/mozilla/plugins
KDEDIRS=/home/jerry/.nix-profile:/etc/profiles/per-user/jerry:/nix/var/nix/profiles/default:/run/current-system/sw
NO_AT_BRIDGE=1
XDG_VTNR=1
QTWEBKIT_PLUGIN_PATH=/home/jerry/.nix-profile/lib/mozilla/plugins/:/etc/profiles/per-user/jerry/lib/mozilla/plugins/:/nix/var/nix/profiles/default/lib/mozilla/plugins/:/run/current-system/sw/lib/mozilla/plugins/
XDG_SESSION_ID=4
HUSHLOGIN=FALSE
USER=jerry
PAGER=less -R
TZDIR=/etc/zoneinfo
CUPS_DATADIR=/nix/store/4z2mx0dq6j89bvlrx3gbnz22y4fc7gy3-cups-progs/share/cups
LIBEXEC_PATH=/home/jerry/.nix-profile/lib/libexec:/etc/profiles/per-user/jerry/lib/libexec:/nix/var/nix/profiles/default/lib/libexec:/run/current-system/sw/lib/libexec
NIX_PROFILES=/run/current-system/sw /nix/var/nix/profiles/default /etc/profiles/per-user/jerry /home/jerry/.nix-profile
PYTHONNOUSERSITE=true
NIX_PATH=/home/jerry/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
PWD=/home/jerry
SSH_ASKPASS=/nix/store/znw85gjgp4147m43ra3cx3s45g7dai68-x11-ssh-askpass-1.2.4.1/libexec/x11-ssh-askpass
HOME=/home/jerry
XDG_SESSION_TYPE=wayland
GTK_PATH=/home/jerry/.nix-profile/lib/gtk-2.0:/home/jerry/.nix-profile/lib/gtk-3.0:/etc/profiles/per-user/jerry/lib/gtk-2.0:/etc/profiles/per-user/jerry/lib/gtk-3.0:/nix/var/nix/profiles/default/lib/gtk-2.0:/nix/var/nix/profiles/default/lib/gtk-3.0:/run/current-system/sw/lib/gtk-2.0:/run/current-system/sw/lib/gtk-3.0
XDG_DATA_DIRS=/nix/store/5lja4nn28d699y3qkdbnqs38cip9v7dm-desktops/share:/home/jerry/.nix-profile/share:/etc/profiles/per-user/jerry/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share
GIO_EXTRA_MODULES=/nix/store/4wjid7mihhiy5m95iah803wbnzy7qk85-gvfs-1.48.1/lib/gio/modules:/nix/store/216dss95nnivphn0rhjyf1vgb8fm1ax2-dconf-0.40.0-lib/lib/gio/modules
TERMINFO_DIRS=/home/jerry/.nix-profile/share/terminfo:/etc/profiles/per-user/jerry/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo
__NIXOS_SET_ENVIRONMENT_DONE=1
QT_PLUGIN_PATH=/home/jerry/.nix-profile/lib/qt4/plugins:/home/jerry/.nix-profile/lib/kde4/plugins:/etc/profiles/per-user/jerry/lib/qt4/plugins:/etc/profiles/per-user/jerry/lib/kde4/plugins:/nix/var/nix/profiles/default/lib/qt4/plugins:/nix/var/nix/profiles/default/lib/kde4/plugins:/run/current-system/sw/lib/qt4/plugins:/run/current-system/sw/lib/kde4/plugins
NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/jerry
TERM=foot
SHELL=/run/current-system/sw/bin/zsh
XDG_SESSION_CLASS=user
XDG_SEAT=seat0
SHLVL=2
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
XDG_DESKTOP_PORTAL_DIR=/nix/store/krb375a1pdq7gal41sjn0mv57wb07fhx-xdg-portals/share/xdg-desktop-portal/portals
LOGNAME=jerry
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
NIXPKGS_CONFIG=/etc/nix/nixpkgs-config.nix
XDG_RUNTIME_DIR=/run/user/1000
XDG_CONFIG_DIRS=/etc/xdg:/home/jerry/.nix-profile/etc/xdg:/etc/profiles/per-user/jerry/etc/xdg:/nix/var/nix/profiles/default/etc/xdg:/run/current-system/sw/etc/xdg
PATH=/nix/store/32q6ryrb860sksdi1al5djg3pgcpq92l-python3-3.8.11/bin:/nix/store/afhby1v79an62h92k75icbkhp5rklnn9-python3.8-qtile-0.18.2-wayland-fixapps-latest/bin:/nix/store/n5j5fjn60nhck658j9ab84k8n9z24n1r-systemd-247.6/bin:/nix/store/l3r0pkp1gyi5yz21a9c0pc082w190987-libinput-1.16.4-bin/bin:/nix/store/sd2926girsnmxk4amjby4d7h6lghlb8c-python3.8-pywayland-v0.4.7/bin:/nix/store/gc5xyf506s9apmn2k1k6rll8521l97p0-wayland-1.19.0-bin/bin:/nix/store/9w0vim093yahm7fbml7xr9wgzadpql1s-libxkbcommon-1.3.0/bin:/nix/store/7v388c37vzgyllnm9qp2x88q66a26713-cairo-1.16.0-dev/bin:/nix/store/y0p9gpk51gds595q1m3cb7wscr3znx2v-freetype-2.10.4-dev/bin:/nix/store/k0wh42ls7blspkc7mmpgwwp9c9a7zcbl-bzip2-1.0.6.0.2-bin/bin:/nix/store/bid5jacyr52nk2bpvbzkk6s32vl05kny-libpng-apng-1.6.37-dev/bin:/nix/store/whl1zahn1q7605ammalx33hms9ds5q1k-fontconfig-2.13.92-bin/bin:/nix/store/fjwzjdl8gk0s19awf486gns06lwgp6ys-expat-2.2.10-dev/bin:/nix/store/jqjdkgwf49q3vlbgh3qsjmz5569hnrj8-glib-2.68.4-dev/bin:/nix/store/hng9vklzx5pgrf25cnl4pfc0gzsvv62b-gettext-0.21/bin:/nix/store/j77gd73psb8dchgwcyk3i2flncqbgimk-glib-2.68.4-bin/bin:/run/wrappers/bin:/home/jerry/.nix-profile/bin:/etc/profiles/per-user/jerry/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/home/jerry/.zsh/plugins/zsh-autosuggestions:/home/jerry/.zsh/plugins/zsh-syntax-highlighting
INFOPATH=/home/jerry/.nix-profile/info:/home/jerry/.nix-profile/share/info:/etc/profiles/per-user/jerry/info:/etc/profiles/per-user/jerry/share/info:/nix/var/nix/profiles/default/info:/nix/var/nix/profiles/default/share/info:/run/current-system/sw/info:/run/current-system/sw/share/info
GTK_USE_PORTAL=1
XCURSOR_PATH=/home/jerry/.icons:/home/jerry/.local/share/icons:/home/jerry/.nix-profile/share/icons:/home/jerry/.nix-profile/share/pixmaps:/etc/profiles/per-user/jerry/share/icons:/etc/profiles/per-user/jerry/share/pixmaps:/nix/var/nix/profiles/default/share/icons:/nix/var/nix/profiles/default/share/pixmaps:/run/current-system/sw/share/icons:/run/current-system/sw/share/pixmaps
__ETC_PROFILE_DONE=1
LINES=35
COLUMNS=170
WAYLAND_DISPLAY=wayland-0
COLORTERM=truecolor
__HM_SESS_VARS_SOURCED=1
LOCALE_ARCHIVE_2_27=/nix/store/9ksblw1v19rvyq6km2dcrkkawr9z320n-glibc-locales-2.32-54/lib/locale/locale-archive
MOZ_ENABLE_WAYLAND=1
MOZ_USE_XINPUT2=1
XDG_CACHE_HOME=/home/jerry/.cache
XDG_CONFIG_HOME=/home/jerry/.config
XDG_CURRENT_DESKTOP=qtile
XDG_DATA_HOME=/home/jerry/.local/share
STARSHIP_SHELL=zsh
STARSHIP_SESSION_KEY=5728254022061537
_=/run/current-system/sw/bin/env
```

Also works with the fresh env command.
The edges are like that because that commented line tells clients that their windows are being tiled on all 4 edges and they'll do things like have 90 degree corners (some clients will otherwise round them).

I'm at a loss currently do decided to just download and build signal-desktop and find out that way!
> The edges are like that because that commented line tells clients that their windows are being tiled on all 4 edges and they'll do things like have 90 degree corners (some clients will otherwise round them).

Makes sense! I have moved it to the window map event and firefox now works and so do the electron apps

```diff
diff --git a/libqtile/backend/wayland/window.py b/libqtile/backend/wayland/window.py
index 18228b34..f8dc291f 100644
--- a/libqtile/backend/wayland/window.py
+++ b/libqtile/backend/wayland/window.py
@@ -94,7 +94,6 @@ class Window(base.Window, HasListeners):
 
         assert isinstance(surface, XdgSurface)
         self._app_id: Optional[str] = surface.toplevel.app_id
-        surface.set_tiled(EDGES_TILED)
 
         self._float_state = FloatStates.NOT_FLOATING
         self.float_x: Optional[int] = None
@@ -176,6 +175,9 @@ class Window(base.Window, HasListeners):
             self._width = self._float_width = geometry.width
             self._height = self._float_height = geometry.height
 
+            # Tile edges
+            surface.set_tiled(EDGES_TILED)
+
             # Get the client's name
             if surface.toplevel.title:
                 self.name = surface.toplevel.title
```

> I'm at a loss currently do decided to just download and build signal-desktop and find out that way!

Just let me know, I hope I can reproduce the crash too.
 I'm getting lots of crazy errors trying to install `yarn` and not really sure how to proceed. Any change you have experience with that? :P
> I'm getting lots of crazy errors trying to install `yarn` and not really sure how to proceed. Any change you have experience with that? :P

What are the errors you're getting? Maybe the best way forward is for you to try the signal-desktop version with the nix package manager (it also works on arch, maybe there is a difference in dependency version). Meanwhile I will try to get an arch vm running tomorrow or so.
> What are the errors you're getting?

Different iterations of this same error when trying to run `yarn install --frozen-lockfile` as per their contributing guide:
```
yarn install v1.22.15
[1/6] Validating package.json...
error signal-desktop@5.21.0-beta.1: The engine "node" is incompatible with this module. Expected version "14.16.0". Got "14.18.1"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```
I've tried different the current and LTS versions of node, and yarn installed via pacman or via npm, and always get this error. Is the infamous horror that is javascript packaging?

> Maybe the best way forward is for you to try the signal-desktop version with the nix package manager 

I'll try this, though I'm also not familiar with nix so not sure how straight forward this will be.

`signal-desktop` just updated on arch in the past few days, now it's 5.20.0 but the issue persists.
I've installed `nix` via Arch's repos and followed the Arch wiki to start the service. I am struggling to install signal-desktop with it though:
```
> nix-env --install signal-desktop
error: selector 'signal-desktop' matches no derivations
```
Perhaps there was a step missing in my setting up of nix. Would you have a simple guide for setting up a minimal nix install just so I can install this?
> I've installed `nix` via Arch's repos and followed the Arch wiki to start the service. I am struggling to install signal-desktop with it though:
> 
> ```
> > nix-env --install signal-desktop
> error: selector 'signal-desktop' matches no derivations
> ```
> 
> Perhaps there was a step missing in my setting up of nix. Would you have a simple guide for setting up a minimal nix install just so I can install this?

Can you try `nix-env -iA nixos.signal-desktop` or `-iA nixpkgs.signal-desktop`?

> I've tried different the current and LTS versions of node, and yarn installed via pacman or via npm, and always get this error. Is the infamous horror that is javascript packaging?

Hmmm I will try this when I'm back at my laptop.
OK I got nix to work and installed `signal-desktop` with it, version 5.19.0, and the issue persists. Will test other versions.
Is there a simple way to install a specific version? Searching online seems to be yield pretty elaborate tasks to do so.
`Core._on_new_xdg_surface` isn't even being called for me, suggesting the problem is way earlier than anything implemented as part of `Window`, such as whatever protocols we support. I can't find a list of protocols required by electron/signal-desktop, but comparing what we implement with what sway implements maybe that'll round it down. If I run the wephyr script with WAYLAND_DEBUG=1 and run signal-desktop from another terminal (outside of wephyr, so the debug output is separated), the output from qtile when signal-desktop starts up begins with:
```
[1897031.409] wl_display@1.get_registry(new id wl_registry@2)
[1897031.437]  -> wl_registry@2.global(1, "wl_shm", 1)
[1897031.454]  -> wl_registry@2.global(2, "wl_drm", 2)
[1897031.474]  -> wl_registry@2.global(3, "zwp_linux_dmabuf_v1", 3)
[1897031.492]  -> wl_registry@2.global(4, "wl_compositor", 4)
[1897031.506]  -> wl_registry@2.global(5, "wl_subcompositor", 1)
[1897031.521]  -> wl_registry@2.global(6, "wl_data_device_manager", 3)
[1897031.540]  -> wl_registry@2.global(7, "zwlr_data_control_manager_v1", 2)
[1897031.556]  -> wl_registry@2.global(8, "wl_seat", 7)
[1897031.572]  -> wl_registry@2.global(9, "zwlr_output_manager_v1", 2)
[1897031.591]  -> wl_registry@2.global(10, "xdg_wm_base", 2)
[1897031.606]  -> wl_registry@2.global(11, "zwlr_layer_shell_v1", 4)
[1897031.622]  -> wl_registry@2.global(12, "zxdg_output_manager_v1", 3)
[1897031.640]  -> wl_registry@2.global(13, "zwlr_screencopy_manager_v1", 3)
[1897031.656]  -> wl_registry@2.global(14, "zwlr_gamma_control_manager_v1", 1)
[1897031.673]  -> wl_registry@2.global(15, "zwp_primary_selection_device_manager_v1", 1)
[1897031.692]  -> wl_registry@2.global(16, "zwp_virtual_keyboard_manager_v1", 1)
[1897031.707]  -> wl_registry@2.global(17, "zxdg_decoration_manager_v1", 1)
[1897031.723]  -> wl_registry@2.global(18, "org_kde_kwin_server_decoration_manager", 1)
[1897031.740]  -> wl_registry@2.global(19, "zwp_pointer_constraints_v1", 1)
[1897031.755]  -> wl_registry@2.global(20, "zwp_relative_pointer_manager_v1", 1)
[1897031.771]  -> wl_registry@2.global(21, "wl_output", 3)
```
These are the globals reported to signal-desktop. Perhaps one is missing when the same is done in sway.
> Is there a simple way to install a specific version? Searching online seems to be yield pretty elaborate tasks to do so.

You'd have to create an overlay or overwrite the package declaration. But don't think it will help as we're seeing different things on the same signal desktop version.




> `Core._on_new_xdg_surface` isn't even being called for me, suggesting the problem is way earlier than anything implemented as part of `Window`, such as whatever protocols we support. I can't find a list of protocols required by electron/signal-desktop, but comparing what we implement with what sway implements maybe that'll round it down. If I run the wephyr script with WAYLAND_DEBUG=1 and run signal-desktop from another terminal (outside of wephyr, so the debug output is separated), the output from qtile when signal-desktop starts up begins with:
> 
> ```
> [1897031.409] wl_display@1.get_registry(new id wl_registry@2)
> [1897031.437]  -> wl_registry@2.global(1, "wl_shm", 1)
> [1897031.454]  -> wl_registry@2.global(2, "wl_drm", 2)
> [1897031.474]  -> wl_registry@2.global(3, "zwp_linux_dmabuf_v1", 3)
> [1897031.492]  -> wl_registry@2.global(4, "wl_compositor", 4)
> [1897031.506]  -> wl_registry@2.global(5, "wl_subcompositor", 1)
> [1897031.521]  -> wl_registry@2.global(6, "wl_data_device_manager", 3)
> [1897031.540]  -> wl_registry@2.global(7, "zwlr_data_control_manager_v1", 2)
> [1897031.556]  -> wl_registry@2.global(8, "wl_seat", 7)
> [1897031.572]  -> wl_registry@2.global(9, "zwlr_output_manager_v1", 2)
> [1897031.591]  -> wl_registry@2.global(10, "xdg_wm_base", 2)
> [1897031.606]  -> wl_registry@2.global(11, "zwlr_layer_shell_v1", 4)
> [1897031.622]  -> wl_registry@2.global(12, "zxdg_output_manager_v1", 3)
> [1897031.640]  -> wl_registry@2.global(13, "zwlr_screencopy_manager_v1", 3)
> [1897031.656]  -> wl_registry@2.global(14, "zwlr_gamma_control_manager_v1", 1)
> [1897031.673]  -> wl_registry@2.global(15, "zwp_primary_selection_device_manager_v1", 1)
> [1897031.692]  -> wl_registry@2.global(16, "zwp_virtual_keyboard_manager_v1", 1)
> [1897031.707]  -> wl_registry@2.global(17, "zxdg_decoration_manager_v1", 1)
> [1897031.723]  -> wl_registry@2.global(18, "org_kde_kwin_server_decoration_manager", 1)
> [1897031.740]  -> wl_registry@2.global(19, "zwp_pointer_constraints_v1", 1)
> [1897031.755]  -> wl_registry@2.global(20, "zwp_relative_pointer_manager_v1", 1)
> [1897031.771]  -> wl_registry@2.global(21, "wl_output", 3)
> ```
> 
> These are the globals reported to signal-desktop. Perhaps one is missing when the same is done in sway.

But that doesn't explain why it works for me with the patch I supplied. With that the window opens reliably. Really weird.
Are your dependencies for wayland qtile the same as mine? See the first post in this thread for details on mine. I will install that arch vm somewhere in the next few days. Currently not anywhere near my laptop 😅
OK I have been an idiot!

I run Qtile with the master version of `wlroots` from their git repository, rather than from a package, so that I can keep abreast of their changes and make changes to `pywlroots` accordingly. Checking out their 0.14.1 tag and rebuilding, signal-desktop works with your patch!

Resolving patch:
diff --git a/libqtile/backend/wayland/window.py b/libqtile/backend/wayland/window.py
--- a/libqtile/backend/wayland/window.py
+++ b/libqtile/backend/wayland/window.py
@@ -94,7 +94,6 @@ def __init__(self, core: Core, qtile: Qtile, surface: SurfaceType):
 
         assert isinstance(surface, XdgSurface)
         self._app_id: Optional[str] = surface.toplevel.app_id
-        surface.set_tiled(EDGES_TILED)
 
         self._float_state = FloatStates.NOT_FLOATING
         self.float_x: Optional[int] = None
@@ -176,6 +175,9 @@ def _on_map(self, _listener, _data):
             self._width = self._float_width = geometry.width
             self._height = self._float_height = geometry.height
 
+            # Tell the client to render tiled edges
+            surface.set_tiled(EDGES_TILED)
+
             # Get the client's name
             if surface.toplevel.title:
                 self.name = surface.toplevel.title


Test patch: