Bug 460023 - EWMH sticky does not work
Summary: EWMH sticky does not work
Status: RESOLVED NOT A BUG
Alias: None
Product: kwin
Classification: Plasma
Component: core (other bugs)
Version First Reported In: 5.25.5
Platform: Arch Linux Linux
: NOR minor
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-05 22:07 UTC by julius.dehner
Modified: 2023-01-19 13:24 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description julius.dehner 2022-10-05 22:07:27 UTC
SUMMARY
Using a program that uses EWMH to activate the "sticky" property does not work.
Examples of these programs are xdotool or wmctrl.
This should instead activate the "shown on all desktops" property of plasma


STEPS TO REPRODUCE
1.  `xdotool getactivewindow windowstate --add STICKY`
2. Move to another virtual desktop

OBSERVED RESULT
The currently active window remains on it's desktop.

EXPECTED RESULT
The window should show on the old and the new virtual desktop.

SOFTWARE/OS VERSIONS

KDE Plasma Version:   5.25.5
KDE Frameworks Version:  5.98.0
Qt Version:  5.15.6

ADDITIONAL INFORMATION
Comment 1 Vlad Zahorodnii 2022-10-07 08:57:08 UTC
According to the EWMH spec, sticky windows are something different

"A window manager which implements a large desktop typically offers a way for the user to make certain windows 'stick to the glass', i.e. these windows will stay at the same position on the screen when the viewport is moved."

large desktop is defined as

"The window manager may offer to arrange the managed windows on a desktop that is larger than the root window. The screen functions as a viewport on this large desktop. Different policies regarding the positioning of the viewport on the desktop can be implemented: The window manager may only allow the viewport position to change in increments of the screen size (paging) or it may allow arbitrary positions (scrolling)."

i.e. if I understand correctly, STICKY is about window position, not virtual desktops. If that's correct, then it's not a bug because kwin does not implement large desktops iiuc
Comment 2 Nate Graham 2022-10-10 16:50:28 UTC
.
Comment 3 Bug Janitor Service 2022-10-25 05:01:12 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 julius.dehner 2022-10-25 13:55:55 UTC
That's interesting, as both xdotool and bspwm man pages as well as wikipedia list "sticky" as the property that should make windows be shown on all virtual desktops:
https://en.wikipedia.org/wiki/Extended_Window_Manager_Hints

bspwm man page:
```
       sticky
           Stays in the focused desktop of its monitor.
```
xdotool man page:
```
STICKY - makes the window appear on all workspaces
```

So it seems "sticky" has at least come to mean "show window on all virtual desktops".

I also wonder if the behaviour on large desktops isn't similar enough that it means that same thing (i.e. I always want this window to be visible even if I move the viewport/switch virtual desktops).
Comment 5 Vlad Zahorodnii 2023-01-19 13:24:17 UTC
kwin doesn't implement STICKY. If you want a window to be shown on all virtual desktops, send a _NET_WM_DESKTOP client message with 0xFFFFFFFF as indicated in the EWMH spec.