-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wayland taskbar support #2031
Wayland taskbar support #2031
Conversation
Fixes CMake error
Heureka! In plasma session all 3 elements of lxqt-panel are working perfectly ;) just starting from cli. Less luck in openbox with kwin nested session (both cli and .desktop file in /usr/share/applications)
Maybe kwin needs more arguments, --no-kactivities and else. |
On my slower VM (neon-unstable) this works, but empty taskbar also in plasma-session |
Protocol access is not guarded yet. |
In kwin_wayland nested inside openbox I can reproduce crash if clicking show desktop button. |
Here I didn't install wip_qt6 of lxqt-qtplugin yet. I'm using this script to start openbox at the bottom line |
Just for the record: Only EDIT: seems a focus thing, if typing in the search first the favorites menu is adiacent at the panel: Another misalignment with bottom panel: |
Testing with labwc, no popup is shown as normal window, but some misalignment can be found, like the favorites menu close to the panel or directorymenu covering the panel on the right. AND: autohide working! labwc.mp4Crash when clicking showdesktop is here present too. |
Not working here :( EDIT: It works, I was using an old .desktop file
I have same popup issues and also "Open With" both from dolphin and from PCManFM-Qt does not work |
For future works:
So we could replace out color picker logic with XDG Portal equivalent |
No issue here with both filemanager. |
Launching |
Color picker now uses XDG Desktop Portal on Wayland. Pasting color to clipboard does not seem to work yet. |
Usually this is piped to wl-copy, to take inspiration. |
I noticed that kwin has no "shade" (roll up) feature anymore, I thought it was possible once. Only lawc has it afaik. |
StatusNotifierButton: switch to dbusmenu-lxqt
- Now returns floating point QPointF, should we keep it instead of rounding and do floating point calculations?
- QEyesPlugin: remove deprecated setMargin() call
TODO: check if syntax is correct and equivalent
Qt::AA_UseHighDpiPixmaps has no effect now
panel/lxqtpanel.cpp
Outdated
anchors.setFlag(LayerShellQt::Window::AnchorRight); | ||
mLayerWindow->setAnchors(anchors); | ||
|
||
mLayerWindow->setKeyboardInteractivity(LayerShellQt::Window::KeyboardInteractivityNone); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be KeyboardInteractivityOnDemand
otherwise typing in search and using arrow keys won't work in most compositors. See labwc/labwc#1594
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, and Ondemand
fixed also those popup opening as normal windows in add-favorites dialog, directorymenu, mount and else!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Thanks for the hint.
Here starting nested labwc with your startlxqtlabwc
script it doesn't solve the issue.
FancyMenu does not receive keyboard input. Anyway it's more correct now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be sure I've started labwc session directly from SDDM to double check.
I've also tried setting "Exclusive" keyboard focus.
Still not working.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need latest labwc, they fixed it today. pcmanfm-qt --desktop
had the same issue, no keyboard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pcmanfm-qt --desktop had the same issue, no keyboard.
Yes, the keyboard focus problem of pcmanfm-qt's desktop was also fixed by a patch. LabWC's devs are very fast.
Set layer shell keyboard interactivity on-demand
@gfgit Could you implement this for "Configure panel" window? With some help from @tsujan I did already stefonarch/lxqt-session@201d6ee |
I really think we need to avoid overusing layer-shell-qt. |
Hi, I was thinking the same thing. Isn't |
Yes.
@stefonarch has already taken care of it and waits for my Qt6 PR for lxqt-session to be merged (which should be merged only with other Qt6 PRs for components that depend on liblxqt, including lxqt-panel).
Stacking Wayland compositors have their options for that — for centering (default in LabWC) or not — and, IMHO, we should respect those options. |
It's ok if you don't use tiling WM like sway or hyprland where you need again window rules to make them float. I tested with the
sway
|
Tiling WMs need to fix their UX problems themselves. It's not our job to do their work for them ;) |
I know you dislike them ;) My opinion is this: if we can provide a good out-of-the-box experience we should do it. We pretend also being modular and to work with any WM/compositor. |
Being modular is one thing, adding codes to compensate for others' problems is another. The latter would make LXQt codes dirty and unmaintainable if we didn't avoid it. |
Trying to build again on Neon stable it fails here: https://paste.debian.net/1310396/ |
I see this happens if I compile directly this branch. If I compile first wip_qt6 branch it does compile. |
@gfgit Just learned that qmpanel has working taskbar support on wayland for wlroots-based compositors: https://github.com/jlindgren90/qmpanel/blob/master/panel/taskbar.cpp |
Isn't this supposed to just work™ with layer shell protocol on the panel which reserves screen space? |
It should and it's somehow an exception, as issues with alignment (tooltips, fancymenu dialog) can be seen only on bottom and right panels. I first thought it was about right panels only. |
I think it's worth filing a bug to affected tiling compositors and see if they can fix it. |
What compositor is that? If the panel is correctly configured to use the exclusive zone (and updates it on window resize), the window should likely not overlap the panel area. The protocol does not enforce that restriction though. It also says about the exclusive zone:
So that would mean if the panel is anchored to the top, right and bottom edges, the exclusive zone should be set to the panel width rather than height. |
It's labwc. I made a test assuming that wayfire had the same issue, but it behaves like kwin, centering this panel config dialog without rules. |
TryExec=lxqt-panel | ||
|
||
# NOTE: KWin wants absolute path here, make sure it's correct | ||
Exec=/usr/local/bin/lxqt-panel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the reason why only pager worked on arch.
This file has to be configured by cmake to match the installation path. Changing it to /usr/bin
kwin_wayland session is fully functional here now :)
Could have seen it earlier.
Do they really call it a feature or are you joking? The second problem of Plasma 6 that attracted my attention yesterday was its panel (under X11 — wasn't brave enough to log into its Wayland session). |
I put it first between " " but removed them as I'm trying to be polite;) |
Could this solve eventually the alignment issues in bottom/right panels? git://code.qt.io/qt/qtwayland.git:
|
Just another maybe useful snippet for alignment: |
Not sure what has changed - it was some time I didn't use kwin_wayland session, but can't get the taskbar to work now anymore. As it looks that the review of taskbar-refactor will take much time I think we should have a PR only for the panel wayland code for now. |
Replaced by #2043 |
Depends on #2024 (Qt6 port) and #2029 (WM abstraction)
This is an experimental implementation on taskbar, desktopswitch and showdesktop functionality for KWin Wayland compositor.
It uses following protocols:
org-kde-plasma-virtual-desktop
plasma-window-management
(Taken from plasma-wayland-protocols repository)
Code is inspired by libtaskmanager/waylandtasksmodel.cpp
Ideally the Wayland backend should have sub-backends targeting specific compositors when no standard protocol is available.
It also uses layer shell protocol to place panel on screen edge.
NOTE: panel auto-hide is not working yet