Riyyi
5 years ago
2 changed files with 83 additions and 3 deletions
@ -0,0 +1,82 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
help() { |
||||||
|
B=$(tput bold) |
||||||
|
U=$(tput smul) |
||||||
|
N=$(tput sgr0) |
||||||
|
|
||||||
|
cat << EOF |
||||||
|
${B}NAME${N} |
||||||
|
monctl.sh - monitor manager |
||||||
|
|
||||||
|
${B}SYNOPSIS${N} |
||||||
|
${B}monctl.sh${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. |
||||||
|
|
||||||
|
${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 |
||||||
|
} |
||||||
|
|
||||||
|
# If no option is provided |
||||||
|
[ "$#" -eq 0 ] && help && exit 1 |
||||||
|
|
||||||
|
update() { |
||||||
|
sleep 4 |
||||||
|
|
||||||
|
# Reconfigure desktops |
||||||
|
$HOME/.scripts/wm/desktops.sh |
||||||
|
sleep 1 |
||||||
|
|
||||||
|
# Restart panel |
||||||
|
$HOME/.scripts/panel/lemonbar.sh & |
||||||
|
|
||||||
|
# Reload wallpaper |
||||||
|
$HOME/.scripts/wm/wallpaper.sh |
||||||
|
} |
||||||
|
|
||||||
|
auto() { |
||||||
|
[ "$#" != "5" ] && return 1 |
||||||
|
|
||||||
|
# Skip first argument |
||||||
|
shift 1 |
||||||
|
|
||||||
|
# Add mode to primary display |
||||||
|
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 |
||||||
|
|
||||||
|
# Get all connected displays |
||||||
|
CONNECTED="$(xrandr -q | awk '/ connected/{print $1}')" |
||||||
|
|
||||||
|
# Disable all other displays |
||||||
|
eval xrandr --output "$4" --mode "$1x$2_$3.00" --primary \ |
||||||
|
"$(echo "$CONNECTED" | grep -vx "$4" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ')" |
||||||
|
|
||||||
|
# Post monitor change |
||||||
|
update |
||||||
|
} |
||||||
|
|
||||||
|
case "$1" in |
||||||
|
a*) |
||||||
|
auto "$@" |
||||||
|
;; |
||||||
|
*) |
||||||
|
help |
||||||
|
;; |
||||||
|
esac |
Loading…
Reference in new issue