KDE Plasma add-on, that tiles your windows automatically and lets you manage them via keyboard, similarly to i3, Sway or dwm.
Go to file
Mikhail Zolotukhin 062352e1ae fix(wayland): 🔥 remove basicUnit and its usages
I honestly do not understand why is this needed, but it prevents running
script on Wayland session entierly. In the docs this parameter is marked
as unreliable anyway and we do not want to support non-crossplatform
features.

This will surely break something. I do not know what and when.
2021-09-23 13:50:04 +03:00
.github ci: 👷 add commit linting 2021-09-22 17:08:23 +03:00
.husky build: remove test pre-commit hook because it is slow 2021-09-09 00:16:48 +03:00
.reuse build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
bin fix: check plugin info after installation 2021-09-11 13:01:40 +03:00
img docs: 📝 add video demonstration 2021-09-17 21:24:27 +03:00
LICENSES build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
res feat: 🏗️ lean out the shortcuts definitions 2021-09-22 02:50:48 +03:00
src fix(wayland): 🔥 remove basicUnit and its usages 2021-09-23 13:50:04 +03:00
test test: add a few basic tests with mocks 2021-09-16 18:25:18 +03:00
.eslintrc.json build: 🚨 disable linting where we cannot do anyshing in the short term 2021-09-17 23:30:14 +03:00
.eslintrc.json.license build: mode eslint to a separate file 2021-09-09 00:16:48 +03:00
.git-blame-ignore-revs build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
.gitignore build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
.prettierignore build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
config.ts test: add a few basic tests with mocks 2021-09-16 18:25:18 +03:00
CONTRIBUTING.md docs: add contribution guidelines 2021-09-05 13:23:22 +03:00
package.json build: 🔧 fix eslint configuration 2021-09-17 19:23:58 +03:00
package.json.license build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
README.md docs: 📝 add video demonstration 2021-09-17 21:24:27 +03:00
tsconfig.json test: add a few basic tests with mocks 2021-09-16 18:25:18 +03:00
tsconfig.json.license build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
TWEAKS.md build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00

🌈 Bismuth

code style: prettier

Arrange your windows automatically and switch between them using keyboard shortcuts. All of that with different layouts and without a complicated setup of classic tiling window managers (i3, dwm or XMonad). Just install the script on any KDE Plasma powered Linux distribution and enjoy your computing! 🦾

script demo

This is a fork of Krohnkite. The fork was made, because the old project seems to be unmaintained.

🗺️ Goals

Project goals are the following:

  1. Provide full-fledged tiling window manager experience in KDE Plasma with minimal effort on user side
  2. Wayland support

🌟 Features

  • Automatic 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)

🔧 Installation

Install script via script:

npm install # Installs dependencies for building
npm run script-install

To uninstall:

npm run script-uninstall

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/bismuth/metadata.desktop ~/.local/share/kservices5/bismuth.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 Bismuth
  2. Apply
  3. tick Bismuth
  4. Apply

Tweaks

Proceed to the TWEAKS section.

⌨️ 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