#!/bin/sh # Yaroslav de la Peña Smirnov 2019-2022 # hacky script to spawn a dropdown-like terminal for quickly typing some # commands # reposition the terminal right below the status bar; as a side effect, this # can be used with any floating window, not just ddterminal by calling the # script with '-r' reposition() { curwiny=$(swaygetcurrentwindow | cut -d ' ' -f1 | cut -d ',' -f2 ) curdisy=$(swaymsg -pt get_outputs | grep -A3 focused | grep Position | cut -d ',' -f2) moveup=$(($curwiny - $curdisy - 30)) swaymsg move up "$moveup px" } if [ "$1" = "-r" ]; then reposition exit fi ddstatus=$(swaymsg -t get_tree | jq -r ' .. | objects | select(.type == "workspace") as $ws | .. | objects | select(has("app_id")) | select(.name == "ddterminal") | (if .focused == true then "+" else "-" end)') if [ "$ddstatus" = "-" ]; then swaymsg '[title="ddterminal"] scratchpad show' elif [ "$ddstatus" = "+" ]; then swaymsg '[title="ddterminal"] move scratchpad' else $TERMINAL -T "ddterminal" -o "locked-title=true" zsh -ic "tmuxatt" & sleep 0.2s reposition fi