#!/usr/bin/env bash # Toggle a scratch terminal window. A scratch terminal is a disposable terminal # for one-off, quick commands that don't warrant a dedicated terminal. SCRID=scratch CMD=${1:-'tmux new-session -A -s scratch -n scratch'} focused=$(xdotool getactivewindow) scratch=$(xdotool search --onlyvisible --classname $SCRID) if [[ -n $scratch ]]; then if [[ $focused == $scratch ]]; then xdotool windowkill $scratch else xdotool windowactivate $scratch fi elif command -v urxvt >/dev/null; then urxvt -name $SCRID \ -e $SHELL -c "$CMD" elif command -v xst >/dev/null; then xst -t $SCRID -n $SCRID -c $SCRID \ -f "$(xrdb -query | grep 'scratch\.font' | cut -f2)" \ -e $SHELL -c "$CMD" else >&2 echo "No shell to launch the scratch terminal with" exit 1 fi