mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 19:32:43 +00:00
41 lines
994 B
Bash
41 lines
994 B
Bash
#!/bin/bash
|
|||
|
|
|
||
|
|
# omarchy:summary=Toggle the workspace layout, and set every column to one width when it becomes scrolling
|
||
|
|
# omarchy:args=[width]
|
||
|
|
|
||
|
|
set -uo pipefail
|
||
|
|
|
||
|
|
# Column width, as a fraction of the screen, applied to every column on the
|
||
|
|
# workspace when it turns to scrolling.
|
||
|
|
WIDTH="${1:-0.75}"
|
||
|
|
|
||
|
|
hypr_dispatch() {
|
||
|
|
local lua="$1"
|
||
|
|
shift
|
||
|
|
|
||
|
|
hyprctl dispatch "$lua" >/dev/null 2>&1 || hyprctl dispatch "$@" >/dev/null
|
||
|
|
}
|
||
|
|
|
||
|
|
current_layout() {
|
||
|
|
hyprctl activeworkspace -j 2>/dev/null | jq -r '.tiledLayout // empty'
|
||
|
|
}
|
||
|
|
|
||
|
|
omarchy-hyprland-workspace-layout-toggle || exit 1
|
||
|
|
|
||
|
|
# The toggle writes a workspace rule, so the new layout can take a moment to
|
||
|
|
# show up. Read until it does, then act only on the scrolling case: dwindle
|
||
|
|
# re-tiles on its own and needs no widths.
|
||
|
|
for _ in {1..6}; do
|
||
|
|
case "$(current_layout)" in
|
||
|
|
scrolling)
|
||
|
|
MSG="colresize all $WIDTH"
|
||
|
|
hypr_dispatch "hl.dsp.layout(\"$MSG\")" layoutmsg "$MSG"
|
||
|
|
exit 0
|
||
|
|
;;
|
||
|
|
dwindle)
|
||
|
|
exit 0
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
sleep 0.05
|
||
|
|
done
|