Multi-monitor and Smart Keybinds#197
Open
leonjbdb wants to merge 13 commits into
Open
Conversation
…ions for smart hotkey direction
…, drag to top of screen for fullscreen
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I really like this addon to KDE Plasma, as it did almost everything I personally want of control on my computer. Being recent in using Linux I haven't gotten it fully to my liking yet.
So I made some minor changes here in the following commits:
Multi-monitor layout support
You can now add an optional value to a layout in the json file that allows you to bind it exclusively to 1 monitor. By not using this variable, it works as before, binding to both monitor. This is especially useful if you have one or more monitors with different orientations and sizes, where the layout you want there aren't necessarily the same as the other monitors. It's set up so that you can share them across a specific list of monitors, not just one.
Separate pull request for this feature alone can be found here:
#196
Smart Keybinds
This was a bit more work, but I wanted a more "Windows-like" experience, where using
Meta + Arrowwas more like on Windows, but I wanted it smarter than how it is on other operating systems, so I thought "Why not tie it to the zones that we create", this gives even more flexibility on how they work.This is off by default, but can be enabled in the settings panel.
It supports adding a ignore to specific layouts or zones, so they aren't included when moving a window around using the meta keys.
I also tried to make it feel as natural as possible, adding memory and other features to make it behave as you'd expect.
Drag up for fullscreen
This is a feature supported by KDE by default, but I simply didn't like it having a different look, so I added it here separately, with a toggle to enable/disable.
Better OSD
The OSD had a standard icon and name, which annoyed me, so I created a custom OSD that shows the layout properly, so that it would display the layout properly, making a glance needed, without looking at the text. This is theme-aware like the rest of KZones.
Better sizing history
I get really annoyed when windows don't properly remember their size after going into fullscreen or snapping to a shape on my monitor, so I reworked the logic here to better persist.
Final notes
The code is primarily written using Claude Opus 4.7 Max, whilst being peer reviewed by myself.