scripts/ecran

95 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! /bin/sh
# Description: Manage video output (size, orientation, ...)
# And reload wm configuration
# Vars {{{
## First and main screen (laptop screen,…)
readonly MAIN_SCREEN="LVDS-1"
[ -z "${DEBUG}" ] && readonly DEBUG=0
## Colors
readonly PURPLE='\033[1;35m'
readonly RED='\033[0;31m'
readonly RESET='\033[0m'
readonly COLOR_DEBUG="${PURPLE}"
# }}}
debug_message() { # {{{
local_message="${1}"
## Print message if DEBUG is enable (=0)
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6b\e[m\n' "DEBUG ${PROGNAME}: ${local_message}"
return 0
}
# }}}
define_vars() { # {{{
return_second_output_name="0"
SECOND_OUTPUT=$(xrandr | grep " connected" | grep -v "${MAIN_SCREEN}" | awk 'NR==1{ print $1 }')
debug_message "define_vars \
The second connected output is: ${SECOND_OUTPUT}."
return "${return_second_output_name}"
}
# }}}
main() { # {{{
## Define all vars
define_vars
}
# }}}
main
# Manage arguments # {{{
# This code can't be in a function due to arguments
case "${1}" in
ds | dockstation | work )
xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --left-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768
printf 'Xrandr for DisplayPort with dock station';;
home )
xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --right-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768
printf 'Xrandr for home configuration';;
vga )
xrandr --output VGA-1 --mode 1024x768 --right-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768
printf 'Xrandr for dual screen with VGA';;
hdmi | dp | displayport )
xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --above "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768
printf 'Xrandr for dual screen with DisplayPort';;
pres | prez | presentation )
xrandr --output VGA-1 --mode 1024x768 --left-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768
printf 'Xrandr for presentation';;
- | off )
xrandr --output "${MAIN_SCREEN:=/dev/null}" --mode 1360x768 --output "${SECOND_OUTPUT:=/dev/null}" --off --output VGA-1 --off --output HDMI-3 --off --output "${SECOND_OUTPUT:=/dev/null}" --off
xrandr --output VGA --off
printf 'Desactivate all video output';;
out )
xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --output "${MAIN_SCREEN:=/dev/null}" --off
;;
game )
xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1680x1050 --output "${MAIN_SCREEN:=/dev/null}" --off
;;
first_off | main_off | laptop_off )
xrandr --output "${MAIN_SCREEN:=/dev/null}" --off
;;
* )
printf 'Bad argument, please use [vga|hdmi|ds|work|-|off]'
exit 1
;;
esac
# }}}
# Update herbstluftWM configuration
herbstclient detect_monitors
herbstclient reload
exit 0