#!/usr/bin/env sh
# ~/.config/yabai/yabairc -- mirrors ~/.config/hypr/hyprland.lua
# chmod +x this file. Requires: yabai, skhd, borders (JankyBorders).
# No scripting addition: everything here works with SIP fully enabled.
# ---- Layout (dwindle -> bsp) ----
yabai -m config layout bsp
yabai -m config window_placement second_child # dwindle: new window goes right/below
yabai -m config auto_balance off
yabai -m config split_ratio 0.50
yabai -m config split_type auto # dwindle picks split by aspect ratio
# ---- Gaps (gaps_in=4 per side -> 8 between windows, gaps_out=10) ----
yabai -m config window_gap 8
yabai -m config top_padding 10
yabai -m config bottom_padding 10
yabai -m config left_padding 10
yabai -m config right_padding 10
# ---- Decoration ----
yabai -m config window_shadow on # shadow.enabled = true
# Window animations need the scripting addition (SIP off); intentionally omitted.
yabai -m config insert_feedback_color 0xffa855f7
# Borders: yabai dropped native borders; JankyBorders draws them and follows macOS rounding.
# Hyprland: border_size=4, active #a855f7 -> #7c3aed gradient, inactive #28222f, rounding=10.
borders \
active_color="gradient(top_left=0xffa855f7,bottom_right=0xff7c3aed)" \
inactive_color=0xff28222f \
width=4.0 \
style=round &
# ---- Input (follow_mouse = 2: click to focus, no focus-follows-mouse) ----
yabai -m config focus_follows_mouse off
yabai -m config mouse_follows_focus off
# ---- Mouse (SUPER+LMB drag = move, SUPER+RMB drag = re
yabai -m config mouse_modifier cmd
yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize
yabai -m config mouse_drop_action swap
# ---- Window rules ----
# Hyprland "suppress maximize" has no yabai equivalent;
# System dialogs and utilities that should float:
yabai -m rule --add app="^System Settings$" manage=of
yabai -m rule --add app="^Finder$" manage=of
yabai -m rule --add app="^Archive Utility$" manage=off
yabai -m rule --add app="^Calculator$" manage=of
yabai -m rule --add app="^Activity Monitor$" manage=off
yabai -m rule --add app="^Karabiner-Elements$" manage=of
yabai -m rule --add title="^(Open|Save|Print)" manage=off
echo "yabai configuration loaded.."
echo "yabai configuration loaded.."