A dynamic tiling extension for KWin 6.
Kröhnkite is mainly inspired by dwm from suckless folks, and aims to provide rock solid stability while fully integrating into KWin.
The name of the script is from mineral Kröhnkite; it starts with K and looks cool.
qdbus org.kde.kglobalaccel /component/kwin org.kde.kglobalaccel.Component.cleanUp
xwaylandvideobridge,plasmashell,ksplashqml
You can install Kröhnkite in multiple ways.
You can download krohnkite-x.x.kwinscript
file, and install it through
System Settings.
System Settings
> Window Management
> KWin Scripts
Import KWin script...
on the top-right cornerAlternatively, through command-line:
kpackagetool6 -t KWin/Script -i krohnkite.kwinscript # installing new script
kpackagetool6 -t kwin/script -u krohnkite.kwinscript # upgrading existing script
To uninstall the package:
kpackagetool6 -t kwin/script -r krohnkite
The simplest method would be:
make install
make uninstall # to uninstall the script
This will automatically build and install kwinscript package.
You can also manually build package file using:
make package
The generated package file can be imported from "KWin Script" dialog.
Krohnkite can be temporarily loaded without installing the script:
make run
make stop
Note that Krohnkite can destroy itself completely once it is disabled, so no restart is required to deactivated it.
krohnkite
KROHNKITE: starting the script
string you can see one if you have one screen or multiple strings: Screen(output):SCREEN_NAME numbered layouts...Rules->Screen default layout
and type YOUR_SCREEN_NAME:LAYOUT_ID
for example: HDMI-A-1:2,DP-2:7
, or if you have multiple Virtual Desktop
on screen you can write SCREEN_NAME:DESKTOP_NAME:LAYOUT_ID
. More examples: :2
- makes layout#2 default on all screens, :Desktop 1:2
- makes layout#2 default on all desktops with name Desktop 1
Apply
-> reboot
Video: assign default layer for screen
Ignore
buttonkrohnkite
Key | Action |
---|---|
Meta + . | Focus Next |
Meta + , | Focus Previous |
Meta + J | Focus Down |
Meta + K | Focus Up |
Meta + H | Focus Left |
Meta + L | Focus Right |
Meta + Shift + J | Move Down/Next |
Meta + Shift + K | Move Up/Previous |
Meta + Shift + H | Move Left |
Meta + Shift + L | Move Right |
Meta + I | Increase |
Meta + D | Decrease |
Meta + F | Toggle Floating |
Meta + \ | Cycle Layout |
Meta + Return | Set as Master |
Meta + T | Use Tile Layout |
Meta + M | Use Monocle Layout |
unbound | Use Spread Layout |
unbound | Use Stair Layout |
Krohnkite supports multi-screen setup, but KWin has to be configured to unlock the full potential of the script.
Separate Screen Focus
feature, the GUI controls are gone since KDE6, but the option is still accessible through the configs:
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key ActiveMouseScreen false
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key SeparateScreenFocus trueSwitch to Next/Previous Screen
(Recommend: Meta + ,
/ Meta + .
)Window to Next/Previous Screen
(Recommend: Meta + <
/ Meta + >
)Breeze window decoration can be configured to completely remove title bars from all windows:
System Setting
> Application Style
> Window Decorations
Configure Breeze
inside the decoration preview.Window-Specific Overrides
tab > Add
buttonOk
:
Regular expression to match
: .*
Hide window title bar
Changing the border color makes it easier to identify current window. This is convinient if title bars are removed.
Some applications like discord and KDE settings dont tile nicely as they have a minimum size requirement. This causes the applications to overlap with other applications. To mitigate this we can set minimum size for all windows to be 0.
System Setting
> Window Management
> Window Rules
+ Add New...
Window class
to be Unimportant
Window types
to Normal Window
+ Add Properties...
Minimum Size
PropertyForce
and 0
x 0
When a window is marked "maximized" in Breeze theme, its borders are removed to save screen space. This behavior may not be preferable depending on your setup. This can be mitigated by disabling maximized windows using Window Rules.
System Setting
> Window Management
> Window Rules
+ Add New...
Window class
to be Unimportant
Window types
to Normal Window
+ Add Properties...
Maximized horizontally
and Maximized vertically
Properties.Force
and No
.*.ui
files can be edited with Qt Designer.
It's very straight-forward if you're used to UI programming.