scwrypts v4 compatibility

This commit is contained in:
Wryn (yage) Wagner 2024-02-20 23:08:00 -07:00
parent fab3d7c54e
commit a7590c1b84
19 changed files with 288 additions and 383 deletions

View File

@ -1,27 +1,23 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/notify --group dotwryn use desktop/notify --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
{ MAIN() {
command -v xbacklight && UTIL=xbacklight local UTIL
command -v gmux_backlight && UTIL=gmux_backlight for UTIL in enlighten gmux_backlight xbacklight
command -v enlighten && UTIL=enlighten do
} >/dev/null 2>&1 command -v $UTIL >/dev/null 2>&1 && break
done
[[ $UTIL =~ ^enlighten$ ]] && { [[ $UTIL =~ ^enlighten$ ]] && {
CURRENT_PERCENT=$(enlighten | sed 's/.*(//;s/%.*//') CURRENT_PERCENT=$(enlighten | sed 's/.*(//;s/%.*//')
[[ $CURRENT_PERCENT -gt 60 ]] && DELTA=20 [[ $CURRENT_PERCENT -gt 60 ]] && DELTA=20
[[ $CURRENT_PERCENT -le 60 ]] && DELTA=10 [[ $CURRENT_PERCENT -le 60 ]] && DELTA=10
[[ $CURRENT_PERCENT -le 40 ]] && DELTA=5 [[ $CURRENT_PERCENT -le 40 ]] && DELTA=5
[[ $CURRENT_PERCENT -le 10 ]] && DELTA=1 [[ $CURRENT_PERCENT -le 10 ]] && DELTA=1
} }
case $1 in case $1 in
up ) up )
case $UTIL in case $UTIL in
xbacklight ) xbacklight + 10 ;; xbacklight ) xbacklight + 10 ;;
@ -70,4 +66,5 @@ case $1 in
;; ;;
* ) NOTIFY_FAIL 1 "operation '$1' not supported" ;; * ) NOTIFY_FAIL 1 "operation '$1' not supported" ;;
esac esac
}

View File

@ -1,16 +1,7 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn use desktop/colorscheme --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
MAIN() { MAIN() {
unset USAGE
GET_COLORSCHEME_HEX $@ GET_COLORSCHEME_HEX $@
} }
#####################################################################
MAIN $@

View File

@ -1,16 +1,7 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn use desktop/colorscheme --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
MAIN() { MAIN() {
unset USAGE
SET_THEME $@ SET_THEME $@
} }
#####################################################################
MAIN $@

View File

@ -1,29 +1,16 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=( DEPENDENCIES+=(diff)
diff REQUIRED_ENV+=(I3__MODEL_CONFIG)
)
REQUIRED_ENV+=(
I3__MODEL_CONFIG
)
CHECK_ENVIRONMENT
##################################################################### #####################################################################
REGEX_FONT='^\(font [^0-9]*\)\(.*\)' USAGE="
REGEX_DMENU="^\\(.*dmenu_run .*-fn '[^0-9]*\\)\\([0-9]*\\)'"
REGEX_BORDER='^\(for_window.*border pixel \)\(.*\)'
INSTALL() {
local USAGE="
usage: [...options...] usage: [...options...]
options options:
-f, --force force replacement of existing i3config -f, --force force replacement of existing i3config
-n, --no-link if output config and template are the same, don't create link -n, --no-link if output config and template are the same, don't create link
-h, --help print this message and exit environment:
environment
I3__MODEL_CONFIG fully-qualified path to sourced i3config I3__MODEL_CONFIG fully-qualified path to sourced i3config
I3__GLOBAL_FONT_SIZE global font size I3__GLOBAL_FONT_SIZE global font size
I3__DMENU_FONT_SIZE (optional) font size for 'dmenu' command I3__DMENU_FONT_SIZE (optional) font size for 'dmenu' command
@ -34,7 +21,15 @@ INSTALL() {
to match the current monitor. Since i3-msg provides no way to change to match the current monitor. Since i3-msg provides no way to change
font size, I run this command to update those variables on a local font size, I run this command to update those variables on a local
copy of my sourced config copy of my sourced config
" "
#####################################################################
REGEX_FONT='^\(font [^0-9]*\)\(.*\)'
REGEX_DMENU="^\\(.*dmenu_run .*-fn '[^0-9]*\\)\\([0-9]*\\)'"
REGEX_BORDER='^\(for_window.*border pixel \)\(.*\)'
MAIN() {
local FORCE=0 local FORCE=0
local AUTOLINK=1 local AUTOLINK=1
while [[ $# -gt 0 ]] while [[ $# -gt 0 ]]
@ -84,19 +79,16 @@ INSTALL() {
[ -f "$CONFIG_FILE.bak" ] \ [ -f "$CONFIG_FILE.bak" ] \
&& diff "$CONFIG_FILE" "$CONFIG_FILE.bak" -q >/dev/null \ && diff "$CONFIG_FILE" "$CONFIG_FILE.bak" -q >/dev/null \
&& mv "$CONFIG_FILE.bak" "$CONFIG_FILE" \ && mv "$CONFIG_FILE.bak" "$CONFIG_FILE" \
&& INFO "no changes were made" \ && DEBUG "no changes were made" \
; ;
[[ $AUTOLINK -eq 1 ]] \ [[ $AUTOLINK -eq 1 ]] \
&& diff "$CONFIG_FILE" "$I3__MODEL_CONFIG" -q >/dev/null \ && diff "$CONFIG_FILE" "$I3__MODEL_CONFIG" -q >/dev/null \
&& rm "$CONFIG_FILE" \ && rm "$CONFIG_FILE" \
&& ln -s "$I3__MODEL_CONFIG" "$CONFIG_FILE" \ && ln -s "$I3__MODEL_CONFIG" "$CONFIG_FILE" \
&& INFO "output is the same as model, i3config has been linked to model" \ && DEBUG "output is the same as model, i3config has been linked to model" \
; ;
[[ $FORCE -eq 1 ]] && rm "$CONFIG.bak" >/dev/null 2>&1 [[ $FORCE -eq 1 ]] && rm "$CONFIG.bak" >/dev/null 2>&1
return 0 return 0
} }
#####################################################################
INSTALL $@

View File

@ -1,19 +1,10 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=(
i3-msg
xdotool
xrandr
)
REQUIRED_ENV+=()
use system/desktop/notify use system/desktop/notify
CHECK_ENVIRONMENT DEPENDENCIES+=(i3-msg xdotool xrandr)
##################################################################### #####################################################################
LAUNCH_OR_SHOW() { USAGE="
INFO $@
local USAGE="
usage: <path-executable> [client-class] [...options...] usage: <path-executable> [client-class] [...options...]
options options
@ -39,7 +30,12 @@ LAUNCH_OR_SHOW() {
2) adds all instances of the specified application to the scratchpad 2) adds all instances of the specified application to the scratchpad
3) (toggle) hides all visible instances 3) (toggle) hides all visible instances
4) (toggle) shows all scratchpad-hidden instances 4) (toggle) shows all scratchpad-hidden instances
" "
#####################################################################
MAIN() {
DEBUG $@
local APPLICATION CLIENT_CLASS local APPLICATION CLIENT_CLASS
local XFFSET=0.0 local XFFSET=0.0
@ -112,7 +108,7 @@ LAUNCH_OR_SHOW() {
| awk -v f=$SCALE -v x=$XFFSET -v y=$YFFSET \ | awk -v f=$SCALE -v x=$XFFSET -v y=$YFFSET \
'{print int($1*f+x)," ",int($2*f+y);}'\ '{print int($1*f+x)," ",int($2*f+y);}'\
) )
INFO "window size: $WINDOW_SIZE" DEBUG "window size: $WINDOW_SIZE"
STATUS 'moving window to scratchpad' STATUS 'moving window to scratchpad'
i3-msg "[class=$CLIENT_CLASS] move scratchpad" i3-msg "[class=$CLIENT_CLASS] move scratchpad"
@ -131,6 +127,3 @@ LAUNCH_OR_SHOW() {
return 0 return 0
} }
#####################################################################
LAUNCH_OR_SHOW $@

View File

@ -1,16 +1,12 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=(
i3lock
)
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn use desktop/colorscheme --group dotwryn
use desktop/notify --group dotwryn use desktop/notify --group dotwryn
CHECK_ENVIRONMENT DEPENDENCIES+=(i3lock)
##################################################################### #####################################################################
ARGS=( MAIN() {
local ARGS=(
--ignore-empty-password --ignore-empty-password
--force-clock --force-clock
--pass-screen-keys --pass-screen-keys
@ -32,9 +28,10 @@ ARGS=(
--bshl-color=$(GET_COLORSCHEME_HEX 13) --bshl-color=$(GET_COLORSCHEME_HEX 13)
) )
RADIUS=$(xrandr | grep 'connected primary' | sed 's/.* \([0-9]\+\)x.*/\1/' | awk '{print int($1*0.08)}') local RADIUS=$(xrandr | grep 'connected primary' | sed 's/.* \([0-9]\+\)x.*/\1/' | awk '{print int($1*0.08)}')
[ $RADIUS ] && ARGS+=(--radius=$RADIUS) [ $RADIUS ] && ARGS+=(--radius=$RADIUS)
i3lock ${ARGS[@]} \ i3lock ${ARGS[@]} \
|| NOTIFY_ERROR 'i3lock-color' 'something went wrong; unable to lock' \ || NOTIFY_ERROR 'i3lock-color' 'something went wrong; unable to lock' \
; ;
}

View File

@ -1,16 +1,13 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=(
i3-nagbar
)
REQUIRED_ENV+=()
use desktop/notify --group dotwryn use desktop/notify --group dotwryn
CHECK_ENVIRONMENT DEPENDENCIES+=(i3-nagbar)
##################################################################### #####################################################################
i3-nagbar \
MAIN() {
i3-nagbar \
-t warning \ -t warning \
-m 'Do you really want to exit i3?' \ -m 'Do you really want to exit i3?' \
-B 'Yes' "notify-send 'system' 'exiting i3...' -i face-tired; i3-msg exit" \ -B 'Yes' "notify-send 'system' 'exiting i3...' -i face-tired; i3-msg exit" \
|| NOTIFY_ERROR 'unable to launch i3-nagbar' || NOTIFY_ERROR 'unable to launch i3-nagbar'
}

View File

@ -1,20 +1,15 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=() REQUIRED_ENV+=(DESKTOP__WALLPAPER_PATH)
REQUIRED_ENV+=(
DESKTOP__WALLPAPER_PATH
)
CHECK_ENVIRONMENT
##################################################################### #####################################################################
MAIN() {
[ ! -d $WALLPAPER_PATH ] \ [ ! -d $WALLPAPER_PATH ] \
&& FAIL 1 "no such directory for DESKTOP__WALLPAPER_PATH='$DESKTOP__WALLPAPER_PATH'" && FAIL 1 "no such directory for DESKTOP__WALLPAPER_PATH='$DESKTOP__WALLPAPER_PATH'"
SELECTION="$1" SELECTION="$1"
[ ! $SELECTION ] && SELECTION=random [ ! $SELECTION ] && SELECTION=random
case $SELECTION in case $SELECTION in
random ) random )
feh --recursive --randomize --bg-fill $WALLPAPER_PATH feh --recursive --randomize --bg-fill $WALLPAPER_PATH
;; ;;
@ -24,4 +19,5 @@ case $SELECTION in
feh --bg-fill $DESKTOP__WALLPAPER_PATH/$SELECTION feh --bg-fill $DESKTOP__WALLPAPER_PATH/$SELECTION
;; ;;
esac esac
}

View File

@ -1,10 +1,7 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use media/audio --group dotwryn use media/audio --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
MEDIA__PLAY_SFX $@ MAIN() {
MEDIA__PLAY_SFX $@
}

View File

@ -1,10 +1,7 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/pulse-audio --group dotwryn use desktop/pulse-audio --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
PA__SET_DEFAULT_AUDIO $@ MAIN() {
PA__SET_DEFAULT_AUDIO $@
}

View File

@ -1,26 +1,24 @@
#!/bin/zsh #!/bin/zsh
source $HOME/.config/wryn/env.zsh
DEPENDENCIES+=(
pactl
)
REQUIRED_ENV+=()
use desktop/notify --group dotwryn use desktop/notify --group dotwryn
use media/audio --group dotwryn use media/audio --group dotwryn
DEPENDENCIES+=(pactl)
source $HOME/.config/wryn/env.zsh
##################################################################### #####################################################################
DEVICE="$1" MAIN() {
COMMAND="$2" local DEVICE="$1"
local COMMAND="$2"
case $DEVICE in case $DEVICE in
sink ) AMIXER_DEVICE=Master ;; sink ) AMIXER_DEVICE=Master ;;
source ) AMIXER_DEVICE=Capture ;; source ) AMIXER_DEVICE=Capture ;;
* ) NOTIFY_FAIL 1 "Unsupported device '$DEVICE'" ;; * ) NOTIFY_FAIL 1 "Unsupported device '$DEVICE'" ;;
esac esac
DEFAULT_DEVICE="@DEFAULT_$(echo $DEVICE | tr '[:lower:]' '[:upper:]')@" local DEFAULT_DEVICE="@DEFAULT_$(echo $DEVICE | tr '[:lower:]' '[:upper:]')@"
case $COMMAND in case $COMMAND in
up ) up )
pactl set-$DEVICE-volume $DEFAULT_DEVICE +10% \ pactl set-$DEVICE-volume $DEFAULT_DEVICE +10% \
|| NOTIFY_ERROR "pactl error with set-$DEVICE-volume" || NOTIFY_ERROR "pactl error with set-$DEVICE-volume"
@ -43,4 +41,5 @@ case $COMMAND in
;; ;;
* ) NOTIFY_FAIL 1 "Unsupported command '$COMMAND'" ;; * ) NOTIFY_FAIL 1 "Unsupported command '$COMMAND'" ;;
esac esac
}

View File

@ -1,28 +1,26 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=(xset)
REQUIRED_ENV+=()
use desktop/notify --group dotwryn use desktop/notify --group dotwryn
CHECK_ENVIRONMENT DEPENDENCIES+=(xset)
##################################################################### #####################################################################
case $1 in MAIN() {
case $1 in
enable | disable | query | toggle ) ACTION="$1" ;; enable | disable | query | toggle ) ACTION="$1" ;;
* ) * )
[ ! $1 ] && ACTION=toggle [ ! $1 ] && ACTION=toggle
echo $ACTION echo $ACTION
;; ;;
esac esac
[[ $ACTION =~ ^toggle$ ]] && { [[ $ACTION =~ ^toggle$ ]] && {
xset -q | grep -qi 'prefer blanking: *no' \ xset -q | grep -qi 'prefer blanking: *no' \
&& ACTION='enable' || ACTION='disable' && ACTION='enable' || ACTION='disable'
} }
[ ! $ACTION ] && NOTIFY_FAIL 1 "unknown screen blank action '$1'" [ ! $ACTION ] && NOTIFY_FAIL 1 "unknown screen blank action '$1'"
case $ACTION in case $ACTION in
enable ) : \ enable ) : \
&& STATUS 'enabling screen blank' \ && STATUS 'enabling screen blank' \
&& xset +dpms \ && xset +dpms \
@ -49,4 +47,5 @@ case $ACTION in
NOTIFY_SUCCESS "screen blank is currently \\033[0;34m$CURRENT_STATE" NOTIFY_SUCCESS "screen blank is currently \\033[0;34m$CURRENT_STATE"
;; ;;
esac esac
}

View File

@ -1,10 +1,7 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/xrandr --group dotwryn use desktop/xrandr --group dotwryn
CHECK_ENVIRONMENT
##################################################################### #####################################################################
XRANDR__DISCONNECT_ALL_DISPLAYS $@ MAIN() {
XRANDR__DISCONNECT_ALL_DISPLAYS $@
}

View File

@ -1,12 +1,6 @@
#!/bin/zsh #!/bin/zsh
DEPENDENCIES+=( DEPENDENCIES+=(hostnamectl)
hostnamectl REQUIRED_ENV+=(WRYN__SERVER_HOSTNAMES)
)
REQUIRED_ENV+=(
WRYN__SERVER_HOSTNAMES
)
CHECK_ENVIRONMENT
##################################################################### #####################################################################
SESSION='update' SESSION='update'
@ -60,38 +54,38 @@ CURRENT_SESSION=$(\
##################################################################### #####################################################################
CHECK_SESSION && FAIL 1 'update currently in progress' MAIN() {
CHECK_SESSION && FAIL 1 'update currently in progress'
tmux new -d -s $SESSION "echo 'updating all systems'; echo '(leave this window open)'; while true; do sleep 30; done" tmux new -d -s $SESSION "echo 'updating all systems'; echo '(leave this window open)'; while true; do sleep 30; done"
yN 'after update, do you want to reboot all machines?' && REBOOT=1 || REBOOT=0 yN 'after update, do you want to reboot all machines?' && REBOOT=1 || REBOOT=0
REMINDER REMINDER "
REMINDER 'manual action is required; (in another tab) connect to tmux:' manual action is required; (in another tab) connect to tmux:
REMINDER "tmux a -t $SESSION" tmux a -t $SESSION
REMINDER
REMINDER 'to stop the update at any time, run:'
REMINDER "tmux kill-session -t $SESSION"
REMINDER
[ $CURRENT_SESSION ] && { to stop the update at any time, run:
tmux kill-session -t $SESSION
"
[ $CURRENT_SESSION ] && {
SUCCESS 'currently in a tmux session; opening new window...' SUCCESS 'currently in a tmux session; opening new window...'
tmux new-window -t $CURRENT_SESSION "unset TMUX; tmux a -t $SESSION" tmux new-window -t $CURRENT_SESSION "unset TMUX; tmux a -t $SESSION"
}
UPDATE_ALL 'yay -Syu'
UPDATE_ALL 'cd ~/.wryn; git pull --autostash'
UPDATE_ALL '~/.wryn/bin/scwrypts config update'
UPDATE_ALL '~/.wryn/bin/scwrypts media push'
UPDATE_ALL '~/.wryn/bin/scwrypts media pull'
UPDATE_ALL 'command -v i3-msg >/dev/null 2>&1 || exit 0; ~/.wryn/bin/scwrypts i3 font override'
[[ $REBOOT -eq 1 ]] && UPDATE_ALL 'reboot || sudo reboot'
tmux kill-session -t $SESSION >/dev/null 2>&1
CHECK_SESSION && WARNING "unable to close tmux session '$SESSION'"
SUCCESS " \nfinished system update accross all servers\n "
[[ $REBOOT -eq 1 ]] && { STATUS 'rebooting host machine'; sleep 3; reboot || sudo reboot; }
} }
UPDATE_ALL 'yay -Syu'
UPDATE_ALL 'cd ~/.wryn; git pull --autostash'
UPDATE_ALL '~/.wryn/bin/scwrypts config update'
UPDATE_ALL '~/.wryn/bin/scwrypts media push'
UPDATE_ALL '~/.wryn/bin/scwrypts media pull'
UPDATE_ALL 'command -v i3-msg >/dev/null 2>&1 || exit 0; ~/.wryn/bin/scwrypts i3 font override'
[[ $REBOOT -eq 1 ]] && UPDATE_ALL 'reboot || sudo reboot'
tmux kill-session -t $SESSION >/dev/null 2>&1
CHECK_SESSION && WARNING "unable to close tmux session '$SESSION'"
SUCCESS
SUCCESS 'finished system update accross all servers'
SUCCESS
[[ $REBOOT -eq 1 ]] && { STATUS 'rebooting host machine'; sleep 3; reboot || sudo reboot; }

View File

@ -1,13 +1,6 @@
#!/bin/zsh #!/bin/zsh
#####################################################################
DEPENDENCIES+=()
REQUIRED_ENV+=()
use ssh --group remote use ssh --group remote
CHECK_ENVIRONMENT CHECK_ENVIRONMENT
#####################################################################
REMOTE__LOGIN $@ REMOTE__LOGIN $@

View File

@ -1,13 +1,6 @@
#!/bin/zsh #!/bin/zsh
#####################################################################
DEPENDENCIES+=()
REQUIRED_ENV+=()
use tmux --group remote use tmux --group remote
CHECK_ENVIRONMENT CHECK_ENVIRONMENT
#####################################################################
REMOTE_CONNECT_TMUX $@ REMOTE_CONNECT_TMUX $@

View File

@ -1,13 +1,6 @@
#!/bin/zsh #!/bin/zsh
#####################################################################
DEPENDENCIES+=()
REQUIRED_ENV+=()
use ssh --group remote use ssh --group remote
CHECK_ENVIRONMENT CHECK_ENVIRONMENT
#####################################################################
REMOTE_ARGS=(-Y) REMOTE__LOGIN $@ REMOTE_ARGS=(-Y) REMOTE__LOGIN $@

View File

@ -1,13 +1,9 @@
#!/bin/zsh #!/bin/zsh
#####################################################################
DEPENDENCIES+=( DEPENDENCIES+=(
tmux tmux
hostnamectl hostnamectl
scwrypts # must be on path scwrypts # must be on path
) )
REQUIRED_ENV+=()
CHECK_ENVIRONMENT CHECK_ENVIRONMENT

View File

@ -1,12 +1,5 @@
#!/bin/zsh #!/bin/zsh
#####################################################################
DEPENDENCIES+=()
REQUIRED_ENV+=()
CHECK_ENVIRONMENT CHECK_ENVIRONMENT
##################################################################### #####################################################################
[[ $TERM =~ tmux ]] && FAIL 69 "\n Cannot run tmux-omni within a tmux session!\n " [[ $TERM =~ tmux ]] && FAIL 69 "\n Cannot run tmux-omni within a tmux session!\n "