#!/usr/bin/env bash export XDG_CURRENT_DESKTOP=river export XDG_SESSION_DESKTOP="${XDG_SESSION_DESKTOP:-river}" export XDG_SESSION_TYPE=wayland VARIABLES="DESKTOP_SESSION XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE" VARIABLES="${VARIABLES} DISPLAY WAYLAND_DISPLAY" SESSION_TARGET="river-session.target" SESSION_SHUTDOWN_TARGET="river-session-shutdown.target" SESSION_XDG_AUTOSTART_TARGET="river-xdg-autostart.target" SNI_CHECK="/usr/share/river/scripts/wait-sni-ready" if hash dbus-update-activation-environment 2>/dev/null; then # shellcheck disable=SC2086 dbus-update-activation-environment --systemd ${VARIABLES:- --all} fi # reset failed state of all user units systemctl --user reset-failed # shellcheck disable=SC2086 systemctl --user import-environment $VARIABLES systemctl --user start "$SESSION_TARGET" # declare cleanup handler and run it on init termination via kill, Ctrl-C or 'riverctl exit' session_cleanup () { # stop the session target and unset the variables systemctl --user start --job-mode=replace-irreversibly "$SESSION_SHUTDOWN_TARGET" if [ -n "$VARIABLES" ]; then # shellcheck disable=SC2086 systemctl --user unset-environment $VARIABLES fi } trap session_cleanup EXIT INT TERM # Wait for StatusNotifierWatcher is available and start XDG Autostart target "$SNI_CHECK" && systemctl --user start "$SESSION_XDG_AUTOSTART_TARGET" # Set keyboard layout. See man riverctl # riverctl keyboard-layout -options "grp:caps_toggle" "us,ru" # Binding to reload the configuration (good for edits on bindings or adding new stuff riverctl map normal "Mod4" R spawn $HOME/.config/river/init # Polkit agent riverctl spawn "/usr/bin/mate-polkit" # Wallpaper riverctl spawn $HOME/.azotebg # Include keybindings riverctl spawn $HOME/.config/river/keybindings.sh # Clipboard daemon pkill wl-paste wl-paste --watch cliphist store & disown wl-paste --watch pkill -RTMIN+9 waybar & disown # Playerctl daemon pkill playerctl playerctl -a metadata --format \'{{status}} {{title}}\' --follow | while read line; do pkill -RTMIN+5 waybar; done & disown # Run nwg-drawer as a daemon pkill nwg-drawer nwg-drawer -r & disown # Screenshot notification riverctl spawn /usr/share/river/scripts/screenshot-notify.sh & disown # Set background and border color riverctl background-color 0x002b36 riverctl border-color-focused 0x8aadf4 riverctl border-color-unfocused 0xa5adcb riverctl border-width 2 # Set the default layout generator to be rivertile and start it. # River will send the process group of the init executable SIGTERM on exit. riverctl default-layout rivertile rivertile -view-padding 6 -outer-padding 6