summaryrefslogtreecommitdiff
path: root/f7-script.sh
diff options
context:
space:
mode:
authorAnton Bobov <abobov@gmail.com>2013-01-07 21:44:58 +0600
committerAnton Bobov <abobov@gmail.com>2013-01-07 21:45:07 +0600
commit6d6950a462477ce91264de2818f024dcbc07dd09 (patch)
treeb0a8af5c9b43abe79c85d2bce8d0dade7e48afef /f7-script.sh
parent8d2a305cd4a5f7fbbe2aae6c7680fcf24e5dc519 (diff)
Добавлены скрипты.
+ скрипт для сохранения VPS. + скрипт для переключения мониторов через xrandr + скрипт для соединения с рабочим VPN * в скрипте конвертации изображений добавлена опция --output-dir позволяющая переопределить директорию в которую будут складываться результат
Diffstat (limited to 'f7-script.sh')
-rwxr-xr-xf7-script.sh107
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