d08032d685
Options are now all global but may be overridden per-output. If an output local value is requested but none has been set, the global value is provided instead. This makes for much better ergonomics when configuring layout related options in particular.
162 lines
6.2 KiB
Bash
Executable File
162 lines
6.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# This is the example configuration file for river.
|
|
#
|
|
# If you wish to edit this, you will probably want to copy it to
|
|
# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
|
|
#
|
|
# See the river(1), riverctl(1), and river(1) man pages for complete
|
|
# documentation.
|
|
|
|
# Use the "logo" key as the primary modifier
|
|
mod="Mod4"
|
|
|
|
# Mod+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
|
|
riverctl map normal $mod+Shift Return spawn foot
|
|
|
|
# Mod+Q to close the focused view
|
|
riverctl map normal $mod Q close
|
|
|
|
# Mod+E to exit river
|
|
riverctl map normal $mod E exit
|
|
|
|
# Mod+J and Mod+K to focus the next/previous view in the layout stack
|
|
riverctl map normal $mod J focus-view next
|
|
riverctl map normal $mod K focus-view previous
|
|
|
|
# Mod+Shift+J and Mod+Shift+K to swap the focused view with the next/previous
|
|
# view in the layout stack
|
|
riverctl map normal $mod+Shift J swap next
|
|
riverctl map normal $mod+Shift K swap previous
|
|
|
|
# Mod+Period and Mod+Comma to focus the next/previous output
|
|
riverctl map normal $mod Period focus-output next
|
|
riverctl map normal $mod Comma focus-output previous
|
|
|
|
# Mod+Shift+{Period,Comma} to send the focused view to the next/previous output
|
|
riverctl map normal $mod+Shift Period send-to-output next
|
|
riverctl map normal $mod+Shift Comma send-to-output previous
|
|
|
|
# Mod+Return to bump the focused view to the top of the layout stack
|
|
riverctl map normal $mod Return zoom
|
|
|
|
# Mod+H and Mod+L to decrease/increase the main_factor option by 0.05
|
|
# rivertile(1) uses this option to determine the width of the main stack.
|
|
riverctl map normal $mod H spawn riverctl mod-option -focused-output main_factor -0.05
|
|
riverctl map normal $mod L spawn riverctl mod-option -focused-output main_factor +0.05
|
|
|
|
# Mod+Shift+H and Mod+Shift+L to increment/decrement the main_count option.
|
|
# rivertile(1) uses this option to determine the number of "main" views in the layout.
|
|
riverctl map normal $mod+Shift H spawn riverctl mod-option -focused-output main_count +1
|
|
riverctl map normal $mod+Shift L spawn riverctl mod-option -focused-output main_count -1
|
|
|
|
# Mod+Alt+{H,J,K,L} to move views
|
|
riverctl map normal $mod+Mod1 H move left 100
|
|
riverctl map normal $mod+Mod1 J move down 100
|
|
riverctl map normal $mod+Mod1 K move up 100
|
|
riverctl map normal $mod+Mod1 L move right 100
|
|
|
|
# Mod+Alt+Control+{H,J,K,L} to snap views to screen edges
|
|
riverctl map normal $mod+Mod1+Control H snap left
|
|
riverctl map normal $mod+Mod1+Control J snap down
|
|
riverctl map normal $mod+Mod1+Control K snap up
|
|
riverctl map normal $mod+Mod1+Control L snap right
|
|
|
|
# Mod+Alt+Shif+{H,J,K,L} to resize views
|
|
riverctl map normal $mod+Mod1+Shift H resize horizontal -100
|
|
riverctl map normal $mod+Mod1+Shift J resize vertical 100
|
|
riverctl map normal $mod+Mod1+Shift K resize vertical -100
|
|
riverctl map normal $mod+Mod1+Shift L resize horizontal 100
|
|
|
|
# Mod + Left Mouse Button to move views
|
|
riverctl map-pointer normal $mod BTN_LEFT move-view
|
|
|
|
# Mod + Right Mouse Button to resize views
|
|
riverctl map-pointer normal $mod BTN_RIGHT resize-view
|
|
|
|
for i in $(seq 1 9)
|
|
do
|
|
tags=$((1 << ($i - 1)))
|
|
|
|
# Mod+[1-9] to focus tag [0-8]
|
|
riverctl map normal $mod $i set-focused-tags $tags
|
|
|
|
# Mod+Shift+[1-9] to tag focused view with tag [0-8]
|
|
riverctl map normal $mod+Shift $i set-view-tags $tags
|
|
|
|
# Mod+Ctrl+[1-9] to toggle focus of tag [0-8]
|
|
riverctl map normal $mod+Control $i toggle-focused-tags $tags
|
|
|
|
# Mod+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
|
|
riverctl map normal $mod+Shift+Control $i toggle-view-tags $tags
|
|
done
|
|
|
|
# Mod+0 to focus all tags
|
|
# Mod+Shift+0 to tag focused view with all tags
|
|
all_tags=$(((1 << 32) - 1))
|
|
riverctl map normal $mod 0 set-focused-tags $all_tags
|
|
riverctl map normal $mod+Shift 0 set-view-tags $all_tags
|
|
|
|
# Mod+Space to toggle float
|
|
riverctl map normal $mod Space toggle-float
|
|
|
|
# Mod+F to toggle fullscreen
|
|
riverctl map normal $mod F toggle-fullscreen
|
|
|
|
# Mod+{Up,Right,Down,Left} to change layout orientation
|
|
riverctl map normal $mod Up spawn riverctl set-option -focused-output main_location top
|
|
riverctl map normal $mod Right spawn riverctl set-option -focused-output main_location right
|
|
riverctl map normal $mod Down spawn riverctl set-option -focused-output main_location bottom
|
|
riverctl map normal $mod Left spawn riverctl set-option -focused-output main_location left
|
|
|
|
# Declare a passthrough mode. This mode has only a single mapping to return to
|
|
# normal mode. This makes it useful for testing a nested wayland compositor
|
|
riverctl declare-mode passthrough
|
|
|
|
# Mod+F11 to enter passthrough mode
|
|
riverctl map normal $mod F11 enter-mode passthrough
|
|
|
|
# Mod+F11 to return to normal mode
|
|
riverctl map passthrough $mod F11 enter-mode normal
|
|
|
|
# Various media key mapping examples for both normal and locked mode which do
|
|
# not have a modifier
|
|
for mode in normal locked
|
|
do
|
|
# Eject the optical drive
|
|
riverctl map $mode None XF86Eject spawn eject -T
|
|
|
|
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
|
|
riverctl map $mode None XF86AudioRaiseVolume spawn pamixer -i 5
|
|
riverctl map $mode None XF86AudioLowerVolume spawn pamixer -d 5
|
|
riverctl map $mode None XF86AudioMute spawn pamixer --toggle-mute
|
|
|
|
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
|
riverctl map $mode None XF86AudioMedia spawn playerctl play-pause
|
|
riverctl map $mode None XF86AudioPlay spawn playerctl play-pause
|
|
riverctl map $mode None XF86AudioPrev spawn playerctl previous
|
|
riverctl map $mode None XF86AudioNext spawn playerctl next
|
|
|
|
# Control screen backlight brighness with light (https://github.com/haikarainen/light)
|
|
riverctl map $mode None XF86MonBrightnessUp spawn light -A 5
|
|
riverctl map $mode None XF86MonBrightnessDown spawn light -U 5
|
|
done
|
|
|
|
# Set repeat rate
|
|
riverctl set-repeat 50 300
|
|
|
|
# Set app-ids of views which should float
|
|
riverctl float-filter-add "float"
|
|
riverctl float-filter-add "popup"
|
|
|
|
# Set app-ids of views which should use client side decorations
|
|
riverctl csd-filter-add "gedit"
|
|
|
|
# Set opacity and fade effect
|
|
# riverctl opacity 1.0 0.75 0.0 0.1 20
|
|
|
|
# Exec into the default layout generator, rivertile.
|
|
# River will send the process group of the init executable SIGTERM on exit.
|
|
riverctl set-option layout rivertile
|
|
exec rivertile
|