Skip to content
This repository was archived by the owner on May 9, 2025. It is now read-only.

nahoj/many

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

After a good 7-day run, this is going to the archive. Closing notes:

  • Sway would be a better choice than KWin for this. It is natively tiling, with a more "human" tiling style that allows just drag&dropping windows where one wants them. It also displays virtual desktops by default, which can act as tabs.
  • Intercepting a close event from the outside WM (xdg_toplevel.close) is difficult. On the other hand, it is possible to configure an outside WM (at least KWin) to prevent accidental closing of the nested WM. Then the Many WM could only be closed from the inside, thus in a more controlled way.
  • Clipboard issues remain.

Many is a terminal extended into a workspace with relevant widgets: text editor, file manager, browser, AI assistant, additional terminal.

It is a proof-of-concept clone of Wave Terminal made from existing parts. Linux-only.

Many-terminal screenshot

Usage (subject to change)

Many starts with a single terminal.

  • Meta+F2 opens a new widget
  • Ctrl+F4 closes the current widget
  • Ctrl+Tab and Ctrl+Shift+Tab cycle through widgets

Note! In this prototype stage, closing Many (e.g. typing Alt+F4) immediately closes all widgets. Be sure to save your work, such as any file you're editing, before closing.

Two widgets can be swapped by dragging one into the other.

Khrönkite key bindings can be used to switch widgets (windows) and layouts.

Design

Many uses a windowed KWin instance as a "frame", and simple KDE apps, configured into simple layouts, as "widgets".

Many runs on a separate DBus session and its own XDG_CONFIG_HOME to avoid interference. This prevents the clipboard from being shared between Many and the rest of the system, so we use a separate tool to synchronize them.

Dependencies

Mandatory

  • A KDE Linux desktop or another Linux desktop with KWin 6 installed (tested with KWin 6.1), using Wayland.

  • Adapt if not on Ubuntu:

sudo apt-get install sed swaybg wofi zsh
sudo snap install --classic task  # Taskfile
  • Kröhnkite tiling extension for KWin
    • Download and install with kpackagetool6 -t KWin/Script -i krohnkite-x.x.x.x.kwinscript

Recommended

  • sudo apt-get install dolphin falkon kate konsole

    • (or replace them in many-launcher.zsh)
  • Breeze Active Accent Dusk window-decoration theme

    • (or replace/delete it in kwinrc)
    • Put it in ~/.local/share/aurorae/themes/
    • Run sed -i -r 's/^(TitleAlignment=)\w+$/\1Left/' ~/.local/share/aurorae/themes/ActiveAccentDusk/ActiveAccentDuskrc

Clipboard

We use ClipCascade to be able to copy & paste between Many and the rest of the system. This basic feature takes a few steps to set up:

  • Java JRE ≥ 17 and Python venv: sudo apt-get install default-jre python3-venv
  • task clipcascade
  • systemctl --user start clipcascade
    • (takes 10+ seconds to start)
  • Ignore the client dialog at first (there may be a login error).
  • Log in to http://localhost:15186/ with Username admin and Password admin123.
  • Create a user with a password, e.g. user and user123.
    • Close the web admin.
  • Log in in the client dialog without changing any settings.

When running Many, you may be asked:

Another instance of ClipCascade is already running. Do you want to run anyway?

Say yes.

Also considered

Installing Many

Check in Taskfile.yml that BIN_DIR is in your PATH, then do:

  • task lninstall

About

A terminal with Many widgets

Topics

Resources

Stars

Watchers

Forks