All Projects → esjeon → Krohnkite

esjeon / Krohnkite

Licence: mit
A dynamic tiling extension for KWin

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Krohnkite

Awesome Config
📕 Example awesome wm configuration. Includes personalization support (personal.vim), theme, polyglot unicode taglists, mpd support.
Stars: ✭ 162 (-78.88%)
Mutual labels:  tiling-window-manager, tiling
shod
mouse-based window manager that can tile windows inside floating containers
Stars: ✭ 126 (-83.57%)
Mutual labels:  tiling, tiling-window-manager
Dewm
A pure go autotiling window manager written with literate programming
Stars: ✭ 225 (-70.66%)
Mutual labels:  tiling-window-manager, tiling
shod-old
hybrid (floating and tiling) tabbed window manager
Stars: ✭ 56 (-92.7%)
Mutual labels:  tiling, tiling-window-manager
gtile
No description or website provided.
Stars: ✭ 12 (-98.44%)
Mutual labels:  tiling, tiling-window-manager
Quicktile
Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)
Stars: ✭ 719 (-6.26%)
Mutual labels:  tiling-window-manager, tiling
axyl-iso
Axyl is a Linux distro centered on tiling window managers. Choose from i3, bspwm, dwm and more.
Stars: ✭ 348 (-54.63%)
Mutual labels:  tiling-window-manager
Workspacer
a tiling window manager for Windows
Stars: ✭ 486 (-36.64%)
Mutual labels:  tiling-window-manager
Protobuf-Dreamer
A tiled DeepDream project for creating any size of image, on both CPU and GPU
Stars: ✭ 39 (-94.92%)
Mutual labels:  tiling
swayfire
Sway/I3 inspired tiling window manager for Wayfire
Stars: ✭ 146 (-80.96%)
Mutual labels:  tiling-window-manager
Material Shell
A modern desktop interface for Linux. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.
Stars: ✭ 6,189 (+706.91%)
Mutual labels:  tiling-window-manager
Howm
A lightweight, X11 tiling window manager that behaves like vim
Stars: ✭ 619 (-19.3%)
Mutual labels:  tiling
Nog
A tiling window manager for Windows
Stars: ✭ 414 (-46.02%)
Mutual labels:  tiling-window-manager
tiler
N-dimensional NumPy array tiling and merging with overlapping, padding and tapering
Stars: ✭ 26 (-96.61%)
Mutual labels:  tiling
Taffybar
A gtk based status bar for tiling window managers such as XMonad
Stars: ✭ 502 (-34.55%)
Mutual labels:  tiling-window-manager
neural-dream
PyTorch implementation of DeepDream algorithm
Stars: ✭ 110 (-85.66%)
Mutual labels:  tiling
Herbstluftwm
A manual tiling window manager for X11
Stars: ✭ 635 (-17.21%)
Mutual labels:  tiling
Deb Dots
Debian GNU/Linux dot files.
Stars: ✭ 49 (-93.61%)
Mutual labels:  tiling-window-manager
Kwin Quarter Tiling
An easy tiling script for KWin
Stars: ✭ 354 (-53.85%)
Mutual labels:  tiling
River
A dynamic tiling wayland compositor
Stars: ✭ 513 (-33.12%)
Mutual labels:  tiling

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 reactivated:

  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

Note: You might also need to set the border size larger than the theme's default: System Settings > Application Style > Window Decorations: Untick Use theme's default window border size and adjust the size (right from the checkbox).

Setting Minimum Geometry Size

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.

  1. System Setting > Window Management > Window Rules
  2. Click on + Add New...
  3. Set Window class to be Unimportant
  4. Set Window types to Normal Window
  5. Click + Add Properties...
  6. Add the Minimum Size Property
  7. Set the fields to Force and 0 x 0
  8. Apply

Useful Development Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].