session-or-client() { { project="$(cat -)" if [[ -z $project ]]; then return fi pushd $project export name=${PWD#$HOME/} export name=${name//\//-} export server=kaks@$name export client=kakc@$name tmux has-session -t $server || { tmux new -d -s $server -n $server bash -c "[[ -f .envrc ]] && eval \"$(direnv export bash)\"; { kak -s $name -d & }; tmux wait -S $name; wait" tmux wait $name } if [[ -z $TMUX ]]; then tmux has-session -t $client || tmux new -d -s $client -n $client kak -c $name else tmux new-window -n $client kak -c $name fi popd } debug 2>&1 echo $client } client="$(fd -d1 "." -t d $HOME $HOME/projects | fzf -1 | session-or-client)" echo "client: $client" [[ $client ]] && tmux attach -t "$client"