2022-02-06 00:15:14 -07:00
|
|
|
#!/bin/zsh
|
2024-02-06 13:08:18 -07:00
|
|
|
#####################################################################
|
|
|
|
|
2025-08-09 09:26:07 -06:00
|
|
|
XRANDR_OUTPUT__splitter='HDMI-0'
|
|
|
|
XRANDR_OUTPUT__desk='DP-4'
|
2024-02-06 13:08:18 -07:00
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
I3_DEFAULT_THEME_BACKGROUND=$(scwrypts -n get theme).jpg
|
2024-02-06 13:08:18 -07:00
|
|
|
|
2024-06-26 18:42:33 -06:00
|
|
|
MONITOR_CONFIGURATION=unknown
|
|
|
|
|
|
|
|
: \
|
2025-08-09 09:26:07 -06:00
|
|
|
&& xrandr --query | grep -q "^${XRANDR_OUTPUT__splitter} connected" \
|
2024-06-26 18:42:33 -06:00
|
|
|
&& MONITOR_CONFIGURATION=home \
|
|
|
|
;
|
2025-08-09 09:26:07 -06:00
|
|
|
#&& xrandr --query | grep -q "^${XRANDR_OUTPUT__desk} connected" \
|
2024-06-26 18:42:33 -06:00
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
#####################################################################
|
|
|
|
|
|
|
|
case $1 in
|
|
|
|
( 1080 | 1080p )
|
|
|
|
XRANDR_MODE=(--mode 1920x1080)
|
|
|
|
XRANDR_OFFSET_X=1920
|
|
|
|
XRANDR_OFFSET_Y=1080
|
|
|
|
|
2025-08-09 09:26:07 -06:00
|
|
|
EXTRA_ARGS__splitter=()
|
|
|
|
EXTRA_ARGS__desk=()
|
2025-06-04 11:44:55 -06:00
|
|
|
|
|
|
|
I3_BACKGROUND=link-vs-gdizz.jpg
|
|
|
|
;;
|
|
|
|
|
|
|
|
( 1440 | 1440p | 2k )
|
|
|
|
XRANDR_MODE=(--mode 2560x1440)
|
|
|
|
XRANDR_OFFSET_X=2560
|
|
|
|
XRANDR_OFFSET_Y=1440
|
|
|
|
|
2025-08-09 09:26:07 -06:00
|
|
|
EXTRA_ARGS__splitter=(--rate 120.00)
|
|
|
|
EXTRA_ARGS__desk=()
|
2025-06-04 11:44:55 -06:00
|
|
|
|
|
|
|
I3_BACKGROUND=roy-art.jpg
|
|
|
|
;;
|
|
|
|
|
|
|
|
( 2160 | 2160p | 4k | '' ) # default for the RTX5080
|
|
|
|
XRANDR_MODE=(--mode 3840x2160)
|
|
|
|
XRANDR_OFFSET_X=3840
|
|
|
|
XRANDR_OFFSET_Y=2160
|
|
|
|
|
2025-08-09 09:26:07 -06:00
|
|
|
EXTRA_ARGS__splitter=(--rate 120.00)
|
|
|
|
EXTRA_ARGS__desk=(--rate 120.00)
|
2025-06-04 11:44:55 -06:00
|
|
|
|
|
|
|
I3_BACKGROUND=${I3_DEFAULT_THEME_BACKGROUND[@]}
|
|
|
|
;;
|
|
|
|
|
|
|
|
( * )
|
|
|
|
echo "error : unknown resolution '$1'"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
2025-08-09 09:26:07 -06:00
|
|
|
XRANDR_ARGS__splitter=(--output ${XRANDR_OUTPUT__splitter[@]} ${XRANDR_MODE[@]} ${EXTRA_ARGS__splitter[@]})
|
|
|
|
XRANDR_ARGS__desk=(--output ${XRANDR_OUTPUT__desk[@]} ${XRANDR_MODE[@]} ${EXTRA_ARGS__desk[@]})
|
2025-06-04 11:44:55 -06:00
|
|
|
|
|
|
|
##########################################
|
|
|
|
|
|
|
|
source ${HOME}/.config/wryn/env.zsh
|
|
|
|
export DISPLAY=:0
|
|
|
|
|
2024-06-26 18:42:33 -06:00
|
|
|
###############################################################################
|
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
XRANDR_OFF() {
|
|
|
|
local MONITOR ARGS=()
|
|
|
|
for MONITOR in $@
|
|
|
|
do
|
|
|
|
MONITOR="XRANDR_OUTPUT__${MONITOR}"
|
|
|
|
ARGS+=(--output ${(P)MONITOR} --off)
|
|
|
|
done
|
|
|
|
|
|
|
|
xrandr ${ARGS[@]}
|
|
|
|
}
|
|
|
|
|
2024-02-06 13:08:18 -07:00
|
|
|
XRANDR_SET() {
|
|
|
|
local ERRORS=0
|
|
|
|
|
|
|
|
local COMPOSITING=enable
|
|
|
|
local SCREEN_BLANK=enable
|
2025-06-04 11:44:55 -06:00
|
|
|
local BACKGROUND=${I3_BACKGROUND}
|
2024-02-06 13:08:18 -07:00
|
|
|
local SOUND_EFFECT=login
|
|
|
|
local XRANDR_ARGS=()
|
|
|
|
|
|
|
|
while [[ $# -gt 0 ]]
|
|
|
|
do
|
|
|
|
case $1 in
|
2025-06-04 11:44:55 -06:00
|
|
|
( --compositing ) COMPOSITING="$2" ; shift 1 ;;
|
|
|
|
( --screen-blank ) SCREEN_BLANK="$2" ; shift 1 ;;
|
|
|
|
( --background ) BACKGROUND="$2" ; shift 1 ;;
|
|
|
|
( --sound-effect ) SOUND_EFFECT="$2" ; shift 1 ;;
|
2024-02-06 13:08:18 -07:00
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
( * ) XRANDR_ARGS+=($1) ;
|
2024-02-06 13:08:18 -07:00
|
|
|
esac
|
|
|
|
shift 1
|
|
|
|
done
|
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
case ${COMPOSITING} in
|
|
|
|
( enable ) (pkill compton; sleep 1; compton;) & ;;
|
|
|
|
( disable ) pkill compton ;;
|
2024-02-06 13:08:18 -07:00
|
|
|
* )
|
2025-06-04 11:44:55 -06:00
|
|
|
echo "ERROR : invalid setting '${COMPOSITING}' for compositing" >&2
|
2024-02-06 13:08:18 -07:00
|
|
|
return 1
|
|
|
|
esac
|
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
case ${SCREEN_BLANK} in
|
2024-02-06 13:08:18 -07:00
|
|
|
enable | disable ) ;;
|
|
|
|
* )
|
2025-06-04 11:44:55 -06:00
|
|
|
echo "ERROR : invalid setting '${SCREEN_BLANK}' for screen blank" >&2
|
2024-02-06 13:08:18 -07:00
|
|
|
return 1
|
|
|
|
esac
|
|
|
|
|
|
|
|
##########################################
|
|
|
|
|
2024-07-30 21:07:43 -06:00
|
|
|
# disabling for a moment since the latest X11/NVIDIA drivers are causing some issues after "disconnect all"
|
|
|
|
#scwrypts desktop xrandr disconnect all
|
2024-02-06 13:08:18 -07:00
|
|
|
|
|
|
|
xrandr ${XRANDR_ARGS[@]}
|
|
|
|
|
|
|
|
sleep 1
|
|
|
|
|
2025-06-04 11:44:55 -06:00
|
|
|
scwrypts desktop screen blank -- ${SCREEN_BLANK}
|
|
|
|
scwrypts desktop i3 set background -- ${BACKGROUND} || scwrypts desktop i3 set background -- purple.jpg
|
|
|
|
"${DOTWRYN}/bin/polybar"
|
2025-08-09 09:26:07 -06:00
|
|
|
scwrypts media play sfx -- ${SOUND_EFFECT}
|
2024-02-06 13:08:18 -07:00
|
|
|
}
|