Move .scripts -> .local/bin
This commit is contained in:
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/bin/sh
|
||||
|
||||
help() {
|
||||
B=$(tput bold)
|
||||
U=$(tput smul)
|
||||
N=$(tput sgr0)
|
||||
|
||||
cat << EOF
|
||||
${B}NAME${N}
|
||||
monctl - monitor manager
|
||||
|
||||
${B}SYNOPSIS${N}
|
||||
${B}monctl${N} [${U}OPTION${N}] [${U}ARG(S)${N}]
|
||||
|
||||
${B}OPTIONS${N}
|
||||
${B}a*${N} ${U}width${N} ${U}height${N} ${U}hertz${N} ${U}name${N}
|
||||
Setup single monitor with new mode.
|
||||
|
||||
${B}p*${N} ${U}name${N} ${U}mode${N}
|
||||
Setup single primary monitor.
|
||||
|
||||
${B}ARGS${N}
|
||||
width
|
||||
Pixel width of the monitor.
|
||||
|
||||
height
|
||||
Pixel height of the monitor.
|
||||
|
||||
hertz
|
||||
Refresh rate of the monitor.
|
||||
|
||||
name
|
||||
Xrandr name of the monitor.
|
||||
EOF
|
||||
}
|
||||
|
||||
# Exit if no option is provided
|
||||
[ "$#" -eq 0 ] && help && exit 1
|
||||
|
||||
# Set required X variables
|
||||
export DISPLAY=:0
|
||||
export XAUTHORITY="$XDG_DATA_HOME/xorg/Xauthority"
|
||||
|
||||
update() {
|
||||
sleep 4
|
||||
|
||||
# Reconfigure desktops
|
||||
"$HOME/.local/bin/wm/desktops.sh"
|
||||
sleep 1
|
||||
|
||||
# Restart panel
|
||||
"$HOME/.local/bin/panel/polybar.sh" &
|
||||
|
||||
# Reload wallpaper
|
||||
"$HOME/.local/bin/wm/wallpaper.sh" &
|
||||
}
|
||||
|
||||
auto() {
|
||||
[ "$#" != "4" ] && return 1
|
||||
|
||||
# Add mode to primary monitor
|
||||
OUTPUT="$(xrandr -q)"
|
||||
if ! echo "$OUTPUT" | grep -Fq "$1x$2_$3.00"; then
|
||||
eval xrandr --newmode $(cvt "$1" "$2" "$3" | awk '/Modeline/{ $1=""; print $0 }')
|
||||
xrandr --addmode "$4" "$1x$2_$3.00"
|
||||
fi
|
||||
|
||||
primary "$4" "--mode $1x$2_$3.00"
|
||||
}
|
||||
|
||||
primary() {
|
||||
[ "$#" != "1" ] && [ "$#" != "2" ] && return 1
|
||||
MODE=${2:-"--auto"}
|
||||
|
||||
# Get all connected monitors
|
||||
CONNECTED="$(xrandr -q | awk '/ connected/{ print $1 }')"
|
||||
|
||||
# Disable all other monitors
|
||||
eval xrandr --output "$1" "$MODE" --primary \
|
||||
"$(echo "$CONNECTED" | grep -vx "$1" | awk '{ print "--output", $1, "--off" }' | tr '\n' ' ')"
|
||||
|
||||
# Post monitor change
|
||||
update
|
||||
}
|
||||
|
||||
[ $OPTIND -ge 2 ] && shift $((OPTIND - 2))
|
||||
case "$1" in
|
||||
a*)
|
||||
shift 1
|
||||
auto "$@"
|
||||
;;
|
||||
p*)
|
||||
shift 1
|
||||
primary "$@"
|
||||
;;
|
||||
*)
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user