diff options
| author | Anton Bobov <abobov@gmail.com> | 2013-01-07 21:44:58 +0600 |
|---|---|---|
| committer | Anton Bobov <abobov@gmail.com> | 2013-01-07 21:45:07 +0600 |
| commit | 6d6950a462477ce91264de2818f024dcbc07dd09 (patch) | |
| tree | b0a8af5c9b43abe79c85d2bce8d0dade7e48afef /f7-script.sh | |
| parent | 8d2a305cd4a5f7fbbe2aae6c7680fcf24e5dc519 (diff) | |
Добавлены скрипты.
+ скрипт для сохранения VPS.
+ скрипт для переключения мониторов через xrandr
+ скрипт для соединения с рабочим VPN
* в скрипте конвертации изображений добавлена опция --output-dir
позволяющая переопределить директорию в которую будут складываться
результат
Diffstat (limited to 'f7-script.sh')
| -rwxr-xr-x | f7-script.sh | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/f7-script.sh b/f7-script.sh new file mode 100755 index 0000000..ab3178b --- /dev/null +++ b/f7-script.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +set -e + +INTERNAL=LVDS1 +EXTERNAL=VGA1 + +show_usage() { + cat <<END +Screen switch helper script. + +Usage: $0 <command> + + commands: + toggle + external + internal + mirror + +END +} + +screen_external() { + xrandr --output "$INTERNAL" --off + xrandr --output "$EXTERNAL" --auto +} +screen_internal() { + xrandr --output "$EXTERNAL" --off + xrandr --output "$INTERNAL" --auto +} +screen_mirror() { + xrandr --output "$INTERNAL" --auto + xrandr --output "$EXTERNAL" --auto --same-as "$INTERNAL" +} + +screen_toggle() { + case "$STATE" in + internal) + screen_external + ;; + external) + screen_internal + ;; + mirror) + screen_external + ;; + *) + screen_internal + ;; + esac +} + + +screen_get_state() { + SCREEN="$1" + xrandr --query | grep "^$SCREEN" + #xrandr --query | grep "^$SCREEN" | grep connected | sed 's/.*connected\s*\([^ ]\+\).*/\1/' | grep -o '[0-9]*x[0-9]*' || echo +} +is_connected() { + echo "$1" | grep ' connected' >/dev/null && echo 1 || echo +} +is_active() { + echo "$1" | grep connected | sed 's/.*connected\s*\([^ ]\+\).*/\1/' | grep -o '[0-9]*x[0-9]*' || echo +} + +INTERNAL_STATE=$(screen_get_state "$INTERNAL") +EXTERNAL_STATE=$(screen_get_state "$EXTERNAL") + +EXTERNAL_CONNECTED=$(is_connected "$EXTERNAL_STATE") + +if [ -z "$EXTERNAL_CONNECTED" ] ; then + echo "External monitor $EXTERNAL not connected." >&2 + exit 0 +fi + +INTERNAL_STATE=$(is_active "$INTERNAL_STATE") +EXTERNAL_STATE=$(is_active "$EXTERNAL_STATE") +if [ -z "$INTERNAL_STATE" ] ; then + STATE="external" +elif [ -z "$EXTERNAL_STATE" ] ; then + STATE="internal" +else + STATE="mirror" +fi + +DO="$1" +if [ -z "$DO" ] ; then + DO="toggle" +fi + +case "$DO" in + toggle) + screen_toggle + ;; + internal) + screen_internal + ;; + external) + screen_external + ;; + mirror) + screen_mirror + ;; + *) + show_usage >&2 + ;; +esac |
