From 6d6950a462477ce91264de2818f024dcbc07dd09 Mon Sep 17 00:00:00 2001 From: Anton Bobov Date: Mon, 7 Jan 2013 21:44:58 +0600 Subject: Добавлены скрипты. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + скрипт для сохранения VPS. + скрипт для переключения мониторов через xrandr + скрипт для соединения с рабочим VPN * в скрипте конвертации изображений добавлена опция --output-dir позволяющая переопределить директорию в которую будут складываться результат --- f7-script.sh | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100755 f7-script.sh (limited to 'f7-script.sh') 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 < + + 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 -- cgit v1.2.3