lxqt-panel icon indicating copy to clipboard operation
lxqt-panel copied to clipboard

Initial Window Manager backend plugin infrastructure

Open gfgit opened this issue 1 year ago • 6 comments

Hello, This is a possible Window Manager backend managing code and plugin infrastructure.

  • ILXQtTaskbarAbstractBackend becomes ILXQtAbstractWMInterface
  • Every backend is contructed by a ILXQtWMBackendLibrary subclass factory
  • Backends are installed in ${PLUGIN_DIR}/backend folder

We could put CMake code in a macro like it's done for panel plugins

gfgit avatar Jul 09 '24 13:07 gfgit

I'm copying this comment from #2043 so that it does not get lost.

We want to let user develop an independent plugin for an exotic WM and it will be selected in some way at runtime.

That sounds too ambitious to me, especially because Wayland WMs come and go and there's no guarantee that they're shell-compatible, but if you and @marcusbritanicus could execute this plan with a reasonable amount of code and without extra dependencies, who am I to disagree? ;)

I think Qt first checks QT_QPA_PLATFORM, then it checks XDG_SESSION_TYPE and something else. As far as I have seen, LXQt does not use env vars for most works.

We can use a mix of hard-coded values (majority) and plugin settings.

  • The X11/Wayland detection will be hard-coded.
  • On the wayland side, support form Plasma will be hard coded. The plasma protocol is complete, custom plugins will not add any value.
  • The compositor detection will be hard-coded - we will respect XDG_CURRENT_DESKTOP.
  • For a support compositor, we will load the plugin designed by us. For now, the only DE support we can provide is wayfire. Eventually, we might be able to add support for sway and Hyprland as well.
  • If any user wants to use their plugin, they can override it using a setting in the plugins.
TaskBarBackendOverrides = Wayfire:my-wayfire-plugin, Hyprland:some-other-plugin, sway:wlroots, generic:my-wlroots-plugin
  • Fallback will be the generic wlroots plugin, until wayland protocols are ready.

marcusbritanicus avatar Jul 09 '24 17:07 marcusbritanicus

Afaik the comments are visible only to the author until "Finish your review" is clicked.

stefonarch avatar Jul 23 '24 16:07 stefonarch

I thought so. I had added a few comments, and yesterday I did the "Finish your review" only to notice later that my comments had gone missing. I perhaps did something wrong.

marcusbritanicus avatar Jul 24 '24 03:07 marcusbritanicus

Will it be done in September?

ffs-akl avatar Aug 13 '24 14:08 ffs-akl

Will it be done in September?

@knm100 If you wish to test, you can use this: https://github.com/LXQt-Marcus-Fork/lxqt-panel/tree/wlroots_backend_patched

marcusbritanicus avatar Aug 20 '24 06:08 marcusbritanicus

Will it be done in September?

@knm100 If you wish to test, you can use this: https://github.com/LXQt-Marcus-Fork/lxqt-panel/tree/wlroots_backend_patched

Thank you, I will try this branch

ffs-akl avatar Aug 20 '24 06:08 ffs-akl