76 lines
2.4 KiB
Bash
Executable file
76 lines
2.4 KiB
Bash
Executable file
#!/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"
|
|
|
|
# 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
|
|
|
|
# Start PCmanFM-Qt as a daemon
|
|
pcmanfm-qt -d
|
|
|
|
# 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
|