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

1
bin/altaria/default Symbolic link
View File

@ -0,0 +1 @@
homedock

View File

@ -1,22 +1,18 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
xrandr --output HDMI-0 --mode 3840x2160; sleep 1
xrandr \
--output DP-0 \
--off \
--output DP-2 \
--output HDMI-0 \
--primary \
--mode 3840x2160 \
--rotate normal \
--pos 0x0 \
;
sleep 2;
xrandr --output DP-2 --mode 3840x2160 --rate 120;
pkill compton
$DOTWRYN/bin/set-background random
$DOTWRYN/bin/play-sound login
xset dpms 0 0 0 && xset s noblank && xset s off \
&& notify-send 'DPMS' 'disabled screen blank'
scwrypts desktop/screen-blank -- disable
scwrypts desktop/i3/set-background -- roy-art.jpg
scwrypts desktop/play-sound -- gamedock

View File

@ -1,24 +0,0 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
xrandr --output HDMI-0 --mode 3840x2160; sleep 1
xrandr \
--output DP-0 \
--mode 3840x2160 \
--rotate normal \
--pos 0x0 \
--output DP-2 \
--primary \
--mode 3840x2160 \
--rotate normal \
--left-of DP-0 \
;
(pkill compton; sleep 1; compton;) &
$DOTWRYN/bin/set-background purple.jpg
$DOTWRYN/bin/play-sound login
xset dpms 0 0 0 && xset s noblank && xset s off \
&& notify-send 'DPMS' 'disabled screen blank'

20
bin/altaria/homedock Executable file
View File

@ -0,0 +1,20 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
xrandr \
--output DP-0 \
--primary \
--mode 1920x1080 \
--rotate normal \
--pos 0x0 \
--output HDMI-0 \
--mode 1920x1080 \
--rotate normal \
--pos 0x0 \
;
(pkill compton; sleep 1; compton;) &
scwrypts desktop/screen-blank -- disable
scwrypts desktop/i3/set-background -- purple.jpg
scwrypts desktop/play-sound -- login

View File

@ -1,2 +1,3 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
[ ! $DISPLAY ] && export DISPLAY=:0

View File

@ -1,19 +0,0 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
case $1 in
up )
xbacklight + 10 \
|| gmux_backlight +100
;;
down )
xbacklight - 10 \
|| gmux_backlight -100
;;
* )
echo 'must specify "up" or "down"'
exit 1
;;
esac
$DOTWRYN/bin/play-sound backlight

1
bin/butterfree/default Symbolic link
View File

@ -0,0 +1 @@
undock

View File

@ -1,17 +0,0 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
#####################################################################
GET_COLORSCHEME_HEX() {
[ $1 ] && [[ $1 -le 15 ]] && [[ $1 -ge 0 ]] \
|| __FAIL 1 'must provide ANSI color number 0-15'
grep "^color$1" "$DOTWRYN/colorschemes/kitty.main" \
| awk '{print $2}' \
| sed 's/ //g; s/#//g' \
| tr '[:lower:]' '[:upper:]'
}
#####################################################################
[ ! $1 ] && return 0
GET_COLORSCHEME_HEX $@

View File

@ -1,5 +0,0 @@
#!/bin/zsh
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"

View File

@ -1,25 +1,25 @@
#!/bin/zsh
source "$HOME/.config/wryn/env.zsh"
case $1 in
next ) $DOTWRYN/bin/media next ;;
prev ) $DOTWRYN/bin/media prev ;;
play ) $DOTWRYN/bin/media play ;;
#next ) scwrypts desktop/media -- next ;;
#prev ) scwrypts desktop/media -- prev ;;
#play ) scwrypts desktop/media -- play ;;
volumeup ) $DOTWRYN/bin/pulseaudio sink up ;;
volumedown ) $DOTWRYN/bin/pulseaudio sink down ;;
volumemute ) $DOTWRYN/bin/pulseaudio sink mute ;;
micmute ) $DOTWRYN/bin/pulseaudio source mute ;;
volumeup ) scwrypts desktop/pulseaudio -- sink up ;;
volumedown ) scwrypts desktop/pulseaudio -- sink down ;;
volumemute ) scwrypts desktop/pulseaudio -- sink mute ;;
micmute ) scwrypts desktop/pulseaudio -- source mute ;;
backlightup ) $DOTWRYN/bin/backlight up ;;
backlightdown ) $DOTWRYN/bin/backlight down ;;
backlightup ) scwrypts desktop/backlight -- up ;;
backlightdown ) scwrypts desktop/backlight -- down ;;
lock ) $DOTWRYN/bin/i3lock ;;
lock ) scwrypts desktop/i3/lock -- ;;
bgrandomize ) $DOTWRYN/bin/set-background random ;;
bgrandomize ) scwrypts desktop/i3/set-background -- random ;;
alternateterm ) $DOTWRYN/bin/kitty-alternate-theme ;;
alternateterm ) scwrypts desktop/kitty-alternate-theme -- ;;
logout ) $DOTWRYN/bin/i3-logout ;;
logout ) scwrypts desktop/i3/logout -- ;;
launch )
local PROGRAM
@ -28,15 +28,16 @@ case $1 in
messages ) PROGRAM=android-messages-desktop ;;
voice ) PROGRAM=google-voice-desktop ;;
ytmusic ) PROGRAM=youtubemusic-nativefier ;;
scrcpy ) PROGRAM=scrcpy ;;
discord ) PROGRAM=discord ARGS+=(-a) ;;
spotify ) PROGRAM=spotify ARGS+=(-c Spotify) ;;
1pass ) PROGRAM=1password ARGS+=(-c 1Password) ;;
discord ) PROGRAM=discord ARGS+=(-a --has-statusbar-icon) ;;
obs ) PROGRAM=obs ARGS+=(-c '^obs' -n -l --has-statusbar-icon) ;;
pavuctrl ) PROGRAM=pavucontrol ARGS+=(-s 0.5 -c '^Pavucontrol') ;;
obs ) PROGRAM=obs ARGS+=(-c '^obs') ;;
scrcpy ) PROGRAM=scrcpy ARGS+=(-n -l) ;;
spotify ) PROGRAM=spotify ARGS+=(-c Spotify) ;;
* ) PROGRAM=$2 ;;
esac
scwrypts i3/launch-or-show --env local -- $PROGRAM ${ARGS[@]}
scwrypts i3/launch-or-show -- $PROGRAM ${ARGS[@]}
;;
esac

View File

@ -1,38 +0,0 @@
#!/bin/zsh
# note: requires i3lock-color
which i3lock >/dev/null 2>&1 || {
notify-send 'i3lock-color' 'could not find installation of i3lock'
}
source $HOME/.config/wryn/env.zsh
source $DOTWRYN/bin/get-colorscheme-hex
#####################################################################
RADIUS=$(xrandr | grep 'connected primary' | sed 's/.* \([0-9]\+\)x.*/\1/' | awk '{print int($1*0.08)}')
ARGS=(
--ignore-empty-password
--force-clock
--pass-screen-keys
--pass-media-keys
--pass-volume-keys
--pass-power-keys
--verif-text=''
--wrong-text=''
)
[ $NOBLUR ] && ARGS+=(--color=$(GET_COLORSCHEME_HEX 0)69) || ARGS+=(--blur=11)
[ $RADIUS ] && ARGS+=(--radius=$RADIUS)
i3lock ${ARGS[@]} \
--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) \
|| notify-send 'i3lock-color' 'something went wrong; unable to lock' \
;

View File

@ -1,15 +0,0 @@
#!/bin/zsh
source "$HOME/.config/wryn/env.zsh"
function _SET_THEME() {
local THEME="$1"
local LOCAL_THEME="$HOME/.config/kitty/theme.conf"
rm -- $LOCAL_THEME
ln -s "$DOTWRYN/colorschemes/kitty.$THEME" "$LOCAL_THEME"
}
_SET_THEME alternate
i3-sensible-terminal &
sleep 0.1
_SET_THEME main

View File

@ -1,32 +0,0 @@
#!/bin/zsh
source "$HOME/.config/wryn/env.zsh"
which canberra-gtk-play >/dev/null 2>&1 || {
notify-send 'canberra-gtk-play' "unable to play '$1'; is canberra-gtk-play installed?"
exit 1
}
PLAY() { canberra-gtk-play -f "$SFX_PATH/$1"; }
SFX_FILE=''
case $1 in
volume ) SFX_FILE=yaru-message.oga ;;
mute ) SFX_FILE=smooth-dialog-warning.oga ;;
backlight ) SFX_FILE=yaru-audio-volume-change.oga ;;
login ) SFX_FILE=yaru-desktop-login.oga ;;
logout ) SFX_FILE=smooth-desktop-login.oga ;;
notify ) SFX_FILE=yaru-complete.oga ;;
undock ) SFX_FILE=yaru-desktop-login.oga ;;
homedock ) SFX_FILE=homedock.oga ;;
gamedock ) SFX_FILE=gamedock.oga ;;
* ) SFX_FILE="$1"
;;
esac
[ ! -f "$SFX_PATH/$SFX_FILE" ] && {
notify-send 'canberra-gtk-play' "no such sfx file or alias '$1'" \
exit 2
}
canberra-gtk-play -f "$SFX_PATH/$SFX_FILE" \
|| notify-send 'canberra-gtk-play' "unable to play '$1'"

View File

@ -1,43 +0,0 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
#####################################################################
USAGE="$0 (sink|source) (up|down|mute)"
function ERROR() {
local ERROR_CODE=$1
local MESSAGE="$2"
echo -e "$MESSAGE\n\nUSAGE : $USAGE\n" >&2
exit $ERROR_CODE
}
#####################################################################
DEVICE="$1"
COMMAND="$2"
case $DEVICE in
sink ) AMIXER_DEVICE=Master ;;
source ) AMIXER_DEVICE=Capture ;;
* ) ERROR 1 "Unsupported device '$DEVICE'" ;;
esac
DEFAULT_DEVICE="@DEFAULT_$(echo $DEVICE | tr '[:lower:]' '[:upper:]')@"
case $COMMAND in
up )
pactl set-$DEVICE-volume $DEFAULT_DEVICE +10%
$DOTWRYN/bin/play-sound volume
;;
down )
pactl set-$DEVICE-volume $DEFAULT_DEVICE -10%
$DOTWRYN/bin/play-sound volume
;;
mute )
pactl set-$DEVICE-mute $DEFAULT_DEVICE toggle
$DOTWRYN/bin/play-sound mute
notify-send "default $DEVICE" "$(amixer sget $AMIXER_DEVICE | grep -q '\[on\]' && echo unmuted || echo muted)"
;;
* ) ERROR "Unsupported command '$COMMAND'" ;;
esac

View File

@ -1,14 +0,0 @@
#!/bin/zsh
source "$HOME/.config/wryn/env.zsh"
[ ! -d $WALLPAPER_PATH ] && exit 1
case $1 in
random )
feh --recursive --randomize --bg-fill $WALLPAPER_PATH
;;
* )
[ ! -f $WALLPAPER_PATH/$1 ] && exit 2
feh --bg-fill $WALLPAPER_PATH/$1
;;
esac

1
bin/umbreon/default Symbolic link
View File

@ -0,0 +1 @@
undock

View File

@ -1,23 +0,0 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
MOBILE=1
ARGS=()
[[ $MOBILE -eq 1 ]] && {
ARGS+=(--output DP-3 --mode 1920x1080 --pos 0x0 --primary)
ARGS+=(--output eDP-1 --mode 1920x1200 --right-of DP-3)
} || {
ARGS+=(--output DP-3-1 --mode 1920x1080 --pos 0x0 --primary)
ARGS+=(--output eDP-1 --off)
}
xrandr ${ARGS[@]}
xset dpms 0 0 0 && xset s noblank && xset s off \
&& notify-send 'DPMS' 'disabled screen blank'
(pkill compton; sleep 0.5; compton;) &
$DOTWRYN/bin/set-background random
$DOTWRYN/bin/play-sound gamedock

View File

@ -1,20 +1,17 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
ARGS=($(ALL_OTHER_DISPLAYS_OFF eDP-1))
xrandr \
xrandr ${ARGS[@]} \
--output eDP-1 \
--primary \
--auto \
--mode 960x600 \
--rotate normal \
--rate 60 \
--pos 0x0 \
--rotate normal \
;
pkill compton
xset dpms 0 0 0 && xset s noblank && xset s off \
&& notify-send 'DPMS' 'disabled screen blank'
$DOTWRYN/bin/set-background random
$DOTWRYN/bin/play-sound gamedock
scwrypts desktop/screen-blank -- disable
scwrypts desktop/i3/set-background -- link-vs-gdizz.jpg
scwrypts desktop/play-sound -- gamedock

View File

@ -1,23 +1,17 @@
#!/bin/zsh
source ${0:a:h}/xorg.zsh
ARGS=($(ALL_OTHER_DISPLAYS_OFF eDP-1))
xrandr \
xrandr ${ARGS[@]} \
--output eDP-1 \
--primary \
--auto \
--mode 1920x1200 \
--rotate normal \
--pos 0x0 \
--output DP-3-1 \
--off \
--output DP-3 \
--off \
--rotate normal \
;
xset +dpms && xset s blank && xset s on \
&& notify-send 'DPMS' 'enabled screen blank'
(pkill compton; sleep 0.5; compton;) &
$DOTWRYN/bin/set-background random
$DOTWRYN/bin/play-sound gamedock
scwrypts desktop/screen-blank -- enable
scwrypts desktop/i3/set-background -- random
scwrypts desktop/play-sound -- gamedock

View File

@ -1,3 +1,10 @@
#!/bin/zsh
source $HOME/.config/wryn/env.zsh
[ ! $DISPLAY ] && export DISPLAY=:0
ALL_OTHER_DISPLAYS_OFF() {
for OUTPUT in $(xrandr | grep connect | grep -v $1 | awk '{print $1;}')
do
echo --output $OUTPUT --off
done
}

View File

@ -1,97 +0,0 @@
#!/bin/zsh
source "$HOME/.config/wryn/env.zsh"
RELOAD_ZSH_UTILS
#####################################################################
SESSION='update'
LOCAL_HOST="$(hostnamectl --static)"
UPDATE_REMINDER="{ echo \\UPDATE : an error occured - you may want to stop execution of 'update-all-servers' on $LOCAL_HOST\\\"; read; }"
CHECK_SESSION() {
tmux list-sessions >/dev/null 2>&1 \
| grep -q "^$SESSION" && return 0 || return 1
}
UPDATE_ALL() {
__STATUS "starting '$@'"
for SERVER in $(echo $SERVER_LIST); do UPDATE $SERVER "$@"; done
WAIT_FOR_UPDATES \
&& __SUCCESS "'$@' finished across all servers" \
|| __FAIL 69 'user abort' \
;
}
UPDATE() {
local SERVER_HOST="$1"
local COMMAND="${@:2} || $UPDATE_REMINDER"
[[ $2 =~ ^reboot ]] && [[ $SERVER_HOST =~ $LOCAL_HOST ]] && return 0
[[ $SERVER_HOST =~ $LOCAL_HOST ]] || {
COMMAND="ssh -t $SERVER_HOST.lan 'source ~/.zshrc >/dev/null 2>&1; $COMMAND'"
}
tmux new-window -t $SESSION -n $SERVER_HOST "source ~/.zshrc >/dev/null 2>&1; $COMMAND"
}
WAIT_FOR_UPDATES() {
while [[ $(tmux list-windows -t $SESSION 2>/dev/null | wc -l) -gt 1 ]]
do
sleep 1
done
CHECK_SESSION
}
#####################################################################
CURRENT_SESSION=$(\
tmux list-panes -a -F '#{pane_tty} #{session_name}' \
| grep $(tty) \
| awk '{print $2;}' \
)
#####################################################################
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"
__yN 'after update, do you want to reboot all machines?' && REBOOT=1 || REBOOT=0
__REMINDER
__REMINDER 'manual action is required; (in another tab) connect to tmux:'
__REMINDER "tmux a -t $SESSION"
__REMINDER
__REMINDER 'to stop the update at any time, run:'
__REMINDER "tmux kill-session -t $SESSION"
__REMINDER
[ $CURRENT_SESSION ] && {
__SUCCESS 'currently in a tmux session; opening new window...'
tmux new-window -t $CURRENT_SESSION "unset TMUX; tmux a -t $SESSION"
}
SERVER_LIST=$(
ls "$DOTWRYN/config/scwrypts/env/" \
| sed 's/^local//; s/^\.//' \
| grep . \
)
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,14 +1,5 @@
#!/bin/zsh
_HOSTNAME=$(hostnamectl --static)
case $_HOSTNAME in
butterfree ) DEFAULT=undock ;;
altaria ) DEFAULT=hdmi4k ;;
umbreon ) DEFAULT=undock ;;
esac
LAYOUT="$DOTWRYN/bin/$_HOSTNAME/$DEFAULT"
LAYOUT="$DOTWRYN/bin/$(hostnamectl --static)/default"
[ -f $LAYOUT ] && {
until xrandr -q >/dev/null 2>&1; do sleep .1; done
$LAYOUT