River: Difference between revisions

From Alpine Linux
No edit summary
(→‎Installation: deduplicate seatd section)
 
(70 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[https://github.com/riverwm/river River] is a dynamic tiling Wayland compositor. An introduction to River can be found in [https://isaacfreund.com/blog/river-intro/ this blog post] by the author for the 0.1.0 release.
[https://github.com/riverwm/river River] is a dynamic tiling [[Wayland]] compositor. An introduction to River can be found in [https://isaacfreund.com/blog/river-intro/ this blog post] by the developer for the 0.1.0 release.


== Prerequisites ==
This wiki was written starting from a fresh install using the Alpine 3.14.2 x86_64 extended .iso. The steps begin from the first reboot after running setup-alpine and performing a sys install to disk.


The following links contain guides for setting up the video stack.
Many steps below were taken from the [[Sway|wiki entry for installing Sway]].


* [https://wiki.alpinelinux.org/wiki/Intel_Video Intel Video]
== Installation ==
* [https://wiki.alpinelinux.org/wiki/Radeon_Video Radeon Video]


Add yourself to the input and video groups:
Login as root.


<pre>
Edit the repositories file and uncomment the community and testing repos. For 3.14.2, we need edge/community to get the correct software versions to support River:
# adduser $USER input
{{Cat|/etc/apk/repositories|
# adduser $USER video
#http://dl-cdn.alpinelinux.org/alpine/v3.17/main
</pre>
#http://dl-cdn.alpinelinux.org/alpine/v3.17/community
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing
}}


You have to log out and back in for this to take effect.
{{:Include:Setup_Device_Manager}}


Install some TTF fonts:
Then install the mesa gallium drivers:


<pre>
{{Cmd|# apk add {{Pkg|mesa-dri-gallium}}}}
# apk add ttf-dejavu
</pre>


Since sway 1.6.1 (more specifically, since wlroots 0.14), you need to set up libseat backend if you wish to run sway directly (without nesting it in another wayland compositor). To do that, choose one of the following methods:
The following links contain guides for setting up the video stack.


<dl>
* [[Intel Video]]
* [[Radeon Video]]


<dt>seatd daemon</dt>
Install River and the documentation:
<dd>
<pre>
# apk add seatd
# rc-update add seatd
# rc-service seatd start
# adduser $USER seat
</pre>


If you are already logged in as a $USER, you will need to relogin.
{{Cmd|# apk add {{Pkg|river}} {{Pkg|river-doc}}}}
</dd>


<dt>seatd-launch</dt>
<code>river-doc</code> is required if you want use the example config.
<dd>
<pre>
# apk add seatd-launch
</pre>


When starting sway, you will need to prefix invocation with <code>seatd-launch</code>. 
Install your choice of additional packages:
Note: <code>seatd-launch</code> is a suid binary, so it might be wise to use one of the other methods from a security perspective.
</dd>


<dt>elogind daemon</dt>
This list includes icons, fonts, and a terminal emulator named foot which is the default in River's sample init file that we will use later.
<dd>
TODO
</dd>


</dl>
{{Cmd|# apk add {{Pkg|adwaita-icon-theme}} {{Pkg|foot}} {{Pkg|font-dejavu}}}}


== Installation ==
[[Seatd|Install and configure seatd to start automatically]].
 
Logout and log back in as the new user.


We can now install sway:
== Running River ==


<pre>
Before running River for the first time, copy the sample init file to ~/.config:
# apk add sway sway-doc
# apk add                \ # Install optional dependencies:
    xwayland            \ # strongly reccommended for compatibility reasons
    alacritty            \ # default terminal emulator
    dmenu                \ # default application launcher
    swaylock            \ # lockscreen tool
    swayidle              # idle management (DPMS) daemon
</pre>


== Running Sway ==
{{Cmd|install -Dm0755 /usr/share/doc/river/examples/init -t ~/.config/river}}


To run sway, first set XDG_RUNTIME_DIR to a suitable location (e.g. /tmp). Install & configure elogind to skip this step. Then run sway from the Linux console:
Set [[Wayland#XDG_RUNTIME_DIR|XDG_RUNTIME_DIR]] and then start River:


<pre>
{{Cmd|1=river}}
$ XDG_RUNTIME_DIR=/tmp sway
</pre>


(if you run sway with seatd-launch, you will need to use <code>$ XDG_RUNTIME_DIR=/tmp seatd-launch sway</code>)
== Notes ==


See the [https://wiki.alpinelinux.org/wiki/Wayland Wayland] page for a permanent configuration
Following are a few notes that are most certainly not related to River whatsoever but rather discovered while running River so I'm tacking them onto the end of this wiki.


{{Note|
Firefox 89.0.1 complains on launch "glxtest: libpci missing", resolved by:
swaylock needs to be able to read your <code>/etc/shadow</code> file to be able to validate your password
}}


== Configuration and Usage ==
{{Cmd|apk add {{Pkg|pciutils-libs}}}}


An example config is provided at <code>/etc/sway/config</code>. Copy it to <code>~/.config/sway/config</code> and read through it to learn the default keybindings.
Firefox 89.0.1 complains continuously "Unable to load hand2 from the cursor theme", resolved by:


For additional information, start at <code>man 5 sway</code> and read the [https://github.com/swaywm/sway/wiki upstream FAQ].
{{Cmd|mkdir -p ~/.icons/default
ln -s /usr/share/icons/Adwaita/cursors .icons/default/cursors}}


[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Wayland]]

Latest revision as of 10:02, 3 March 2024

River is a dynamic tiling Wayland compositor. An introduction to River can be found in this blog post by the developer for the 0.1.0 release.

This wiki was written starting from a fresh install using the Alpine 3.14.2 x86_64 extended .iso. The steps begin from the first reboot after running setup-alpine and performing a sys install to disk.

Many steps below were taken from the wiki entry for installing Sway.

Installation

Login as root.

Edit the repositories file and uncomment the community and testing repos. For 3.14.2, we need edge/community to get the correct software versions to support River:

Contents of /etc/apk/repositories

#http://dl-cdn.alpinelinux.org/alpine/v3.17/main #http://dl-cdn.alpinelinux.org/alpine/v3.17/community http://dl-cdn.alpinelinux.org/alpine/edge/main http://dl-cdn.alpinelinux.org/alpine/edge/community http://dl-cdn.alpinelinux.org/alpine/edge/testing

Setting up eudev on a desktop system is recommended:

# setup-devd udev

For more details and advanced instructions see Device Manager.

Then install the mesa gallium drivers:

# apk add mesa-dri-gallium

The following links contain guides for setting up the video stack.

Install River and the documentation:

# apk add river river-doc

river-doc is required if you want use the example config.

Install your choice of additional packages:

This list includes icons, fonts, and a terminal emulator named foot which is the default in River's sample init file that we will use later.

# apk add adwaita-icon-theme foot font-dejavu

Install and configure seatd to start automatically.

Logout and log back in as the new user.

Running River

Before running River 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:

river

Notes

Following are a few notes that are most certainly not related to River whatsoever but rather discovered while running River so I'm tacking them onto the end of this wiki.

Firefox 89.0.1 complains on launch "glxtest: libpci missing", resolved by:

apk add pciutils-libs

Firefox 89.0.1 complains continuously "Unable to load hand2 from the cursor theme", resolved by:

mkdir -p ~/.icons/default ln -s /usr/share/icons/Adwaita/cursors .icons/default/cursors