river/README.md

69 lines
2.6 KiB
Markdown
Raw Normal View History

2020-04-10 14:18:34 -07:00
# river
2020-03-28 10:02:38 -07:00
2020-04-10 14:18:34 -07:00
river is a dynamic wayland compositor that takes inspiration from
2020-04-12 05:12:48 -07:00
[dwm](https://dwm.suckless.org) and
[bspwm](https://github.com/baskerville/bspwm).
2020-03-28 10:02:38 -07:00
2020-04-26 10:06:11 -07:00
*Note: river is currently early in development and may lack some
features. If there are specific features blocking you from using river,
don't hesitate to
[open an issue](https://github.com/ifreund/river/issues/new)*
2020-03-28 10:02:38 -07:00
## Design goals
2020-04-12 05:12:48 -07:00
- Simplicity and minimalism, river should not overstep the bounds of a
window manger.
2020-03-28 10:02:38 -07:00
- Dynamic window management based on a stack of views and tags like dwm.
2020-05-24 12:07:57 -07:00
- Scriptable configuration and control through a separate binary,
`riverctl`, like bspwm. This works using the custom
[river-control](protocol/river-control-unstable-v1.xml) protocol.
2020-03-28 10:02:38 -07:00
2020-04-12 05:12:48 -07:00
## Building
To compile river first ensure that you have the following dependencies
installed:
2020-04-13 15:40:43 -07:00
- [zig](https://github.com/ziglang/zig) 0.6.0
2020-04-12 05:12:48 -07:00
- wayland
- wayland-protocols
- [wlroots](https://github.com/swaywm/wlroots) 0.10.1
- xkbcommon
2020-05-08 05:51:10 -07:00
Then simply use `zig build` to build and `zig build run` to run. To
2020-05-26 14:13:43 -07:00
enable experimental Xwayland support use `-Dxwayland=true`. This will
also build `riverctl` which can be found at `zig-cache/bin/riverctl`.
2020-04-12 05:12:48 -07:00
River can either be run nested in an X11/wayland session or directly
from a tty using KMS/DRM.
2020-04-13 15:40:43 -07:00
Keybinds are similar to the defaults of dwm, but using the "logo key"
2020-04-13 16:20:17 -07:00
instead of alt. Check out the comments in [config.zig](src/config.zig) for
a complete list of bindings. Note that the terminal emulator is currently
2020-04-26 10:06:11 -07:00
hardcoded to [alacritty](https://github.com/alacritty/alacritty) but
may be changed by editing [config.zig](src/config.zig) and recompiling.
2020-04-13 15:40:43 -07:00
2020-03-28 10:02:38 -07:00
## Development
2020-04-12 05:12:48 -07:00
Check out the [roadmap](https://github.com/ifreund/river/issues/1)
if you'd like to see what has been done and what is left to do.
2020-04-10 14:18:34 -07:00
2020-04-12 05:12:48 -07:00
If you are interested in the development of river, please join our
2020-04-19 08:22:49 -07:00
matrix channel: [#river:matrix.org](https://matrix.to/#/#river:matrix.org).
You should also read [CONTRIBUTING.md](CONTRIBUTING.md) if you intend
to submit patches.
2020-03-28 10:02:38 -07:00
2020-04-12 05:12:48 -07:00
I can often be found in the `#sway-devel` IRC channel with the
nick `ifreund` on irc.freenode.net as well, or reached by email at
2020-03-28 10:02:38 -07:00
[ifreund@ifreund.xyz](mailto:ifreund@ifreund.xyz).
2020-05-26 14:13:43 -07:00
## Licensing
river is released under the GNU General Public License version 3, or (at your
option) any later version.
The protocols in the protocol directory are released under various licenses by
various parties licenses. You should refer to the copyright block of each
protocol for the license. The protocols prefixed with `river` and developed by
this project are released under the ISC license (as stated in their copyright
blocks).