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.

Revisions

  1. elundmark revised this gist Aug 19, 2016. No changes.
  2. elundmark revised this gist Aug 19, 2016. 1 changed file with 34 additions and 15 deletions.
    49 changes: 34 additions & 15 deletions my-dropdown.sh
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,25 @@
    #!/usr/bin/env bash

    # LOOK THROUGH BEFORE USING IT

    declare win_id
    declare d="$HOME/.ramdisk/lxterminal"

    if [[ -d "$d/working" ]] ; then
    # wait two second
    declare -i waits=0
    while [[ $waits -lt 20 ]] ; do
    [[ ! -d "$d/working" ]] && break
    sleep 0.1s
    let "waits++"
    done
    [[ $waits -ge 20 ]] && exit 1
    fi

    mkdir "$d/working"

    if ! pgrep -x lxterminal &>/dev/null ; then
    declare -i loops=0
    mkdir -p "$HOME/.ramdisk/lxterminal"
    cd "$HOME/.ramdisk/lxterminal"
    mkdir -p "$d"
    cd "$d"
    nohup lxterminal -t LXTerminal --working-directory="$HOME" &>/dev/null 2>&1&
    while [[ $loops -le 1000 ]] ; do
    let "loops++"
    @@ -16,28 +28,35 @@ if ! pgrep -x lxterminal &>/dev/null ; then
    fi
    sleep 0.1s
    done
    [[ $loops -ge 1000 ]] && exit 1
    if [[ $loops -ge 1000 ]] ; then
    rmdir "$d/working"
    exit 1
    fi
    win_id="$(wmctrl -l | grep -P ' LXTerminal$' | cut -d ' ' -f1 | head -n1)"
    echo "$win_id" > "$HOME/.ramdisk/lxterminal/win_id"
    echo "$win_id" > "$d/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,fullscreen
    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
    mkdir "$d/open"
    elif [[ -f "$d/win_id" ]] ; then
    win_id="$(cat "$d/win_id")"
    if [[ -d "$d/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"
    wmctrl -i -r "$win_id" -b add,below
    for xdotool_win_id in $(xdotool search --class LXTerminal) ; do
    xdotool windowminimize "$xdotool_win_id"
    done
    rmdir "$d/open"
    else
    mkdir "$HOME/.ramdisk/lxterminal/open"
    mkdir "$d/open"
    wmctrl -i -r "$win_id" -b remove,below
    wmctrl -i -r "$win_id" -b add,above
    wmctrl -i -a "$win_id"
    fi
    fi
    rmdir "$d/working"
    exit $?
  3. elundmark revised this gist Aug 18, 2016. No changes.
  4. elundmark created this gist Aug 18, 2016.
    43 changes: 43 additions & 0 deletions my-dropdown.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    #!/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 $?