dotfiles/zsh/preserve-cwd-ssh.zsh

37 lines
1005 B
Bash

if [ "$PRESERVE_SSH_CWD" = "true" ]; then
if [ -z $DISPLAY ]; then
if [ -z $TERMINAL_UUID ]; then
export TERMINAL_UUID=$(uuidgen)
fi
else
WINDOW_ID=$(xdotool getactivewindow)
if [ $? -eq 0 ]; then
WM_NAME=$(xprop -id $WINDOW_ID WM_NAME | cut -d '"' -f 2)
export TERMINAL_UUID=$WM_NAME
else
export TERMINAL_UUID=$(uuidgen)
fi
fi
echo -en "\e]2;$TERMINAL_UUID\a"
mkdir -p $HOME/.config/terminalscwd/
cd() {
builtin cd $1
pwd > $HOME/.config/terminalscwd/$TERMINAL_UUID.pwd
}
if [ -f $HOME/.config/terminalscwd/$PARENT_TERMINAL.pwd ]; then
cd $(cat $HOME/.config/terminalscwd/$PARENT_TERMINAL.pwd)
else
cd
fi
ssh() {
echo $1 > $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
/usr/bin/ssh $@
rm $HOME/.config/terminalscwd/$TERMINAL_UUID.ssh
pwd > $HOME/.config/terminalscwd/$TERMINAL_UUID.pwd
}
fi