From ca968c4e5040f1ff4b5b5e12d9312360d807dcc1 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 3 Jun 2024 19:56:39 +0800 Subject: added submodules, change . -> dot (see man stow --dotfiles) --- dot-config/bspwm/scripts/drag-to-float | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 dot-config/bspwm/scripts/drag-to-float (limited to 'dot-config/bspwm/scripts/drag-to-float') diff --git a/dot-config/bspwm/scripts/drag-to-float b/dot-config/bspwm/scripts/drag-to-float new file mode 100755 index 00000000..be99943a --- /dev/null +++ b/dot-config/bspwm/scripts/drag-to-float @@ -0,0 +1,52 @@ +#!/bin/env bash + +: "${BUTTON:=1}" "${RADIUS:=200}" + +eval "$(xdotool getmouselocation --shell)" +#!/bin/env bash + +: "${BSPWM_DIR:="${XDG_CONFIG_HOME:-$HOME/.config}/bspwm"}" + +#status_file="$BSPWM_DIR/tmp/drag_to_float" +status_file="/tmp/drag-to-float" + +[[ "$1" = stop ]] && { + [[ -e "$status_file" ]] \ + && rm -r -- "$status_file" + exit +} + +[[ -e "$status_file" ]] \ + && exit + +< <(bspc query -T -n pointed.window | jq -r '"\(.id) \(.client.state)"') read -r node node_state + +[[ -z "$node" ]] \ + && exit + +case "$node_state" in + floating) + ;; + tiled|pseudo_tiled) + node_tiled_rect=($(bspc query -T -n "$node" | jq -r '.client.tiledRectangle[]')) + bspc node "$node" -t floating + xdo move -x "${node_tiled_rect[0]}" -y "${node_tiled_rect[1]}" "$node" + xdo resize -w "${node_tiled_rect[2]}" -h "${node_tiled_rect[3]}" "$node" ;; + *) # fullscreen + exit ;; +esac + +eval "$(xdotool getmouselocation --shell)" +x="$X" y="$Y" +touch -- "$status_file" +while [[ -e "$status_file" ]]; do + eval "$(xdotool getmouselocation --shell)" + (( X != x || Y != y )) && { + bspc node "$node" -v "$((X - x))" "$((Y - y))" + x="$X" y="$Y" + } + #sleep .01 +done + +[[ -e "$status_file" ]] \ + && rm -r -- "$status_file" -- cgit v1.2.3