[FIXED] Please Add 'class' Identification For WM/DE Interaction
Opened this issue · 7 comments
I came across a peculiarity when running dsbmc
on recent Wayland variants like sway
or hyprland
& their respective configurations.
dsbmc
in particular appears to be missing the class
identifier context.
When comparing to some of your other DSB
apps, they in turn do report their class
context.
For DSBMixer
:
Window 889d5a800 -> DSBMixer:
mapped: 1
hidden: 0
at: 640,330
size: 640,420
workspace: 3 (3)
floating: 1
monitor: 0
class: dsbmixer
title: DSBMixer
initialClass: dsbmixer
initialTitle: DSBMixer
pid: 19272
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenmode: 0
fakefullscreen: 0
grouped: 0
swallowing: 0
For dsbbatmon
:
Window 889d59000 -> Preferences:
mapped: 1
hidden: 0
at: 654,411
size: 611,258
workspace: 1 (1)
floating: 1
monitor: 0
class: dsbbatmon
title: Preferences
initialClass: dsbbatmon
initialTitle: Preferences
pid: 20332
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenmode: 0
fakefullscreen: 0
grouped: 0
swallowing: 0
For DSBMC
:
Window 889dba000 -> DSBMC - DSBMD Client:
mapped: 1
hidden: 0
at: 984,251
size: 637,478
workspace: 1 (1)
floating: 1
monitor: 0
class:
title: DSBMC - DSBMD Client
initialClass:
initialTitle: DSBMC - DSBMD Client
pid: 20407
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenmode: 0
fakefullscreen: 0
grouped: 0
swallowing: 0
Note: See how DSBMC
does not report a class:
property identifier.
This is problematic when attempting to manipulate window size / geometric location & workspace assignment etc, in whatever Wayland deployments like sway
hikari
hyprland
and so forth. The applications mentioned, all work flawlessly & without any problems.
I am not a super-ultra-source-code-master-hero, to be able to sniff through your source code to find out how one might do a little hack / patch -- for the specific purpose of implementing this class:
property.
Hopefully this is informative enough & not very difficult to implement.
And many thanks again for your very useful apps!
Hi @thesunexpress,
could you please try building DSBMC with the latest commit?
Success!
Window 88321b800 -> DSBMC - DSBMD Client:
mapped: 1
hidden: 0
at: 1034,168
size: 637,478
workspace: 1 (1)
floating: 1
monitor: 0
class: dsbmc
title: DSBMC - DSBMD Client
initialClass: dsbmc
initialTitle: DSBMC - DSBMD Client
pid: 2133
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenmode: 0
fakefullscreen: 0
grouped: 0
swallowing: 0
Thank you thank you thank you!
I can confirm it works as expected & reports it's class
identification correctly in sway
, hikari
& Hyprland
Looking at the small patches you made to the source, it is no wonder I couldn't figure it out. I was expecting to see something obvious like "MyApp class name blah-blah-blah" etc... Turns out it is a bunch of arg's.
Excellent work!
A little extra info:
Build setup with qmake6
works without issue.
Building with make -j20
on a i9-9820X platforms takes all of 6 seconds :)
I can confirm it works as expected & reports it's class identification correctly in sway , hikari & Hyprland
Looking at the small patches you made to the source, it is no wonder I couldn't figure it out. I was expecting to see something obvious like "MyApp class name blah-blah-blah" etc... Turns out it is a bunch of arg's.
Excellent work!
Thank you for the feedback :-) The bug was quite subtle, and it took me a moment to figure out what might cause the problem.
A little extra info:
Build setup with qmake6 works without issue.
Building with make -j20 on a i9-9820X platforms takes all of 6 seconds :)
Good to know :-) it's about time to start the migration to Qt6.
I've been testing a bunch of QT6 stuff for a while now. Starting off with hacking the early qt6ct
releases to get things working. Has actually been fun to follow!