Bläddra i källkod

And use the new scr command

Samuel W. Flint 5 år sedan
förälder
incheckning
99e9f94c65
1 ändrade filer med 73 tillägg och 0 borttagningar
  1. 73 0
      scr

+ 73 - 0
scr

@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+PROGNAME=$(basename $0)
+
+OPTSTRING="${PROGNAME} (-x) [ -h | -l | -z | -c name | -n name | -e name tab command ]"
+
+if [[ $# -eq 0 ]] ; then
+    echo ${OPTSTRING} >&2
+    exit 1
+fi
+
+XWINFLAG=false
+
+while getopts "c:n:e:zlxh" OPT
+do
+    # shift
+    case "$OPT" in
+        x)
+            XWINFLAG=true
+            ;;
+        z)
+            exec urxvto -class XTermScreen -e screen
+            ;;
+        l)
+            if [[ $XWINFLAG != "true" ]] ; then
+                screen -list | sed '$ d' | sed 1d | awk '{print $1}'
+            else
+                if [[ -e `which rofi` ]] ; then
+                    NAME=`screen -list | sed '$ d' | sed 1d | awk '{print $1}' | rofi -dmenu -p "screen session"`
+                else
+                    NAME=`screen -list | sed '$ d' | sed 1d | awk '{print $1}' | dmenu -p "screen session:"`
+                fi
+                [[ $NAME != "" ]] && exec urxvto -class XTermScreen -e screen -x $NAME
+            fi
+            ;;
+        c)
+            if [[ $XWINFLAG != "true" ]] ; then
+                exec screen -x "${OPTARG}"
+            else
+                exec urxtvo -class XTermScreen -e "screen -x \"${OPTARG}\""
+            fi
+            ;;
+        n)
+            if [[ $XWINFLAG != "true" ]] ; then
+                exec screen -S "${OPTARG}"
+            else
+                exec urxtvo -class XTermScreen -e "screen -S \"${OPTARG}\""
+            fi
+            ;;
+        e)
+            OPTIND1=$(( OPTIND + 1 ))
+            TAB=${!OPTIND}
+            COMMAND=${!OPTIND1}
+            screen -x "${OPTARG}" -X screen -t ${TAB} ${COMMAND}
+            exit
+            ;;
+        h)
+            echo ${OPTSTRING} >&2
+            cat <<HELP >&2
+
+-h            Show this help.
+-x            Turn on X-windows interaction.
+-z            Create a new, unnamed screen session with X Terminal.
+-l            List screen sessions (with -x, show in ROFI).
+-c name       Connect (as an additional screen) to session "name".
+-n name       Create and connect to a new screen session "name".
+-e name tab command
+              Create a tab named "tab" running the command "command" in session "name".
+HELP
+            exit
+            ;;
+    esac
+done