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

7
Score 81.9%
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/
cp ~/.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)
  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.6.1 Release 13 days 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

10

p135246

1 month 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

1 month 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

3 months ago

9 9 excellent!!

Report

10

mighty-michelangelo

3 months ago

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

Report

10

rbelem

4 months ago

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

Report

9

bimlas

6 months 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

10 months ago

9 +

Report

9

4ty2

10 months 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

9

murlakatamenka

1 year ago

9 + Thank you very much, good job! <3

Report

9

frag

1 year ago

9 +Good job!

Report

v0.6.1 Release 13 days 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 22 days 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 10 months 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
93
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
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.6.1
updated Feb 08 2020
added Dec 24 2018
downloads 24h
36
mediaviews 24h 0
pageviews 24h 31