Krohnkite Original

Kwin Scripts kwin tiling

Source (link to git-repo or to original if based on someone elses unmodified work): https://www.opencode.net/esjeon/krohnkite

13
8 .8
Description:

Kröhnkite

AUR-git

A dynamic tiling extension for KWin.

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.

screenshot

Features

  • DWM-like window tiling
    • Dynamically tile windows, rather than manually placing each.
    • Floating windows
  • Fully integrates into KWin features, including:
    • Multi-screen
    • Activities & Virtual desktop
    • Basic window management (minimize, fullscreen, switching, etc)
  • Multiple Layout Support
    • Tiling layout
    • Monocle layout
    • Desktop-friendly layouts (Spread, Stair)

Development Requirement

  • Typescript (tested w/ 3.1.x)
  • GNU Make
  • p7zip (7z)

Installation

You can install Kröhnkite in multiple ways.

Using .kwinscript package file

You can download krohnkite-x.x.kwinscript file, and install it through System Settings.

  1. Download the kwinscript file
  2. Open System Settings > Window Management > KWin Scripts
  3. Press Import KWin script... on the top-right corner
  4. Select the downloaded file

Alternatively, through command-line:

plasmapkg2 -t kwinscript -i krohnkite.kwinscript # installing new script
plasmapkg2 -t kwinscript -u krohnkite.kwinscript # upgrading existing script

To uninstall the package:

plasmapkg2 -t kwinscript -r krohnkite

Installing from Git repository

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.

Simply Trying Out

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.

Enabling User-Configuration

It is reported that a manual step is required to enable user configuration of KWin scripts. This is a limitation of KWin scripting.

To enable configuration, you must perform the following in command-line:

mkdir -p ~/.local/share/kservices5/
ln -s ~/.local/share/kwin/scripts/krohnkite/metadata.desktop ~/.local/share/kservices5/krohnkite.desktop

A configuration button will appear in KWin Scripts in System Settings.

config button shown

To make changes effective, the script must be reactivate:

  1. On KWin Scripts dialog, untick Krohnkite
  2. Apply
  3. tick Krohnkite
  4. Apply

Default Key Bindings

Key Action
Meta + J Focus Down/Next
Meta + K Focus Up/Previous
Meta + H Left
Meta + L 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

Tips

Setting Up for Multi-Screen

Krohnkite supports multi-screen setup, but KWin has to be configured to unlock the full potential of the script.

  1. Enable Separate Screen Focus under Window Management > Window Behavior > Multiscreen Behaviour
  2. Bind keys for global shortcut Switch to Next/Previous Screen (Recommend: Meta + , / Meta + .)
  3. Bind keys for global shortcut Window to Next/Previous Screen (Recommend: Meta + < / Meta + >)

Note: Separate Screen Focus appears only when multiple monitors are present.

Removing Title Bars

Breeze window decoration can be configured to completely remove title bars from all windows:

  1. System Setting > Application Style > Window Decorations
  2. Click Configure Breeze inside the decoration preview.
  3. Window-Specific Overrides tab > Add button
  4. Enter the followings, and press Ok:
    • Regular expression to match: .*
    • Tick Hide window title bar

Changing Border Colors

Changing the border color makes it easier to identify current window. This is convinient if title bars are removed.

  1. Open ~/.config/kdeglobals with your favorite editor

  2. Scroll down and find [WM] section

  3. Append the followings to the section:

    • frame=61,174,233: set the border color of active window to RGB(61,174,233)
    • inactiveFrame=239,240,241: set the border color of inactive window to RGB(239,240,241)

    Here's a nice 2-liner that'll do it for you:

     kwriteconfig5 --file ~/.config/kdeglobals --group WM --key frame 61,174,233
     kwriteconfig5 --file ~/.config/kdeglobals --group WM --key inactiveFrame  239,240,241
  4. You must restart your session to see changes. (i.e. re-login, reboot)

(Note: the RGB values presented here are for the default Breeze theme)

Useful Development Resources



Last changelog:

v0.8 Release 2 months ago

* Fix master-stack ratio in TCL layout with only 2 windows
* Fix left-stack adjustment in TCL layout
* Support KWin-native maximization (WIP)
* Use separate layouts by default
* Properly handle windows started in fullscreen
* Move & resize floating windows w/ shortcuts
* (option) Put new window as master

9

macdo

23 hours ago

9 Hi, I love it, but i wonder if there is an option / shortcut to enable and disable the script.
Thanks in advance and keep going!!

Report

10

carlis

1 month ago

10 10 the best. This is the best tiling script for kde I've found. The most full featured, the stablest, and the only one I've found compatible with dynamic workspaces. I have a suggestion. I'll truly appreciate an option to toggle maximized windows being in top of the others. This behavior makes the user unable to access the panel from a maximized window among to other things, for example, some secondary windows of a program could remail below the main one if the last one is maximized. The only way to workaround this I've found is using fullscreen instead of maximization, where that property is not applied. Which is kind of curious because, you know, a fullscreen window is "more maximized than a maximized window" XD. That's all and thank you for all the effort.

Report

10

assher

1 month ago

10 10 the best

Report

10

rp42

2 months ago

10 10 the best. Great so far. Best tiling extension I've used.

Report

gustavo-hms

2 months ago

It's a very good plugin. Nevertheless, I would like to ask you to reconsider having hardcoded key bindings and put everything in the Plasma Global Shortcuts dialog to make them reconfigurable. I use Meta+Return to open Konsole but, once I install this plugin, I can't use this key binding anymore. I can't change it in the Plasma Global Shortcuts dialog. I can't change it at all. And even if I disable the plugin or uninstall it, the hardcoded key binding apparently remains, since I can't use it to open Konsole anymore.

Report

9

kostas1507

2 months ago

You can change the key-binds through the kwin shortcuts tab in global shortcuts mate!

Report

10

rokre22

2 months ago

10 10 the best

Report

9

kostas1507

3 months ago

9 9 excellent! only missing a toggle gaps shortcut and fibonacci tilling mode

Report

9

kostas1507

3 months ago

Very close to perfect! I'm only missing a "toggle gaps" functionality that exist in other such scripts... Thank you.

Report

9

kostas1507

3 months ago

Update, I'm stupid! I didn't actually read the whole guide and I didn't realize that there was a configuration panel, so you actually can get gaps... although I would like being able to toggle gaps with a shortcut!

Report

10

jackchealdang

3 months ago

10 10 the best

Report

10

mmberlin

4 months ago

Is there any way to create a window decoration for toggling float (Meta+F)?

Report

C

esjeon

4 months ago

Sorry, but it's not possible. KWin API does not provide enough functionality for that, so no scripts can do that.

Report

10

mmberlin

4 months ago

10 10 the best tiling script. Tried others and they all broke kwin.

Report

10

brdlaw

5 months ago

10 10 Favorite tiling script on KDE by far. Miles better than the others.

Report

10

p135246

7 months ago

10 Wonderful, please, keep developing! For me, there are now two options and I am shifting towards the first: 1) KDE with Krohnkite, 2) No desktop manager and dwm. If all functionality is added, I do not see any reason to prefer 2) over 1) on a modern desktop. One can work effectively as in dwm and have the mainstream desktop manager kde as backup for testing, compatibility with new technologies and not so frequent tasks.

Report

9

kloss

7 months ago

9 9 excellent
Much better than https://github.com/lingtjien/Grid-Tiling-Kwin
That would be nice to have a documentation less terse than the Github readme.

Report

9

thoth432

8 months ago

9 9 excellent!!

Report

10

mighty-michelangelo

9 months ago

10 You made a dream come true. This really, really works.

Report

10

rbelem

10 months ago

10 Easy to remember shortcuts and fits well with my current ones.

Report

9

bimlas

1 year ago

9 For a while I used AwesomeWM, where I really liked tiling window management, but I missed KDE's capabilities. Thanks to the script I can now use the best of both worlds!

Report

S2 9

l4k1

1 year ago

9 +

Report

9

4ty2

1 year ago

9 + Very good script and useful!

Although it would be nice to see the new windows form a golden ratio, not stack in rows. But that's just preference

Report

9

sjamaan

1 year ago

9 +This is amazing!

Report

9

molecule-eye

1 year ago

9 +Nice!

Report

v0.8 Release 2 months ago

* Fix master-stack ratio in TCL layout with only 2 windows
* Fix left-stack adjustment in TCL layout
* Support KWin-native maximization (WIP)
* Use separate layouts by default
* Properly handle windows started in fullscreen
* Move & resize floating windows w/ shortcuts
* (option) Put new window as master

v0.7 Release 5 months ago

* Improved "No Border" state management
* Deprecating "Cycle Layout" shortcut, in favor of "Next/Previous Layout"
* Directional swap - move window to left/right/up/down
* Toggling Monocle layout - press shortcut once to activate Monocle layout, once more to return to the previous layout.
* Optional window width limit, relative to the height of screen.

v0.6.1 Release 6 months ago

This is a bugfix release.

#### Bugfix
* set "Keep Above" for new floating windows
* fix adjustment of Three-Column layout when master > 1

#### Minor Changes
* improve Three-Column layout master ratio handling

v0.6 Release 6 months ago

#### New features
* Grow/Shrink Window shortcut: resizes window (tiled only, for now)
* Float All shortcut: toggles float on all visible windows
* Floating Layout: floats all window, practically disables tiling logic
* Three-Column Layout: a layout for wider monitors (e.g. 21:9)

#### Major changes
* Individually resizable windows (if layout supports it)
* Quarter layout kicks new windows to next desktop if the current desktop is full
* Swap windows by dragging w/ mouse
- (optional hack) Improve swapping by using actual mouse coordinate (disabled by default)
* Configurable HJKL behavior: either dwm-like(default) or i3-like(WIP)
* Popup notification when switching layout

#### Minor changes
* More precise geometry calculation to prevent minor wobblying
* Prevent windows from protruding from its screen.
* No more "Keep Below". Instead, floating windows are kept above.
* Windows can be ignored based on its role (`WM_WINDOW_ROLE`).
* Tons of internal refactoring...

v0.5 Release 1 year ago

* feature: live-adjust layout while resizing window
* bugfix: fix Tile layout gap (#34)
* bugfix: consider screen gaps during layout adjustment calculation
* bugfix: layout adjustment freezes the window being resized
* internal: windows now have explicit state, and actions during state transition are explicitly defined.
* internal: window can be in "free tile" state, which allows layouts to float tiles without affecting other layouts.
* refactoring: split KWin-specific code from main logic

v0.4 Release 1 year ago

* updated user configuration dialog.
* added "always maximize" option for Monocle layout
* ignore/float windows based on title (substring match)
* added option for skipping tiling in user-specified activity/screen
* implemented basic Quarter layout.
- Currently, only the layout works, and no automatic desktop management.
* regression: fixed the calculation of gaps b/w tiles
* bugfix: fixed weird gap in Tile layout
* bugfix: fixed resize increment calculation
* added timestamp to debug output

v0.3 1 year ago

* new feature: adjust Tile layout by resizing windows w/ mouse
* new feature: maximize the sole tileable window by removing screen gap and window titlebar/border
* feature removal: window jiggling hack - it does nothing
* bugfix: unnecessary gap b/w master and stack in Tile layout
* bugfix: moving focus out of ignored windows (e.g. yakuake)
* regression: fullscreen window is not occupying the whole screen

v0.2 Release 1 year ago

* Screen gaps can be configure per side
* Automatically float utility, dialog, splash windows
* An option for removing borders from tiled windows
* Direct shortcuts fro layouts
* Supports moving windows b/w screens with KWin shortcuts.
* Optional tile jiggling for forcefully unfreezing tiles
* Optional separate layouts for each desktop/activity
* Optional debug message printing
* Respect window resizing increment hint (e.g. terminals, emacs)
* Many fixes against window freezing issue

12345678910
1110
product-maker macdo 23 hours ago 9 excellent
Hi, I love it, but i wonder if there is an option / shortcut to enable and disable the script. Thanks in advance and keep going!!
product-maker carlis Jul 03 2020 10 the best
10 the best. This is the best tiling script for kde I've found. The most full featured, the stablest, and the only one I've found compatible with dynamic workspaces. I have a suggestion. I'll truly appreciate an option to toggle maximized windows being in top of the others. This behavior makes the user unable to access the panel from a maximized window among to other things, for example, some secondary windows of a program could remail below the main one if the last one is maximized. The only way to workaround this I've found is using fullscreen instead of maximization, where that property is not applied. Which is kind of curious because, you know, a fullscreen window is "more maximized than a maximized window" XD. That's all and thank you for all the effort.
product-maker assher Jun 26 2020 10 the best
10 the best
product-maker rp42 Jun 05 2020 10 the best
10 the best. Great so far. Best tiling extension I've used.
product-maker rokre22 May 20 2020 10 the best
10 the best
product-maker kostas1507 May 11 2020 9 excellent
9 excellent! only missing a toggle gaps shortcut and fibonacci tilling mode
product-maker jackchealdang Apr 27 2020 10 the best
10 the best
product-maker mmberlin Apr 09 2020 10 the best
10 the best tiling script. Tried others and they all broke kwin.
product-maker brdlaw Mar 09 2020 10 the best
10 Favorite tiling script on KDE by far. Miles better than the others.
product-maker p135246 Jan 07 2020 10 the best
Wonderful, please, keep developing! For me, there are now two options and I am shifting towards the first: 1) KDE with Krohnkite, 2) No desktop manager and dwm. If all functionality is added, I do not see any reason to prefer 2) over 1) on a modern desktop. One can work effectively as in dwm and have the mainstream desktop manager kde as backup for testing, compatibility with new technologies and not so frequent tasks.
product-maker kloss Jan 05 2020 9 excellent
9 excellent Much better than https://github.com/lingtjien/Grid-Tiling-Kwin That would be nice to have a documentation less terse than the Github readme.
product-maker thoth432 Nov 13 2019 9 excellent
9 excellent!!
product-maker mighty-michelangelo Oct 30 2019 10 the best
You made a dream come true. This really, really works.
product-maker rbelem Oct 08 2019 10 the best
Easy to remember shortcuts and fits well with my current ones.
product-maker bimlas Jul 29 2019 9 excellent
For a while I used AwesomeWM, where I really liked tiling window management, but I missed KDE's capabilities. Thanks to the script I can now use the best of both worlds!
product-maker l4k1 Mar 29 2019 9 excellent
+
product-maker 4ty2 Mar 23 2019 9 excellent
+ Very good script and useful! Although it would be nice to see the new windows form a golden ratio, not stack in rows. But that's just preference
product-maker sjamaan Feb 18 2019 9 excellent
+This is amazing!
product-maker molecule-eye Jan 28 2019 9 excellent
+Nice!
product-maker murlakatamenka Jan 20 2019 9 excellent
+ Thank you very much, good job! <3
product-maker frag Dec 25 2018 9 excellent
+Good job!
product-maker Base: 4 x 5.0 Ratings
Be the first to comment
bassamanator
Jul 04 2020
heimdall
Jul 02 2020
rp42
Jun 05 2020
csaratakij
May 24 2020
rokre22
May 20 2020
jackchealdang
Apr 27 2020
p135246
Jan 07 2020
thoth432
Nov 13 2019
rbelem
Oct 08 2019
airwolf776
Apr 29 2019
p4prik4
Feb 18 2019
merchanstaprimo
Jan 29 2019
murlakatamenka
Jan 20 2019
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
MIT License
version
0.8
updated May 31 2020
added Dec 24 2018
downloads 24h
60
mediaviews 24h 0
pageviews 24h 74