diff --git a/ecran b/ecran index 3460706..ac51447 100755 --- a/ecran +++ b/ecran @@ -4,9 +4,6 @@ # And reload wm configuration # Vars {{{ -## First and main screen (laptop screen,…) -readonly MAIN_OUTPUT_NAME="LVDS-1" - [ -z "${DEBUG}" ] && readonly DEBUG=0 ## Colors @@ -14,6 +11,10 @@ readonly PURPLE='\033[1;35m' readonly RED='\033[0;31m' readonly RESET='\033[0m' readonly COLOR_DEBUG="${PURPLE}" + +## First and main screen (laptop screen,…) +readonly MAIN_OUTPUT_NAME="LVDS-1" + # }}} debug_message() { # {{{ @@ -38,15 +39,40 @@ The second connected output is: ${SECOND_OUTPUT_NAME}." return "${return_second_output_name}" } # }}} -main() { # {{{ +is_proc_running() { # {{{ - ## Define all vars - define_vars + local_proc_pattern="${1}" + + local_count_proc_pattern="$(pgrep -f -- "${local_proc_pattern}" | wc -l)" + + case "${local_count_proc_pattern}" in + 0 ) ## No procs related to this pattern are running + return_proc_running="1" + ;; + * ) ## At least one proc seems running + return_proc_running="0" + ;; +esac + + ## Simple debug message to valid current variables + debug_message "is_proc_running − \ +procs running (with the pattern: ${RED}${local_proc_pattern}${COLOR_DEBUG}) on the current host: ${RED}${local_count_proc_pattern}${COLOR_DEBUG}." + + return "${return_proc_running}" } # }}} +main() { # {{{ -main + ## Update herbstluftwm Window Manager configuration if it's running + is_proc_running "herbstluftwm" \ + && herbstclient detect_monitors \ + && herbstclient reload +} +# }}} + +## Define all vars +define_vars # Manage arguments # {{{ # This code can't be in a function due to arguments @@ -55,20 +81,20 @@ case "${1}" in ## TODO : One command to enable main screen and a loop to disable all other connected output xrandr --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto --output "${SECOND_OUTPUT_NAME:=/dev/null}" --off --output VGA-1 --off --output HDMI-3 --off --output "${SECOND_OUTPUT_NAME:=/dev/null}" --off xrandr --output VGA --off - printf 'Desactivate all video output' + printf "%b\n" 'Desactivate all video output' ;; leftof | left-of | ds | dockstation | work ) #xrandr --output VGA-1 --mode 1024x768 --left-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --mode 1366x768 xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --left-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto - printf 'Xrandr for second output left-of main screen' + printf "%b\n" 'Xrandr for second output left-of main screen' ;; rightof | right-of | home ) xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --right-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto - printf 'Xrandr for second output left-of main screen' + printf "%b\n" 'Xrandr for second output left-of main screen' ;; above ) xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --above "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto - printf 'Xrandr for dual screen with DisplayPort' + printf "%b\n" 'Xrandr for dual screen with DisplayPort' ;; out | game ) xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --output "${MAIN_OUTPUT_NAME:=/dev/null}" --off @@ -77,15 +103,13 @@ case "${1}" in xrandr --output "${MAIN_OUTPUT_NAME:=/dev/null}" --off ;; * ) - printf 'Bad argument, please use [vga|hdmi|ds|work|off]' + printf "%b\n" 'Bad argument, please use [vga|hdmi|ds|work|off]' exit 1 ;; esac +main + # }}} -# Update herbstluftWM configuration -herbstclient detect_monitors -herbstclient reload - exit 0