Skip to content

Attempt at approximating window-tabbing with KWin. Based on this TypeScript template for kwin scripts: https://github.com/RubixDev/kwin-typescript-template

License

Notifications You must be signed in to change notification settings

Aziroshin/kwin-window-tabbing

Repository files navigation

kwin-window-tabbing

An attempt at window tabbing for KWin. Currently in its initial stage of development and not yet usable.

Based on this TypeScript KWin scripting template and type definitions by RubixDev. Refer to their READMEs, especially section 5 of the template.

What Works:

  • Adding windows to a group using a shortcut.
  • All windows in a group getting resized in unison.

Setup

Notes

  • If you use nvm, there's an .nvmrc.
  • Run npm i to install the required dependencies.
  • The KWin script sources are in contents/src.
  • npm run dbus_printer will start a DBus service the KWin script may print to using dbg.log, dbg.info or dbg.debug.
  • npm run start will recompile/load the script.

NPM Scripts

lint

Checks the source files for errors using tsc

compile

Compiles the TypeScript source files to a single main.js without checking for errors

package

Packages the compiled script to a single .kwinscript file. Use the .pkgignore file to specify files and folders of the root level to exclude

install

Installs the packaged script to your system

run

Enables the installed script and starts it. The output can be seen via journalctl -f

status

Shows the current install & load status of the script.

dbus_printer

Starts a DBus service that prints the messages it receives to the console. The source can be found here. To send messages to it from the KWin script, either use dbg.log("example"), dbg.info("example") or dbg.debug("example"). An example of how to send messages to it from the command line can be found here.

publish

Executes these scripts:

  1. lint
  2. compile
  3. package

start

Executes these scripts:

  1. lint
  2. compile
  3. package
  4. install
  5. run

uninstall

Fully stops and removes the installed script from your system

update-metadata

Copies following information from the package.json to the metadata.desktop:

  • displayName
  • description
  • main
  • author
  • name
  • version

About

Attempt at approximating window-tabbing with KWin. Based on this TypeScript template for kwin scripts: https://github.com/RubixDev/kwin-typescript-template

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published