River
River is a dynamic tiling Wayland compositor with flexible runtime configuration.
Get River From ko-fi And Support Archcraft Development.
Installation
Follow the instructions below to install River :
- Download river_YYYY-MM-DD.tar.gz file from ko-fi, and save it in a directory.
- Open a terminal in same directory and run the following command to extract the tar file :
$ tar -xzvf river_YYYY-MM-DD.tar.gz
- Once the file is extracted, change to the extracted directory which should be
river
- Install On Archcraft
- Install On Other Distributions
On Archcraft, You can simply install the provided package in pkg directory with :
$ sudo pacman -U archcraft-river-X.Y-Z-any.pkg.tar.zst
If you want to install this setup on Arch Linux or on any other distro, follow the points below :
- Install the following programs on your Linux distro:
riverwlr-randrswaybgswayidleswaylockhyprpickerhyprlockwl-clipboardwaybarwofifootmakogrimslurpwf-recorderlightyadthunargeanympvmpdmpcviewniorimagemagickxfce-polkitxorg-xwaylandxdg-desktop-portal-wlrplayerctlpastelpython-pywalalacrittyrofipulsemixer - After installing programs above, Create river directory in
~/.config
$ mkdir -p ~/.config/river
- Copy Everything from dotfiles to
~/.config/river
$ cp -r ./dotfiles/* ~/.config/river/
- Logout and login to your amazingly configured River WC.
Install the fonts from
fontsand GTK theme, icons and cursor fromgtkdirectory for overall appearance.
River comes pre-installed on Archcraft WSE and Archcraft Prime ISOs.
Configuration
River is pre-configured in Archcraft. In this section, We'll see how the River wayland compositor is configured, what tools and utilities are used to make it look and work like a complete desktop environment.
Config Structure
The configuration structure of River in Archcraft looks something like this:
~/.config
└── river : river config directory
├── alacritty : alacritty terminal config
├── config.d : river config files
├── foot : foot terminal config
├── kitty : kitty terminal config
├── mako : notification daemon config
│ └── icons : notification icons
├── rofi : rofi config files
├── scripts : various scripts for functionality
├── theme : current theme and pywal themes
├── wallpapers : wallpapers
├── waybar : statusbar config
├── waybar-alt : alternate statusbar config
├── wlogout : wlogout config
│ └── icons : session icons
├── wofi : launcher, Powermenu config
├── hyprlock.conf : hyprlock config file
└── init : river init file (source configs from config.d)
Terminal
- Default
- Kitty
- Foot
Alacritty is the default terminal. In the River wayland compositor, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/river/alacritty directory. These are the following config files you can modify to change the behaviour of your alacritty terminal:
~/.config/river/alacritty/alacritty.toml : Main configuration file
~/.config/river/alacritty/colors.toml : Colors configurations
~/.config/river/alacritty/fonts.toml : Fonts configurations
If you need any help with alacritty config, run :
man 5 alacrittyin terminal.
kitty is the secondary/alternate terminal. In the River wayland compositor, kitty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/river/kitty directory. These are the following config files you can modify to change the behaviour of your kitty terminal:
~/.config/river/kitty/kitty.conf : Main configuration file
~/.config/river/kitty/colors.conf : Colors configurations
~/.config/river/kitty/fonts.conf : Fonts configurations
If you need any help with kitty config, run :
man kitty.confin terminal.
Foot is another alternate terminal. In the River wayland compositor, foot is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/river/foot directory. These are the following config files you can modify to change the behaviour of your foot terminal:
~/.config/river/foot/foot.ini : Main configuration file
~/.config/river/foot/colors.ini : Colors configurations
~/.config/river/foot/fonts.ini : Fonts configurations
If you need any help with foot config, run :
man foot.iniin terminal.
By Default, alacritty is used But, If you want to use kitty/foot as your default terminal, just edit the ~/.config/river/config.d/70-keybindings.sh file and comment the keybindings for Terminal : alacritty and uncomment the bindings for Terminal : kitty or Terminal : foot
When you change the theme, the colors.toml file of alacritty, colors.conf file of kitty and colors.ini file of foot get overwritten by the theme script.
Notification
Mako is used as a notification daemon for notifications in River. In the River wayland compositor, mako is launched with an alternative config file, which is ~/.config/river/mako/config. So, If you need to modify anything, make sure you edit this file.
If you need any help with mako config, run :
man 5 makoin terminal.
When you change the theme, the colors in config file get overwritten by the theme script.
Wallpaper
swaybg sets the wallpaper in the River. If you want to change the wallpaper, Edit ~/.config/river/scripts/wallpaper script and add your wallpaper here :
WALLPAPER='/path/to/your/wallpaper'
When you change the theme, the wallpaper path in wallpaper script get overwritten by the theme script.
Statusbar
Waybar is used as the statusbar in Archcraft's River wayland compositor.
The configurations for waybar can be found inside ~/.config/river/waybar. If you want to modify the waybar settings, or perhaps want to add/remove modules, then you need to edit the following files :
~/.config/river/waybar/config : Main config file
~/.config/river/waybar/modules : Modules config file
~/.config/river/waybar/style.css : CSS file for styling
~/.config/river/waybar/colors.css : CSS colors file
If you need any help with waybar config, run :
man waybar
When you change the theme, the colors.css file of waybar get overwritten by the theme script.
Launchers and Applets
- Rofi
- Wofi
- Wlogout
Rofi is used for application launchers, command runner and various applets. To modify the rofi config, edit ~/.config/rofi/config.rasi file.
If you need any help with rofi config, run :
man rofiin terminal.
The scripts for rofi that are used in River can be found it ~/.config/river/scripts directory. These are the following scripts that uses rofi to provide the launchers and applets in River :
rofi_bluetooth : bluetooth applet to quickly connect to BT devices
rofi_launcher : an application launcher, cmd runner, file manager and task manager
rofi_music : music applet, that controls MPD with mpc
rofi_network : network manager applet
rofi_powermenu : power menu, with confirmation dialog
rofi_runner : quickly lets you run a command
rofi_screenshot : screenshot applet that works with grim
If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts.
The configuration of each script can be found inside ~/.config/river/rofi directory.
Let's say that you want to modify the looks of launcher, then you need to edit the ~/.config/river/rofi/launcher.rasi file. Same goes for every other applet, Edit the respective file in the same directory.
If you need any help with rofi theming, run :
man rofi-themein terminal.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/river/rofi/shared/colors.rasi and ~/.config/river/rofi/shared/fonts.rasi files.
Alternatively, Wofi is used for application launcher and powermenu.
If you need any help with wofi config, run :
man 5 wofiin terminal.
The scripts for wofi that are used in River can be found it ~/.config/river/scripts directory. These are the following scripts that uses wofi to provide the launchers and powermenu applets in River :
wofi_menu : application launcher
wofi_powermenu : power menu, with confirmation dialog
If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts.
The configuration of wofi can be found inside ~/.config/river/wofi directory.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/river/wofi/style.css and ~/.config/river/wofi/power.css files.
Wlogout, A Wayland logout menu is also configured for session management is River.
Edit ~/.config/river/scripts/wlogout script to adjust the looks of wlogout. The configuration of wlogout can be found inside ~/.config/river/wlogout directory.
If you want to use wlogout instead of rofi and wofi, Edit the config file ~/.config/river/config and uncomment wlogout keybindings.
If you need any help with wlogout config, run :
man wlogoutin terminal.
By default, rofi is used as app launcher. But, If you want to use wofi instead of rofi, Edit the config file ~/.config/river/config.d/70-keybindings.sh and uncomment wofi keybindings (and, comment the rofi bindings).
When you change the theme, the shared/colors.rasi file of rofi and style.css, power.css files of wofi gets overwritten by the theme script.
wayland compositor
The configuration of River is available in ~/.config/river/config.d. To configure River wayland compositor, these are the files that are used :
00-vars.sh : Variables and helpers
10-startup.sh : Startup programs
20-output.sh : Output/monitors config
30-input.sh : Input devices config
40-theme.sh : River theme config
50-rules.sh : Window rules config
60-modes.sh : Modes config
70-keybindings.sh : Keybindings config
80-tags.sh : Tags config
90-mouse.sh : Mosue binding config
99-layout.sh : Layout config
If you need any help with river configuration, visit : River Wiki
When you change the theme, colors in 40-theme.sh file gets overwritten by the theme script.
Keybindings
Here's a list of some important keybinds you need to know for operating River easily. If you want to view, modify or add new keybinds, Edit ~/.config/river/config.d/70-keybindings.sh file.
Applications
| Keys | Action |
|---|---|
| super + Return | Open terminal |
| super + shift + Return | Open floating terminal |
| super + alt + Return | Open fullscreen terminal |
| super + shift + F | Open file manager (thunar) |
| super + shift + E | Open text editor (geany) |
| super + shift + W | Open web browser (firefox) |
Menu and Applets
| Keys | Action |
|---|---|
| super + D | Open application launcher |
| super + R | Open command runner |
| super + N | Open network manager applet |
| super + M | Open music applet |
| super + X | Open powermenu applet |
| super + S | Open screenshots applet |
| super + B | Open bluetooth applet |
