dotfiles/i3/terminal.sh

24 lines
629 B
Bash
Raw Normal View History

2018-04-03 15:55:41 +02:00
#!/bin/bash
2018-04-30 17:19:00 +02:00
# If a window with a path in its title is focused, open a terminal with that
# location as working directory. Like this, terminals are opened in the same
# directory as the currently focused one, if no command is running. This is
# very hackish, but it works.
2018-04-03 15:55:41 +02:00
if [[ $(xtitle) =~ (^| )(~?)(/.*) ]]; then
path="${BASH_REMATCH[3]}"
[[ ${BASH_REMATCH[2]} == "~" ]] && path="$HOME$path"
while [[ $path != / && -n $path && ! -d $path ]]; do
path="$(dirname "$path")"
done
fi
# Open terminal at specified path
cmd=i3-sensible-terminal
if [[ -n $path ]]; then
2018-08-19 16:48:28 +02:00
exec env -C "$path" $cmd "$@"
2018-04-03 15:55:41 +02:00
else
exec $cmd "$@"
2018-04-03 15:55:41 +02:00
fi