From 9e9ccd0fded9913359dd304d0c74d327536f9d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Sat, 10 Aug 2024 23:43:34 +0200 Subject: [PATCH] river: repeat randr and restart sandbar if needed --- river/.config/river/bar | 41 +++++++++++++++++++++++++++------------ river/.config/river/init | 12 +++++++----- river/.config/river/randr | 21 ++++++++++++++++++++ 3 files changed, 57 insertions(+), 17 deletions(-) create mode 100755 river/.config/river/randr diff --git a/river/.config/river/bar b/river/.config/river/bar index 2367c54..247b53a 100755 --- a/river/.config/river/bar +++ b/river/.config/river/bar @@ -1,16 +1,33 @@ #!/usr/bin/env sh FIFO="$XDG_RUNTIME_DIR/sandbar" -[ -e "$FIFO" ] && rm -f "$FIFO" -mkfifo "$FIFO" -while cat "$FIFO"; do :; done | sandbar \ - -font "FiraCode Nerd Font Ret:size=10" \ - -active-fg-color "#000000" \ - -active-bg-color "#e8c47d" \ - -inactive-fg-color "#e8c47d" \ - -inactive-bg-color "#000000" \ - -urgent-fg-color "#000000" \ - -urgent-bg-color "#cc241d" \ - -title-fg-color "#000000" \ - -title-bg-color "#e8c47d" +run() { + echo run + [ -e "$FIFO" ] && rm -f "$FIFO" + mkfifo "$FIFO" + + "$HOME/.config/river/status" & + + while cat "$FIFO"; do :; done | sandbar \ + -font "FiraCode Nerd Font Ret:size=10" \ + -active-fg-color "#000000" \ + -active-bg-color "#e8c47d" \ + -inactive-fg-color "#e8c47d" \ + -inactive-bg-color "#000000" \ + -urgent-fg-color "#000000" \ + -urgent-bg-color "#cc241d" \ + -title-fg-color "#000000" \ + -title-bg-color "#e8c47d" +} + +while true; do + run + CODE=$? + if [ $CODE -ne 139 && $CODE -ne 134 ]; then + echo exit because $CODE + exit + fi + echo sleep and continue + sleep 1 +done diff --git a/river/.config/river/init b/river/.config/river/init index 2ceeadd..8943c24 100755 --- a/river/.config/river/init +++ b/river/.config/river/init @@ -1,18 +1,20 @@ #!/bin/sh -"${HOME}/.config/river/keymap" - LOCK_COMMAND='swaylock -f -c 1f7693' -RANDR_COMMAND='sh -c "wlr-randr --output DP-1 --scale 2 --pos 0,0; wlr-randr --output DP-2 --scale 2 --pos 1920,0"' +RANDR_COMMAND='${HOME}/.config/river/randr --on' +RANDR_OFF_COMMAND='${HOME}/.config/river/randr --off' riverctl spawn "${RANDR_COMMAND}" +"${HOME}/.config/river/keymap" + # 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 1 -outer-padding 0 & -riverctl spawn "${HOME}/.config/river/status" riverctl spawn "${HOME}/.config/river/bar" -riverctl spawn "swayidle -w timeout 300 '${LOCK_COMMAND}' before-sleep '${LOCK_COMMAND}' after-resume '${RANDR_COMMAND}'" +riverctl spawn "swayidle -w timeout 300 '${LOCK_COMMAND}' \ + timeout 330 '${RANDR_OFF_COMMAND}' resume '${RANDR_COMMAND}' \ + before-sleep '${LOCK_COMMAND}' after-resume '${RANDR_COMMAND}'" diff --git a/river/.config/river/randr b/river/.config/river/randr new file mode 100755 index 0000000..d5c5f50 --- /dev/null +++ b/river/.config/river/randr @@ -0,0 +1,21 @@ +#!/usr/bin/env sh + +repeat() { + for x in {0..10}; do + echo "$@" + "$@" + sleep 1 + done +} + +case "$1" in + --on) + repeat wlr-randr --output DP-1 --on --scale 2 --pos 0,0 & + repeat wlr-randr --output DP-2 --on --scale 2 --pos 1920,0 & + sleep 10 + ;; + --off) + wlr-randr --output DP-1 --off + wlr-randr --output DP-2 --off + ;; +esac