Skip to content

Instantly share code, notes, and snippets.

@RodrigoHahn
Created July 23, 2018 14:59
Show Gist options
  • Select an option

  • Save RodrigoHahn/daaf40becefde86af52ebd4ab4a29b36 to your computer and use it in GitHub Desktop.

Select an option

Save RodrigoHahn/daaf40becefde86af52ebd4ab4a29b36 to your computer and use it in GitHub Desktop.
LXTerminal as drop-down (aka guake)
#!/usr/bin/env bash
# LOOK THROUGH BEFORE USING IT
declare win_id
if ! pgrep -x lxterminal &>/dev/null ; then
declare -i loops=0
mkdir -p "$HOME/.ramdisk/lxterminal"
cd "$HOME/.ramdisk/lxterminal"
nohup lxterminal -t LXTerminal --working-directory="$HOME" &>/dev/null 2>&1&
while [[ $loops -le 1000 ]] ; do
let "loops++"
if pgrep -x lxterminal &>/dev/null && wmctrl -l | grep -qP ' LXTerminal$' ; then
break
fi
sleep 0.1s
done
[[ $loops -ge 1000 ]] && exit 1
win_id="$(wmctrl -l | grep -P ' LXTerminal$' | cut -d ' ' -f1 | head -n1)"
echo "$win_id" > "$HOME/.ramdisk/lxterminal/win_id"
wmctrl -i -r "$win_id" -b add,sticky
wmctrl -i -r "$win_id" -b add,maximized_vert,maximized_horz
wmctrl -i -r "$win_id" -b add,skip_pager,skip_taskbar
wmctrl -i -r "$win_id" -b add,above
wmctrl -i -a "$win_id"
mkdir "$HOME/.ramdisk/lxterminal/open"
elif [[ -f "$HOME/.ramdisk/lxterminal/win_id" ]] ; then
win_id="$(cat "$HOME/.ramdisk/lxterminal/win_id")"
if [[ -d "$HOME/.ramdisk/lxterminal/open" ]] ; then
# xdotool windowminimize $(xdotool getactivewindow)
for win in $(xdotool search --class LXTerminal) ; do
xdotool windowminimize "$win"
done
wmctrl -i -r "$win_id" -b remove,above
rmdir "$HOME/.ramdisk/lxterminal/open"
else
mkdir "$HOME/.ramdisk/lxterminal/open"
wmctrl -i -r "$win_id" -b add,above
wmctrl -i -a "$win_id"
fi
fi
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment