#!/bin/bash # Author: Daniel Napora 2018-2024 # "Show-Hide" terminal wrapper for terminator for use with keybind eg. C-~ or F12. # Depenging on actual state it will start, show or hide terminal window. GEOMETRY_FILE="$HOME/.config/mabox/.quake-term" NAME="Quake Term" __run() { ID=$(wmctrl -x -l | grep "${NAME}" | awk '{print $1}' | head -n 1) if [ -z "${ID}" ]; then if [ -f "$GEOMETRY_FILE" ]; then POS=$(head -n 1 $GEOMETRY_FILE) terminator -T "${NAME}" -b --geometry "$POS" -i utilities-terminal else TOP=$(wmctrl -d|grep "*"|awk '{print $8}'|cut -d',' -f2) LEFT=$[$(wmctrl -d|grep "*"|awk '{print $4}'|cut -d'x' -f1)/8] HEIGHT=$[$(wmctrl -d|grep "*"|awk '{print $4}'|cut -d'x' -f2)/2] WIDTH=$[${LEFT}*6] terminator -T "${NAME}" -b --geometry "${WIDTH}x${HEIGHT}+${LEFT}+${TOP}" -i utilities-terminal fi else ID_DEC=$((${ID})) ACTIVE_WIN_DEC=$(xdotool getactivewindow) if [ "${ACTIVE_WIN_DEC}" == "${ID_DEC}" ]; then xdotool windowminimize ${ID_DEC} else xdotool windowactivate ${ID_DEC} fi eval $(xdotool getwindowgeometry --shell $(xdotool search --name "${NAME}")) echo "${WIDTH}x${HEIGHT}+${X}+${Y}" > $GEOMETRY_FILE fi } __reset() { rm "$GEOMETRY_FILE" } case "$1" in reset) __reset;; *) __run;; esac exit 0