No description
  • Janet 98.6%
  • Scheme 1%
  • Shell 0.4%
Find a file
2026-04-20 13:49:14 +03:00
bundle initial commit 2026-04-06 21:50:57 +03:00
example add wlopm for power management 2026-04-19 10:23:18 +03:00
protocol add more river (v0.4.2) protocols 2026-04-10 11:00:53 +03:00
script organize scripts 2026-04-11 14:02:28 +03:00
src improve frames resize 2026-04-20 13:49:14 +03:00
.gitignore initial commit 2026-04-06 21:50:57 +03:00
COPYING initial commit 2026-04-06 21:50:57 +03:00
manifest.scm minor cleanup 2026-04-19 21:08:12 +03:00
project.janet initial commit 2026-04-06 21:50:57 +03:00
README.org add base frame resize support 2026-04-17 17:36:14 +03:00

Ropotamo

Overview

Ropotamo is an attempt to make StumpWM-like tiling window manager for River wayland compositor. It was written in Janet in about three days from zero to base and heavily influenced by tinyrwm and rijan (yep, the significant part of code was borrowed from there). At first there was an idea to make just a quick and dirty prototype, then rewrite it to some fast, effective and modern language, such as Zig, but now I'm not sure I will do it, because Janet is good enough, well-designed Lispy language and fun to play with!

Current status

Ropotamo is on its early development stage, so it may contain errors and may sometimes behave incorrectly.

Supported features

  • Emacs-style keybindings;
  • non-dynamic tiling just like in ratpoison, StumpWM, cagebreak and similar;
  • multiple workspaces support;
  • moving windows between frames;
  • moving windows between workspaces;
  • resize frames;
  • focus window by app-id support;
  • xkb configuration;
  • inputs configuration;
  • remote REPL (via spork/netrepl).

Planned features (in random order)

  • focus-or-spawn support;
  • cursor pointer change on different modes;
  • frames color highlighting;
  • on-fly config reload;
  • per-window xkb layout support;
  • multiple seats/outputs support.

Development (known bugs, etc.)

  • some things are not yet optimized, it will be a subject to change;
  • focus lost in some (rare?) conditions.

Install

Instructions and packages (at least for Guix System) will appear before the first release. For now you can use instructions from Janet implementation of tinyrwm – currently they are the same.

Naming

Ropotamo is named after the Ropotamo (Bulgarian: Ропотамо [ropoˈtamo], from the Ancient Greek word Ροπόταμος ropotamos meaning "border river"), a river in south-eastern Bulgaria.

Contributions

Contributions are always welcome, however they are always welcome without ANY use of generative AI/LLMs.

Credits

Many thanks to Isaac Freund for River and other awesome projects.

License

Ropotamo itself is licensed under the GPLv3 or later. Please consult the COPYING file for more details.

Wayland protocols under protocol/ directory are licensed under MIT.