-
Notifications
You must be signed in to change notification settings - Fork 134
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
Wlroots taskbar #2046
Wlroots taskbar #2046
Conversation
This is an abstract interface to operate windows and workspaces
- Move WindowProperty enum to lxqttaskbartypes.h
This model will manage the tasks shown
Also use it to get window icon
- Don't rely on global screen coordinates - This will be needed for future Wayland port, Where we don't have global screen coordinates - Keep compatible behavior on X11
This new window propery flag is needed to notify geometry changes
- It is now a global instance
This will be used to avoid crashing panel in case no backend could be created. A warning message will be printed in this case.
- Add NoDisplay=true to .desktop file
83634a0
to
1fc5594
Compare
Tried to compile this but:
//EDIT: Wrote a little patch which fixes these compiler errors:
Now I'm facing some warnings (unused variables and stuff like that) and a linking error:
|
No idea what's going wrong at your side - no issues compiling it here, except those warnings you mentioned. @marcusbritanicus may have better insight. |
@stefonarch Strangely, @V10lator is right. I can compile it on my system as well, but if you look into my sources, you'll find that the enum |
Sure, but it's good having more eyes on it, thanks @V10lator ! |
@marcusbritanicus I've created a basic plugin infrastruture, see #2075 |
1fc5594
to
1a1691c
Compare
@gfgit I had a cursory glance at the code. It looks good. I liked the idea of ILXQtBackendLibrary. Now that you've created the backend library, I'll close this PR. I'll create a fresh one incorporating a few simplifications for the wlr generic backend. I'll make another one for Wayfire. PS: I'll be busy this month. But, I'll start the work right away, though the progress will be a bit slow. |
@marcusbritanicus |
Sure, I will review it. |
4301ecf
to
ad5cf4a
Compare
If it's not to much hassle fixing the issues here would be fine IMO - as it's the only working wayland panel we have in git atm. |
I can't see anything, but good to hear that things are moving :) |
Looks like labwc will implement cosmic-workspace-unstable-v1 for workspaces: So maybe this will allow us to build also a labwc backend at some point I think. |
It is worth working on this. There is an old PR in wayland-protocols, and Cosmic is the one working on it. Once it merges, it is likely that wayfire will also adopt it. After all, the original protocol was proposed by ammen99. |
Note that labwc will only implement version 1 of the protocol, and only listing + activating workspaces (e.g. not allowing clients to create / remove them). Due to the capabilities system within the protocol that should not be an issue though as clients can simply hide corresponding actions from the user if the given compositor does not support them. Version 2 added a rename request and a ominous
The key here is the word "once". I'd prefer to not wait another 3 years. |
This PR adds a generic wlroots backend support for the the taskbar and desktop-switcher plugins.
@gfgit: I took lxqt-panel:git, then merged #2041 and #2043. I hope this is what I was supposed to do. If something's amiss, please do let me know.
One of the issues we face is the wlroots backend does not support virtual desktops. However, various compositors (wayfire, sway, hyprland, etc) have their own mechanisms to provide this feature.
So it would be beneficial if we provide per-compositor support. As discussed in #2531, the best way forward is to develop a plugin interface for the wayland backend. Currently, I have the following structure in mind:
Few points:
lxqtwaylandbackend.cpp
should attempt to detect the DE and load the suitable plugin. The DE detection can be based on a user settings orXDG_CURRENT_DESKTOP
.lxqtwaylandbackend.cpp
will be used).Changes made:
panel/backends/wayland/
topanel/backends/wayland/plasma
panel/backends/wayland/wlroots
implements the wlroots backend.panel/lxqtpanelapplication.cpp
to use only wlroots backend. (This needs to be fixed)Current state:
Note: For the purpose of our discussion here, by "non-wlroots compositor", what I mean is a compositor that does not implement wlr-foreign-toplevel protocol.
cc: @stefonarch @tsujan