River: Difference between revisions
Prabuanand (talk | contribs) (removed Category:Desktop as per Help_talk:Style) |
(1. Enhanced Beginning to distinguish River from the new river-classic fork; 2. Added suggestions for other packages, including bash/zsh/fish completion; and hints to search: first for river-classic*, etc.; 3. Proposed merging Troubleshooting content into Firefox page; 4. Changed instances of River to river-classic, its new name - may need page title change unless new River version 0.4 is integrated here, if made available; 5. Style amendments) |
||
| Line 1: | Line 1: | ||
[https://github.com/riverwm/river River] is a dynamic tiling [[Wayland]] compositor. | [https://github.com/riverwm/river River] is a dynamic tiling [[Wayland]] compositor. '''River''' ''"upstream"'' has developed into [https://codeberg.org/river/river/releases/tag/v0.3.12 two different projects]:- | ||
* '''river-classic''', which is an upstream fork of the original '''River''' version 0.3, now known under that [https://codeberg.org/river/river-classic new name]. As of November 2025, it is '''the only version available on Alpine Linux''': it can be downloaded as {{Pkg|river-classic}} from the edge community repository while it retains its legacy name as {{Pkg|river|branch=v3.22}} in the Alpine Linux v3.22 and v3.21 community repositories. {{Pill||v3.22.x|green|palegreen}} {{Pill||v3.21.x|cadetblue|lightblue}} | |||
* The current '''River''' project upstream, version 0.4+, which is developing under their new ''river-window-management-v1 protocol'', also known by its ''rwm tag''. | |||
Updating the original {{ic|river}} package from version 0.3 to version 0.4 would cause breakages, and therefore, distinct projects are being developed upstream. | |||
== Prerequisites == | == Prerequisites == | ||
{{:Include:Desktop prerequisites}} | {{:Include:Desktop prerequisites}} | ||
* Wayland compositors need raw access to input and output devices, typically mediated by a [[seat manager]]. Either [[seatd]] or [[elogind]] work fine, but installing both leads to conflicts. | * Wayland compositors need raw access to input and output devices, typically mediated by a [[seat manager]]. Either [[seatd]] or [[elogind]] work fine, but installing both leads to conflicts. | ||
* Installing [[Alpine_setup_scripts#setup-wayland-base|wayland-base]] enables [[elogind]] as [[Seat manager|seat manager]] | * Installing [[Alpine_setup_scripts#setup-wayland-base|wayland-base]] enables [[elogind]] as the [[Seat manager|seat manager]] and also enables the [[Repositories#Community|community repository]] and [[eudev]]. | ||
== Installation == | == Installation == | ||
Install | Install '''river-classic''' and its documentation: | ||
* Under Alpine Linux v3.22 and v3.21 {{Pill||v3.22.x|green|palegreen}} {{Pill||v3.21.x|cadetblue|lightblue}} | |||
:{{Cmd|# apk add {{Pkg|river|branch=v3.22}} {{Pkg|river-doc|branch=v3.22}}}} | |||
{{Cmd|# apk add {{Pkg|river}} {{Pkg|river-doc}}}} | * Under Alpine Linux Edge version | ||
:{{Cmd|# apk add {{Pkg|river-classic}} {{Pkg|river-classic-doc}}}} | |||
<code> | The <code>-doc</code> packages are required to use the example config. | ||
Install your choice of additional packages | Install your choice of additional packages. The following list includes icons, fonts and a terminal emulator named '''foot''', which is the default in '''river-classic''''s sample init file that we will use later. | ||
{{Cmd|# apk add {{Pkg|adwaita-icon-theme}} {{Pkg|foot}} {{Pkg|font-dejavu}}}} | |||
{{ | Further packages that are available include the following. Ensure that the [[Repositories#Using_testing_repository|edge repository is enabled and tagged]] first before installing any of the following with the ''@testing'' tag, last checked in November 2025:- | ||
* {{Pkg|rivercarro}} for a fork of the rivertile layout (tag as @testing); | |||
* {{Pkg|river-luatile}} to write layouts in lua (tag as @testing); | |||
* {{Pkg|river-shifttags}} to enable the reordering of tags (tag as @testing): | |||
* {{Pkg|river-bedload}} to send info to STDOUT (tag as @testing); | |||
* those for bash/zsh/fish completion (some are in @testing, some in community repo): say, {{Pkg|river-bash-completion|branch=v3.22}} in Alpine Linux v3.22 community repo, or {{Pkg|river-classic-bash-completion}} in Alpine Linux Edge community; | |||
To begin a search for any more packages:- | |||
* If running Edge, run {{ic|apk search -v river-classic}} first, or see {{Pkg|river-classic*}}. | |||
* For Alpine Linux v3.22/v3.21, or for a cruder, more generic search, one could try {{ic|<nowiki>apk search -v river | grep -v 'driver'</nowiki>}} , which would exclude the term 'driver'; {{ic|apk search -v river}}; or see {{Pkg|river*|branch=3.22}} for packages that begin with that term. | |||
== Running | == Running river-classic == | ||
Before running | Before running '''river-classic''' for the first time, copy the sample init file to {{Path|~/.config}}: | ||
{{Cmd|install -Dm0755 /usr/share/doc/river/examples/init -t ~/.config/river}} | {{Cmd|install -Dm0755 /usr/share/doc/river/examples/init -t ~/.config/river}} | ||
Set [[Wayland#XDG_RUNTIME_DIR|XDG_RUNTIME_DIR]] and then start | Set [[Wayland#XDG_RUNTIME_DIR|XDG_RUNTIME_DIR]] and then start '''river-classic'''/'''river''' with the same instruction: | ||
{{Cmd|river}} | |||
{{Cmd| | |||
== Troubleshooting == | == Troubleshooting == | ||
{{Merge|Firefox}} | |||
The following are a few observations discovered while running '''river-classic'''; although not directly related to the compositor, they have been tacked onto the end of this wiki. | |||
Firefox 89.0.1 complained of ''"glxtest: libpci missing"'' on launch, resolved with: | |||
Firefox 89.0.1 | |||
{{Cmd|apk add {{Pkg|pciutils-libs}}}} | {{Cmd|apk add {{Pkg|pciutils-libs}}}} | ||
Firefox 89.0.1 | Firefox 89.0.1 furthermore complained continuously: ''"Unable to load hand2 from the cursor theme"'', resolved as follows: | ||
{{Cmd|mkdir -p ~/.icons/default | {{Cmd|mkdir -p ~/.icons/default | ||
| Line 45: | Line 58: | ||
== See also == | == See also == | ||
* [https://isaacfreund.com/blog/river-intro/ An introduction to River] | * [https://isaacfreund.com/blog/river-intro/ An introduction to River - isaacfreund.com] | ||
[[Category:Compositor]] | [[Category:Compositor]] | ||
Latest revision as of 04:14, 27 November 2025
River is a dynamic tiling Wayland compositor. River "upstream" has developed into two different projects:-
- river-classic, which is an upstream fork of the original River version 0.3, now known under that new name. As of November 2025, it is the only version available on Alpine Linux: it can be downloaded as river-classic from the edge community repository while it retains its legacy name as river in the Alpine Linux v3.22 and v3.21 community repositories.
v3.22.x v3.21.x
- The current River project upstream, version 0.4+, which is developing under their new river-window-management-v1 protocol, also known by its rwm tag.
Updating the original river package from version 0.3 to version 0.4 would cause breakages, and therefore, distinct projects are being developed upstream.
Prerequisites
- Internet connectivity, unless the packages have been pre-fetched into a local cache.
- Install appropriate Graphics driver drivers for your hardware. Without graphics drivers, errors are likely to occur when starting your desktop.
- A non-root user account with appropriate groups for desktop usage.
- The community repository must be enabled.
- Set up eudev.
- Install and enable D-Bus. Without D-Bus, icons and keyboard shortcuts may be missing.
- Wayland compositors need raw access to input and output devices, typically mediated by a seat manager. Either seatd or elogind work fine, but installing both leads to conflicts.
- Installing wayland-base enables elogind as the seat manager and also enables the community repository and eudev.
Installation
Install river-classic and its documentation:
- Under Alpine Linux v3.22 and v3.21
v3.22.x v3.21.x
- Under Alpine Linux Edge version
# apk add river-classic river-classic-doc
The -doc packages are required to use the example config.
Install your choice of additional packages. The following list includes icons, fonts and a terminal emulator named foot, which is the default in river-classic's sample init file that we will use later.
# apk add adwaita-icon-theme foot font-dejavu
Further packages that are available include the following. Ensure that the edge repository is enabled and tagged first before installing any of the following with the @testing tag, last checked in November 2025:-
- rivercarro for a fork of the rivertile layout (tag as @testing);
- river-luatile to write layouts in lua (tag as @testing);
- river-shifttags to enable the reordering of tags (tag as @testing):
- river-bedload to send info to STDOUT (tag as @testing);
- those for bash/zsh/fish completion (some are in @testing, some in community repo): say, river-bash-completion in Alpine Linux v3.22 community repo, or river-classic-bash-completion in Alpine Linux Edge community;
To begin a search for any more packages:-
- If running Edge, run
apk search -v river-classicfirst, or see river-classic*. - For Alpine Linux v3.22/v3.21, or for a cruder, more generic search, one could try
apk search -v river | grep -v 'driver', which would exclude the term 'driver';apk search -v river; or see river* for packages that begin with that term.
Running river-classic
Before running river-classic for the first time, copy the sample init file to ~/.config:
install -Dm0755 /usr/share/doc/river/examples/init -t ~/.config/river
Set XDG_RUNTIME_DIR and then start river-classic/river with the same instruction:
river
Troubleshooting
The following are a few observations discovered while running river-classic; although not directly related to the compositor, they have been tacked onto the end of this wiki.
Firefox 89.0.1 complained of "glxtest: libpci missing" on launch, resolved with:
apk add pciutils-libs
Firefox 89.0.1 furthermore complained continuously: "Unable to load hand2 from the cursor theme", resolved as follows:
mkdir -p ~/.icons/default ln -s /usr/share/icons/Adwaita/cursors ~/.icons/default/cursors
