aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/scripts/KeybindsLayoutInit.sh
diff options
context:
space:
mode:
Diffstat (limited to 'config/hypr/scripts/KeybindsLayoutInit.sh')
-rwxr-xr-xconfig/hypr/scripts/KeybindsLayoutInit.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/config/hypr/scripts/KeybindsLayoutInit.sh b/config/hypr/scripts/KeybindsLayoutInit.sh
new file mode 100755
index 00000000..fd34f90e
--- /dev/null
+++ b/config/hypr/scripts/KeybindsLayoutInit.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
+# Initialize J/K keybinds to match the current default layout at startup
+
+set -euo pipefail
+
+# Determine current layout (master|dwindle); be robust to null at startup
+LAYOUT=$(hyprctl -j getoption general:layout | jq -r '.str // empty' 2>/dev/null || true)
+if [ -z "${LAYOUT:-}" ]; then
+ # Fallback: parse non-JSON output (e.g., "str: dwindle")
+ LAYOUT=$(hyprctl getoption general:layout 2>/dev/null | awk -F'str:' 'NF>1 {gsub(/^ +| +$/,"",$2); print $2}')
+fi
+[ -z "${LAYOUT:-}" ] && exit 0
+
+case "$LAYOUT" in
+ master)
+ # Ensure master layout-style binds
+ hyprctl keyword unbind SUPER,J
+ hyprctl keyword unbind SUPER,K
+ hyprctl keyword unbind SUPER,O
+ hyprctl keyword bind SUPER,J,layoutmsg,cyclenext
+ hyprctl keyword bind SUPER,K,layoutmsg,cycleprev
+ ;;
+ dwindle)
+ # Ensure dwindle layout-style binds
+ hyprctl keyword unbind SUPER,J
+ hyprctl keyword unbind SUPER,K
+ hyprctl keyword unbind SUPER,O
+ hyprctl keyword bind SUPER,J,cyclenext
+ hyprctl keyword bind SUPER,K,cyclenext,prev
+ # ensure SUPER+O togglesplit is available on dwindle
+ hyprctl keyword bind SUPER,O,togglesplit
+ ;;
+ *)
+ # Do nothing for unexpected values
+ :
+ ;;
+ esac
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage