#!/bin/bash set -uo pipefail # A failure in this script should not prevent the terminal from opening set +e #CMD=i3-sensible-terminal CMD=alacritty #CMD=xfce4-terminal # 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. sway_focused_window() { swaymsg -t get_tree | jq -r '.. | select(.focused?) | .name' } title="$(sway_focused_window || xtitle)" path="" if [[ $title =~ (in|^.*@$(hostname):)(~?)(/.*) ]]; 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 if [[ -n $path ]] && [[ -r $path ]]; then exec env -C "$path" $CMD "$@" else exec $CMD "$@" fi