diff --git a/sh/tmux.sh b/sh/tmux.sh index f40c8a8..4a83682 100644 --- a/sh/tmux.sh +++ b/sh/tmux.sh @@ -54,28 +54,29 @@ rwx_tmux_server() { --fields \"1\" } rwx_tmux_servers() { - local active=\"\$(rwx_tmux_server)\" - local name path text - local paths=\"\$(lsof -U | - awk \"/^tmux:.*\\(LISTEN\\)\$/ {print \\\$9}\")\" - while IFS= read -r path; do - name=\"\$(basename \"\${path}\")\" - text=\"\${text}\\ + local active name root sockets text + active=\"\$(rwx_tmux_server)\" + root=\"/tmp/tmux-\$(id -u)\" + sockets=\"\$(find \"\${root}\" -type s -printf \"%P\\n\")\" + while IFS= read -r name; do + if tmux -L \"\${name}\" list-sessions; then + text=\"\${text}\\ #[fg=default]\\ #[bg=default] \\ \" - if [ \"\${active}\" = \"\${name}\" ]; then - text=\"\${text}#[fg=green]\" - else - text=\"\${text}#[fg=yellow]\" - fi - text=\"\${text}\\ + if [ \"\${name}\" = \"\${active}\" ]; then + text=\"\${text}#[fg=green]\" + else + text=\"\${text}#[fg=yellow]\" + fi + text=\"\${text}\\ #[bg=##181818] \\ #[bg=##282828]\${name}\\ #[bg=##181818] \\ \" + fi done <