/kwin-tiling

Tiling script for kwin

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

kwin-tiling

Tiling script for kwin, based on Mathias Gottschlag’s version

Goals:

The purpose of this is to create a userfriendly tiling solution that

  • Integrates well with KDE Plasma
  • Works for the general case

More sophisticated users may prefer dedicated tiling window managers

  • Provides most of the advantages of a tiling WM in a fully composited environment

Window previews and effects alongside different tiling layouts

  • Does not require the user to delve into scripting to get a sane configuration

Features:

  • Four layouts, one with support for multiple “master” windows and another one with dynamic tiling capabilities (similar to i3wm’s)
  • Support for minimizing and unminimizing windows
  • Support for setting windows to floating or quitting tiling altogether, per-desktop (Meta+Shift+F11) and per-window (Meta-f) (“Meta” refers to the “super” or “windows” key here)
  • Support for a list of ignored windows in configuration (by class)
  • An option to start windows at the master position (like in xmonad)
  • Mouse resizing
  • Useractionsmenu and keybinding (Meta+f) for toggling tiling/floating
  • An option to turn off borders for tiled windows
  • A hotkey to tile once
  • Many bugfixes over mgottschlag’s version

Installation:

git clone https://github.com/kwin-scripts/kwin-tiling.git
cd kwin-tiling/
plasmapkg2 --type kwinscript -i .

or if updating

plasmapkg2 --type kwinscript -u .

Usage:

Install

Activate the script using kcmshell5 kwinscripts

Move windows around and see that they are tiled :-)

Resize windows to resize the tiles

Declare shortcuts (in Systemsettings->Shortcuts_and_Gestures->Global_Keyboard_Shortcuts) for resize, minimize and maximize operations.

Press Meta-Shift-PgUp or Meta-Shift-PgDn to switch the layout

Use the configuration menu (in System Settings->Window Management->KWin Scripts)

Comprehesive list of keyboard shorcuts:

ShortcutDefault Binding
Next Tiling LayoutMeta+Shift+PgDown
Previous Tiling LayoutMeta+Shift+PgUp
Toggle FloatingMeta+F
Toggle Border for all
Move Window LeftMeta+Shift+H
Move Window RightMeta+Shift+L
Move Window UpMeta+Shift+K
Move Window DownMeta+Shift+J
Toggle TilingMeta+Shift+f11
Tile now
Swap Window With MasterMeta+Shift+M
Resize Active Window To The LeftMeta+Alt+H
Resize Active Window To The RightMeta+Alt+L
Resize Active Window To The TopMeta+Alt+K
Resize Active Window To The BottomMeta+Alt+J
Increase Number Of MastersMeta+*
Decrease Number Of MastersMeta+_
Focus next tile
Focus previous tile
Swap with next tile
Swap with previous tile
I3: Set Wrap Horizontal Mode
I3: Set Wrap Vertical Mode
I3: Set Normal Mode
Move Window To New DesktopMeta+Shift+D
Dump ClientsMeta+Shift+Escape
Cycle RotationsMeta+Shift+R

Troubleshooting:

No configuration option is available for the KWin Scripts entry

  • As suggested by @BenoitZugmeyer,
    mkdir -p ~/.local/share/kservices5
    ln -s ~/.local/share/kwin/scripts/kwin-script-tiling/metadata.desktop ~/.local/share/kservices5/kwin-script-tiling.desktop