## Summary
Fixes Monocle Layout with `Minimize Unfocused Windows` (internally `config.monocleMinimizeRest`) option enabled.
Restores previous functionality (before Wayland patches) and adds
* minimize inactive windows only on same monitor with multimonitor setup
* can switch windows with focus-changing `Actions`
* switches to the next window when closing the active window (still a little buggy in multimonitor, but a big improvment)
* handles moving window onto a `Surface` with this layout properly
## UI Changes
Removed "(WIP)" from "Minimize unfocused windows" option in the config UI.
## Test Plan
1. Reload script
2. Verify all behavior in the Summary
## Related Issues
Closes#43, #55
It does not work for some reason. Using timer is not a good idea and if
we a bound to do so, it is better to create destinct ones in the qml
itself instead of using arbitary number of ones with singleton.
This will potentially break the code in places, where timer was used. We
need to test it and provide distinct timer in QML, which are working.
Mouse poller does not work on Wayland anyway. It uses xdottool, which
does not work on Wayland.
This will break the setup of the users, who used the config setting to
use xdotool
I honestly do not understand why is this needed, but it prevents running
script on Wayland session entierly. In the docs this parameter is marked
as unreliable anyway and we do not want to support non-crossplatform
features.
This will surely break something. I do not know what and when.
Using description strings for configuration was unsafe: we could
potentially introduce forbidden characters. Also if we wanted to change
she description of the shortcut, we would break the shortcut
configuration on the user side. Now it is only possible with the change
of the unique config string.
BREAKING CHANGE: This will obviously break the existing shortcuts. But
we are introducing this change along with the previous one, that breaks
the shortcut configuration anyway.
This completely changes how are shortcuts are interpreted by the script.
Instead of using the complicated system, where up, down, left and right
keys (hjkl) were used dynamically depended on the mode (directional,
dwm), we just put all the possible shortcuts in the list. This increases
the user's flexibility to bind shortcuts however they want and also
reduces the code complexity.
Since this change breaks the existing shortcuts for the user anyway
and we are currently earlier in the development, it makes sense
to break shortcuts entirely, to we also break the naming scheme.
BREAKING CHANGE: This completely breaks existing shortcuts. Users need
to remove all the existing shortcuts from config file and relogin into
the session immediately. After that, the new set of shortcuts will be
visible in the UI.