]> git.huck.website - zshmux.git/commitdiff
release: 2.1 better display and formatting
authorHuck Boles <huck@huck.website>
Tue, 11 Jul 2023 15:59:28 +0000 (10:59 -0500)
committerHuck Boles <huck@huck.website>
Tue, 11 Jul 2023 15:59:28 +0000 (10:59 -0500)
README.md [moved from README with 98% similarity]
zshmux.sh

similarity index 98%
rename from README
rename to README.md
index f806f180a4f87f3debe3a8118ea4fc10bd15179c..b4c6f7a74cb6f353b96c13513f70fb4a3d7cd7a4 100644 (file)
--- a/README
+++ b/README.md
@@ -1,8 +1,9 @@
-## zshmux 2.0
+## zshmux 2.1
 
 ### about
 
 when a new shell is launched **zshmux** checks if there are any **tmux** sessions.
+
 if you are not already in a **tmux** session **zshmux** will list all currently active sessions,
 then ask if you want to attach a currently running session, or make a new session in the shell.
 if there is only one **tmux** session running and not attached to any clients, **zshmux**
index 0115284362024b3717ddafa21c123923794665b2..b8041a0ac5bd73425a668ad2859fc5425c26bf79 100644 (file)
--- a/zshmux.sh
+++ b/zshmux.sh
@@ -1,38 +1,39 @@
 #!/bin/bash
 
-# start tmux server if it's not already running
-[[ ! $(pgrep tmux) ]] && tmux start
-
 # exit if already in a tmux session
 [[ -n $TMUX ]] && return
 
+# start tmux server if it's not already running
+[[ ! $(pgrep tmux) ]] && tmux start
+
 # check if any sessions exit
 if [[ $(tmux list-sessions | wc -l) -ne 0 ]]; then
-    if [[ $(tmux list-sessions -F"#{?session_attached,,x}" | grep "x" | wc -l) -eq 1 ]] && [[ -z $SSH_CLIENT ]]; then
-        tmux attach-session -t $(tmux list-sessions -F"#{?session_attached,,#S}"  )
+    if [[ $(tmux list-sessions -F"#{?session_attached,,x}" | grep -c "x" ) -eq 1 ]] && [[ -z $SSH_CLIENT ]]; then
+        tmux attach-session -t "$(tmux list-sessions -F"#{?session_attached,,#S}"  )"
         return
     else
         printf '\033[32;1mcurrent \033[33;1mtmux \033[32;1msessions\033[0m:\n'
-        tmux list-sessions -F"#S - (#{?session_attached,attached,not attached})"
-        printf '\033[34;1mattach session?\033[0;m: [\033[35;1mname\033[0m] \033[37;2m(empty if none)\033[0m: '
+        # sed + echo is to highlight stars in green
+        echo -e "$(tmux list-sessions -F"#S #{?session_attached,*,}" | sed 's_\*_\\033[32;1m*\\033[0m_')"
+        printf '\033[34;1mattach or create\033[0;m \033[37;2m(empty if none)\033[0m: '
     fi
 else
     printf '\033[34;1mno \033[33;1mtmux \033[34;1msessions active\n'
-    printf '\033[34;1mcreate new session?\033[0;m: [\033[35;1mname\033[0m] \033[37;2m(empty if none)\033[0m: '
+    printf '\033[34;1mcreate new session?\033[0;m \033[37;2m(empty if none)\033[0m: '
 fi
 
-read session
+read -r session
 
 # start requested session - since it uses grep you just have to put enough of a unique identifier to select
 if [[ -n $session ]]; then
     if tmux list-sessions -F"#S" | grep -q "$session"; then
-        tmux attach-session -t $session 
+        tmux attach-session -t "$session"
         return
     elif [[ $session == new ]]; then
         tmux new-session
         return
     else
-        tmux new-session -s $session
+        tmux new-session -s "$session"
         return
     fi
 fi