27 lines
		
	
	
		
			835 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			835 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |