A dynamic tiling extension for KWin 6 only.
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.

org.kde.kglobalaccel path - /component/kwin method - org.kde.kglobalaccel.Component.cleanUp. ArchLinux example:qdbus6 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.x.x.kwinscript file, and install it through
System Settings.
System Settings > Window Management > KWin ScriptsImport KWin script... on the top-right cornerAlternatively, through command-line: get info about package:
kpackagetool6 -t KWin/Script -s krohnkite
install:
kpackagetool6 -t KWin/Script -i krohnkite-x.x.x.x.kwinscript
upgrade:
kpackagetool6 -t KWin/Script -u krohnkite-x.x.x.x.kwinscript
uninstall:
kpackagetool6 -t KWin/Script -r krohnkite
Make sure you have go-task, npm and 7-zip packages installed. All packages after building will be in builds folder.
The simplest method to automatically build and install kwinscript package would be:
go-task install
You can also build .kwinscript package file using:
go-task package
uninstall package:
go-task uninstall
[myNamE] will float or ignore all windows with class or resource names such: 'myname1', 'Myname2', 'Notmyname555' etc...
Rules->Screen default layout. Layout configuration has format OutputName:ActivityId:VirtualDesktopName:layoutName multi monitor example: HDMI-A-1:99a12h44-e9a6-1142-55eedaa7-3a922a15ab08::columns,DP-2:spread,DP-3:Desktop 3:tile,:threecolumn - result will be:columns layout as default on monitor HDMI-A-1, only on activity with id:99a12h44-e9a6-1142-55eedaa7-3a922a15ab08, every Virtual Desktops on this activity.(if you specify activity id you have to to specify virtual desktop name or leave it blank)spreadlayout layout as default on monitor DP-2, every Activities, every Virtual Desktops;tilelayout layout as default on monitor DP-3, on every activity, only on virtual desktop with name Desktop 3threecolumnlayout layout as default on all monitors,all activities and all Virtual Desktops not covered by the previous rulesoutputName, activityId, VirtualDesktopName, layoutName:
Right after system boot run KSystemLogkrohnkiteKROHNKITE: starting the script string you will see one if you have one monitor or multiple lines: Screen(output):Screen Name,Desktop(name):Virtual Desktop Name,Activity:Activity Id,layouts: numbered layouts (the case doesn't matter,layout ending can be omitted): tilelayout, monoclelayout, columns, threecolumnlayout, spreadlayout, stairlayout, spirallayout, stackedlayout, floatinglayout, btreelayoutApply -> reboot
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 + \ | Next Layout |
| Meta + | | Previous 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:System Settings > Window Management > Window Behavior > Multiscreen Behaviour
OR use console commands:
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key ActiveMouseScreen false
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key SeparateScreenFocus true
Switch 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 DecorationsConfigure Breeze inside the decoration preview.Window-Specific Overrides tab > Add buttonOk:
Regular expression to match: .*Hide window title barChanging the border color makes it easier to identify current window. This is convinient if title bars are removed.
frame=R,G,BinactiveFrame=R,G,BSome 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 UnimportantWindow types to Normal Window+ Add Properties...Minimum Size PropertyForce and 0 x 0When 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 UnimportantWindow 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.106 followers · starred Aug 2025
468 followers · starred Mar 2025
159 followers · starred Aug 2025
848 followers · starred Sep 2024
A dynamic tiling extension for KWin 6 only.
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.

org.kde.kglobalaccel path - /component/kwin method - org.kde.kglobalaccel.Component.cleanUp. ArchLinux example:qdbus6 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.x.x.kwinscript file, and install it through
System Settings.
System Settings > Window Management > KWin ScriptsImport KWin script... on the top-right cornerAlternatively, through command-line: get info about package:
kpackagetool6 -t KWin/Script -s krohnkite
install:
kpackagetool6 -t KWin/Script -i krohnkite-x.x.x.x.kwinscript
upgrade:
kpackagetool6 -t KWin/Script -u krohnkite-x.x.x.x.kwinscript
uninstall:
kpackagetool6 -t KWin/Script -r krohnkite
Make sure you have go-task, npm and 7-zip packages installed. All packages after building will be in builds folder.
The simplest method to automatically build and install kwinscript package would be:
go-task install
You can also build .kwinscript package file using:
go-task package
uninstall package:
go-task uninstall
[myNamE] will float or ignore all windows with class or resource names such: 'myname1', 'Myname2', 'Notmyname555' etc...
Rules->Screen default layout. Layout configuration has format OutputName:ActivityId:VirtualDesktopName:layoutName multi monitor example: HDMI-A-1:99a12h44-e9a6-1142-55eedaa7-3a922a15ab08::columns,DP-2:spread,DP-3:Desktop 3:tile,:threecolumn - result will be:columns layout as default on monitor HDMI-A-1, only on activity with id:99a12h44-e9a6-1142-55eedaa7-3a922a15ab08, every Virtual Desktops on this activity.(if you specify activity id you have to to specify virtual desktop name or leave it blank)spreadlayout layout as default on monitor DP-2, every Activities, every Virtual Desktops;tilelayout layout as default on monitor DP-3, on every activity, only on virtual desktop with name Desktop 3threecolumnlayout layout as default on all monitors,all activities and all Virtual Desktops not covered by the previous rulesoutputName, activityId, VirtualDesktopName, layoutName:
Right after system boot run KSystemLogkrohnkiteKROHNKITE: starting the script string you will see one if you have one monitor or multiple lines: Screen(output):Screen Name,Desktop(name):Virtual Desktop Name,Activity:Activity Id,layouts: numbered layouts (the case doesn't matter,layout ending can be omitted): tilelayout, monoclelayout, columns, threecolumnlayout, spreadlayout, stairlayout, spirallayout, stackedlayout, floatinglayout, btreelayoutApply -> reboot
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 + \ | Next Layout |
| Meta + | | Previous 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:System Settings > Window Management > Window Behavior > Multiscreen Behaviour
OR use console commands:
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key ActiveMouseScreen false
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key SeparateScreenFocus true
Switch 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 DecorationsConfigure Breeze inside the decoration preview.Window-Specific Overrides tab > Add buttonOk:
Regular expression to match: .*Hide window title barChanging the border color makes it easier to identify current window. This is convinient if title bars are removed.
frame=R,G,BinactiveFrame=R,G,BSome 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 UnimportantWindow types to Normal Window+ Add Properties...Minimum Size PropertyForce and 0 x 0When 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 UnimportantWindow 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.106 followers · starred Aug 2025
468 followers · starred Mar 2025
159 followers · starred Aug 2025
848 followers · starred Sep 2024