Tiny river window manager examples
- Rust 29.4%
- C 25.5%
- Lua 16.9%
- Go 14.5%
- Janet 12.8%
- Other 0.9%
|
cattail
d1daddd8c9
to propose negative window dimensions is a protocol error (v1.0): > The width and height must be greater than or equal to zero. If the > width or height is zero the window will be allowed to decide its > own dimensions. the lack of bounds checking here was resulting in an error leading to a doomed window manager however, to propose a width or height of zero while resizing a window is to yield control of the resize to the window itself. thus, the window manager should propose minimum dimensions of `1` during resizing. this is also what the C implementation does. |
||
|---|---|---|
| .builds | ci: check if lua implementation compiles | |
| c | c: Fix tiny typo "indentifier" -> "identifier" | |
| go | go: update deps | |
| janet | janet: improve janet-pm installation instructions | |
| LICENSES | docs: follow REUSE spec | |
| lua | lua: improve build instructions | |
| rust | rust: don't propose negative window dimensions | |
| README.md | docs: encourage incremental improvements | |
tinyrwm
A tiny river window manager, implemented in various languages.
This project aims to help people quickly get started with their own river window manager by following an example in their language of choice.
Contributions adding implementations in new languages are very welcome, as are contributions simplifying or otherwise improving existing implementations!
All tinyrwm implementations should:
- Implement the same tiny feature set
- Be written in the style most idiomatic to their language
- Use the standard build/packaging approach for the given language ecosystem
- Be released under the Zero-Clause BSD license
Happy hacking!
Tiny feature set
Keyboard bindings:
Super+Space: Spawn the foot terminalSuper+q: Close the focused windowSuper+n: Cycle keyboard focus through windowsSuper+Escape: Exit the Wayland session
Pointer bindings:
Super+Left Click: Interactive moveSuper+Right Click: Interactive resize
Additionally, clicking on a window must give the window keyboard focus and raise it above all other windows.
This is not a formal specification, tinyrwm.c is the canonical implementation and its behavior should be matched where this specification is unclear/insufficient.