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 3277a21888 feat(wayland): 🔥 remove qmlSetTimer
It does not work for some reason. Using timer is not a good idea and if
we a bound to do so, it is better to create destinct ones in the qml
itself instead of using arbitary number of ones with singleton.

This will potentially break the code in places, where timer was used. We
need to test it and provide distinct timer in QML, which are working.
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
.vscode chore: 🔧 add vscode workspace config with wayland CC scope 2021-09-23 13:50:04 +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(wayland): 🔥 remove mouse poller 2021-09-23 13:50:04 +03:00
src feat(wayland): 🔥 remove qmlSetTimer 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