scwrypts v3 refactor

This commit is contained in:
2023-06-27 16:53:59 -06:00
parent 02ed7d615a
commit 1a64551465
57 changed files with 590 additions and 501 deletions

73
scwrypts/desktop/backlight Executable file
View File

@@ -0,0 +1,73 @@
#!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/notify --group dotwryn
CHECK_ENVIRONMENT
#####################################################################
{
command -v xbacklight && UTIL=xbacklight
command -v gmux_backlight && UTIL=gmux_backlight
command -v enlighten && UTIL=enlighten
} >/dev/null 2>&1
[[ $UTIL =~ ^enlighten$ ]] && {
CURRENT_PERCENT=$(enlighten | sed 's/.*(//;s/%.*//')
[[ $CURRENT_PERCENT -gt 60 ]] && DELTA=20
[[ $CURRENT_PERCENT -le 60 ]] && DELTA=10
[[ $CURRENT_PERCENT -le 40 ]] && DELTA=5
[[ $CURRENT_PERCENT -le 10 ]] && DELTA=1
}
case $1 in
up )
case $UTIL in
xbacklight ) xbacklight + 10 ;;
gmux_backlight ) gmux_backlight +100 ;;
enlighten )
[[ $CURRENT_PERCENT -ge 99 ]] && NOTIFY_SEND 'at maximum brightness' && exit 0
enlighten +${DELTA}%
;;
esac
;;
down )
case $UTIL in
xbacklight ) xbacklight - 10 ;;
gmux_backlight ) gmux_backlight -100 ;;
enlighten )
[[ $CURRENT_PERCENT -le 1 ]] && NOTIFY_SEND 'at minimum brightness' && exit 0
[[ $CURRENT_PERCENT -le 2 ]] && ARGS='=1%' || ARGS="-${DELTA}%"
enlighten "$ARGS"
;;
esac
;;
set )
[ ! $2 ] && FAIL 1 'no value provided to set'
case $UTIL in
xbacklight ) xbacklight -set $2 ;;
gmux_backlight ) gmux_backlight $2 ;;
enlighten ) enlighten "=$2" ;;
esac
;;
min | minimum )
case $UTIL in
enlighten ) enlighten '=1%' ;;
esac
;;
max | maximum )
case $UTIL in
enlighten ) enlighten '=100%' ;;
esac
;;
query | '' )
case $UTIL in
enlighten ) NOTIFY_SUCCESS "current brightness : $(enlighten)" ;;
esac
;;
* ) NOTIFY_FAIL 1 "operation '$1' not supported" ;;
esac

View File

@@ -0,0 +1,10 @@
#!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn
CHECK_ENVIRONMENT
#####################################################################
GET_COLORSCHEME_HEX $@

40
scwrypts/desktop/i3/lock Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/zsh
DEPENDENCIES+=(
i3lock
)
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn
use desktop/notify --group dotwryn
CHECK_ENVIRONMENT
#####################################################################
ARGS=(
--ignore-empty-password
--force-clock
--pass-screen-keys
--pass-media-keys
--pass-volume-keys
--pass-power-keys
--verif-text=''
--wrong-text=''
--blur=11
--insidever-color=$(GET_COLORSCHEME_HEX 6)
--ringver-color=$(GET_COLORSCHEME_HEX 10)
--insidewrong-color=$(GET_COLORSCHEME_HEX 1)
--ringwrong-color=$(GET_COLORSCHEME_HEX 9)
--inside-color=$(GET_COLORSCHEME_HEX 0)
--ring-color=$(GET_COLORSCHEME_HEX 2)
--time-color=$(GET_COLORSCHEME_HEX 7)
--date-color=$(GET_COLORSCHEME_HEX 15)
--keyhl-color=$(GET_COLORSCHEME_HEX 11)
--bshl-color=$(GET_COLORSCHEME_HEX 13)
)
RADIUS=$(xrandr | grep 'connected primary' | sed 's/.* \([0-9]\+\)x.*/\1/' | awk '{print int($1*0.08)}')
[ $RADIUS ] && ARGS+=(--radius=$RADIUS)
i3lock ${ARGS[@]} \
|| NOTIFY_ERROR 'i3lock-color' 'something went wrong; unable to lock' \
;

16
scwrypts/desktop/i3/logout Executable file
View File

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

View File

@@ -0,0 +1,27 @@
#!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=(
DESKTOP__WALLPAPER_PATH
)
CHECK_ENVIRONMENT
#####################################################################
[ ! -d $WALLPAPER_PATH ] \
&& FAIL 1 "no such directory for DESKTOP__WALLPAPER_PATH='$DESKTOP__WALLPAPER_PATH'"
SELECTION="$1"
[ ! $SELECTION ] && SELECTION=random
case $SELECTION in
random )
feh --recursive --randomize --bg-fill $WALLPAPER_PATH
;;
* )
[ ! -f $DESKTOP__WALLPAPER_PATH/$SELECTION ] \
&& FAIL 2 "no such wallpaper '$SELECTION' in wallpaper path"
feh --bg-fill $DESKTOP__WALLPAPER_PATH/$SELECTION
;;
esac

View File

@@ -0,0 +1,14 @@
#!/bin/zsh
DEPENDENCIES+=()
REQUIRED_ENV+=()
use desktop/colorscheme --group dotwryn
CHECK_ENVIRONMENT
#####################################################################
SET_THEME alternate
i3-sensible-terminal &
PID=$!
sleep 0.1
SET_THEME main
wait $!

10
scwrypts/desktop/play-sound Executable file
View File

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

46
scwrypts/desktop/pulseaudio Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
DEPENDENCIES+=(
pactl
)
REQUIRED_ENV+=()
use desktop/notify --group dotwryn
use media/audio --group dotwryn
#####################################################################
DEVICE="$1"
COMMAND="$2"
case $DEVICE in
sink ) AMIXER_DEVICE=Master ;;
source ) AMIXER_DEVICE=Capture ;;
* ) NOTIFY_FAIL 1 "Unsupported device '$DEVICE'" ;;
esac
DEFAULT_DEVICE="@DEFAULT_$(echo $DEVICE | tr '[:lower:]' '[:upper:]')@"
case $COMMAND in
up )
pactl set-$DEVICE-volume $DEFAULT_DEVICE +10% \
|| NOTIFY_ERROR "pactl error with set-$DEVICE-volume"
MEDIA__PLAY_SFX volume
;;
down )
pactl set-$DEVICE-volume $DEFAULT_DEVICE -10% \
|| NOTIFY_ERROR "pactl error with set-$DEVICE-volume"
MEDIA__PLAY_SFX volume
;;
mute )
pactl set-$DEVICE-mute $DEFAULT_DEVICE toggle \
&& NOTIFY_SUCCESS "default $DEVICE" "$(amixer sget $AMIXER_DEVICE | grep -q '\[on\]' && echo unmuted || echo muted)" \
|| NOTIFY_ERROR "pactl error with set-$DEVICE-mute"
MEDIA__PLAY_SFX mute
;;
* ) NOTIFY_FAIL 1 "Unsupported command '$COMMAND'" ;;
esac

52
scwrypts/desktop/screen-blank Executable file
View File

@@ -0,0 +1,52 @@
#!/bin/zsh
DEPENDENCIES+=(xset)
REQUIRED_ENV+=()
use desktop/notify --group dotwryn
CHECK_ENVIRONMENT
#####################################################################
case $1 in
enable | disable | query | toggle ) ACTION="$1" ;;
* )
[ ! $1 ] && ACTION=toggle
echo $ACTION
;;
esac
[[ $ACTION =~ ^toggle$ ]] && {
xset -q | grep -qi 'prefer blanking: *no' \
&& ACTION='enable' || ACTION='disable'
}
[ ! $ACTION ] && NOTIFY_FAIL 1 "unknown screen blank action '$1'"
case $ACTION in
enable ) : \
&& STATUS 'enabling screen blank' \
&& xset +dpms \
&& xset s blank \
&& xset s on \
&& NOTIFY_SUCCESS 'enabled screen blank' \
|| NOTIFY_FAIL 2 'error enabling screen blank'
;;
disable ) : \
&& STATUS 'disabling screen blank' \
&& xset dpms 0 0 0 \
&& xset s noblank \
&& xset s off \
&& NOTIFY_SUCCESS 'disabled screen blank' \
|| NOTIFY_FAIL 2 'error disabling screen blank'
;;
query )
xset -q | grep -qi 'prefer blanking: *no' \
&& CURRENT_STATE='disabled' || CURRENT_STATE='enabled'
[ ! $CURRENT_STATE ] && NOTIFY_FAIL 3 'unable to determine current setting'
NOTIFY_SUCCESS "screen blank is currently \\033[0;34m$CURRENT_STATE"
;;
esac