leukipp / cortile

Linux auto tiling manager with hot corner support for Openbox, Fluxbox, IceWM, Xfwm, KWin, Marco, Muffin, Mutter and other EWMH compliant window managers using the X11 window system. Therefore, this project provides dynamic tiling for XFCE, LXDE, LXQt, KDE and GNOME (Mate, Deepin, Cinnamon, Budgie) based desktop environments.
MIT License
527 stars 18 forks source link

Extended external communication via D-BUS #51

Open leukipp opened 2 months ago

leukipp commented 2 months ago

External communication with cortile was implemented via unix domain sockets as discussed here https://github.com/leukipp/cortile/issues/14#issuecomment-1558112799.

The current implementation has some caveats, as it works in an asynchronous way. You have to listen for return values while you are requesting a state from cortile.
There were also feature requests that were either impossible to add or require extensive programming skills and knowledge of the X window backend.

To address these issues, I have opted to introduce a more efficient approach that uses quasi-synchronous interaction with cortile via D-BUS. Given that tray icon communication already relies on D-BUS, this change introduces no new dependencies.

For those who have developed custom event handlers/hook-up logic for cortile, I recommend transitioning to the new API as soon as possible. The forthcoming external communication via D-BUS will supersede the now deprecated unix domain socket approach.

Details regarding the new D-BUS API will be published here and in the README.md file.

leukipp commented 3 weeks ago

Starting with v2.5.0 dbus communication was unofficially added.

It`s still work in progress, but early beta testers may already have a look into it via running a separate cortile instance:

cortile dbus -help

There are also plans to allow custom cortile-addons for the broader community, by using a python wrapper package.