mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
47 lines
1.4 KiB
Bash
Executable File
47 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Toggle to pop-out a tile to stay fixed on a display basis.
|
|
|
|
# Usage:
|
|
# omarchy-hyprland-window-pop [width height [x y]]
|
|
#
|
|
# Arguments:
|
|
# width Optional. Width of the floating window. Default: 1300
|
|
# height Optional. Height of the floating window. Default: 900
|
|
# x Optional. X position of the window. Must provide both X and Y to take effect.
|
|
# y Optional. Y position of the window. Must provide both X and Y to take effect.
|
|
#
|
|
# Behavior:
|
|
# - If the window is already pinned, it will be unpinned and removed from the pop layer.
|
|
# - If the window is not pinned, it will be floated, resized, moved/centered, pinned, brought to top, and popped.
|
|
|
|
width=${1:-1300}
|
|
height=${2:-900}
|
|
x=${3:-}
|
|
y=${4:-}
|
|
|
|
active=$(hyprctl activewindow -j)
|
|
pinned=$(echo "$active" | jq ".pinned")
|
|
addr=$(echo "$active" | jq -r ".address")
|
|
|
|
if [[ $pinned == "true" ]]; then
|
|
hyprctl -q --batch \
|
|
"dispatch pin address:$addr;" \
|
|
"dispatch togglefloating address:$addr;" \
|
|
"dispatch tagwindow -pop address:$addr;"
|
|
elif [[ -n $addr ]]; then
|
|
hyprctl dispatch togglefloating address:$addr
|
|
hyprctl dispatch resizeactive exact $width $height address:$addr
|
|
|
|
if [[ -n $x && -n $y ]]; then
|
|
hyprctl dispatch moveactive $x $y address:$addr
|
|
else
|
|
hyprctl dispatch centerwindow address:$addr
|
|
fi
|
|
|
|
hyprctl -q --batch \
|
|
"dispatch pin address:$addr;" \
|
|
"dispatch alterzorder top address:$addr;" \
|
|
"dispatch tagwindow +pop address:$addr;"
|
|
fi
|