From c4efc214f860168d92ecfc7754e5abe608e11b64 Mon Sep 17 00:00:00 2001 From: Sebastian Schulze Date: Fri, 5 May 2023 21:45:26 +0200 Subject: [PATCH] [bin] Let `em` handle existing tmux sessions more gracefully --- bin/executable_em | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bin/executable_em b/bin/executable_em index 5f65880..f815d5c 100644 --- a/bin/executable_em +++ b/bin/executable_em @@ -3,9 +3,17 @@ PARENT_COMMAND=$(ps -o comm= $PPID) TTY="" export TTY export TERM=xterm-24bit +declare name +raw_name=$(basename $(realpath $(pwd)/../))/$(basename $PWD) +name="${raw_name//./_}" if [ "${PARENT_COMMAND}" == "$(basename "$SHELL")" ] || [ "${PARENT_COMMAND}" == "tmux: server" ]; then - exec emacsclient -s comacs --create-frame --tty "$@" + if [[ $(tmux display-message -p '#S' | grep -E "^\w+/\w+$") == "${name}" ]] && [[ -z ${1} ]]; then + echo "Detected tmux project session. (Re)-attaching"; + exec emacsclient -s comacs --create-frame --tty -e "(bascht/switch-to-or-load-workspace \"${name}\" \"${PWD}\")" + else + exec emacsclient -s comacs --create-frame --tty "$@" + fi; else exec emacsclient --create-frame "$@" fi;