Yabai configuration file for MacOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
5.6 KiB

  1. #!/usr/bin/env zsh
  2. sudo yabai --load-sa
  3. yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
  4. ## global settings
  5. # focus window that your mouse hovers on (disabled due to right click bugs)
  6. #yabai -m config focus_follows_mouse off
  7. # move mouse to focused window
  8. yabai -m config mouse_follows_focus off
  9. yabai -m config window_placement first_child #second_child
  10. # floating windows always stay on top
  11. yabai -m config window_topmost on
  12. # enable borders
  13. yabai -m config window_border on
  14. yabai -m config split_ratio 0.50
  15. # don't automatically rebalance windows
  16. yabai -m config auto_balance off
  17. # swap windows if moved with mouse
  18. yabai -m config mouse_action1 move
  19. # resize windows if resized with mouse
  20. yabai -m config mouse_action2 resize
  21. yabai -m config mouse_drop_action swap
  22. #-=-=-=-=-=-=-=-=-=-=-=
  23. # Padding and Gaps
  24. yabai -m config layout bsp
  25. yabai -m config top_padding 3
  26. yabai -m config bottom_padding 3
  27. yabai -m config left_padding 3
  28. yabai -m config right_padding 3
  29. yabai -m config window_gap 5
  30. # Override gaps for space 2 only:
  31. yabai -m config --space 3 window_gap 2
  32. #yabai -m config --space 5 window_border_width 0
  33. #-=-=-=-=-=-=-=-=-=-=-=
  34. # SIP Required
  35. # prevent border from being under the active window
  36. #yabai -m config active_window_border_topmost on
  37. yabai -m config window_shadow float
  38. yabai -m config window_opacity on
  39. #yabai -m config window_opacity_duration 0.0
  40. yabai -m config active_window_opacity 0.99
  41. yabai -m config normal_window_opacity 0.99
  42. yabai -m config window_border_width 6
  43. yabai -m config active_window_border_color 0xffad82cb
  44. yabai -m config normal_window_border_color 0xffaaaaaa
  45. #-=-=-=-=-=-=-=-=-
  46. # Space labels
  47. yabai -m space 1 --label "Primary"
  48. yabai -m space 2 --label "Comms"
  49. # yabai -m space 3 --label "Tools"
  50. # yabai -m space 4 --label "Media"
  51. # yabai -m space 5 --label "Social"
  52. # yabai -m space 6 --label "Float"
  53. # yabai -m space 7 --label "Secondary"
  54. #
  55. # Space config
  56. yabai -m config --space 9 layout float
  57. yabai -m config --space 6 layout float
  58. #
  59. # # Unmanaged
  60. # yabai -m rule --add app="^System Preferences$" manage=off border=off
  61. #
  62. # Primary
  63. yabai -m rule --add app="Brave Browser" space=1
  64. yabai -m rule --add app="Safari" space=1
  65. # yabai -m rule --add app="kitty" space=1
  66. # yabai -m rule --add app="Preview" space=1
  67. # yabai -m rule --add app="VimR" space=1
  68. # yabai -m rule --add app="Simulator" space=1
  69. # yabai -m rule --add app="Skim" space=1
  70. #
  71. # # Communication
  72. # yabai -m rule --add app="Slack" space=2
  73. # yabai -m rule --add app="Notability" space=2
  74. # yabai -m rule --add app="Microsoft Outlook" space=2
  75. yabai -m rule --add app="Messages" space=2
  76. yabai -m rule --add app="ChatMate" space=2
  77. #
  78. # # Tools
  79. # yabai -m rule --add app="Finder" space=7
  80. # yabai -m rule --add app="Microsoft Word" space=3
  81. # yabai -m rule --add app="Sequel Pro" space=3
  82. # yabai -m rule --add app="Postman" space=3
  83. # yabai -m rule --add app="Sourcetree" space=3
  84. # yabai -m rule --add app="Activity Monitor" space=3
  85. # yabai -m rule --add app="App Store" space=3
  86. # yabai -m rule --add app="WebTorrent" space=3
  87. # yabai -m rule --add app="Terminal" space=3
  88. #
  89. # =-=-=-=
  90. # Yabai Space Indicator
  91. yabai -m signal --add event=mission_control_exit action='echo "refresh" | nc -U /tmp/yabai-indicator.socket'
  92. yabai -m signal --add event=display_added action='echo "refresh" | nc -U /tmp/yabai-indicator.socket'
  93. yabai -m signal --add event=display_removed action='echo "refresh" | nc -U /tmp/yabai-indicator.socket'
  94. yabai -m signal --add event=window_created action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  95. yabai -m signal --add event=window_destroyed action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  96. yabai -m signal --add event=window_focused action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  97. yabai -m signal --add event=window_moved action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  98. yabai -m signal --add event=window_resized action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  99. yabai -m signal --add event=window_minimized action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  100. yabai -m signal --add event=window_deminimized action='echo "refresh windows" | nc -U /tmp/yabai-indicator.socket'
  101. ##=-=-=-=-=-=-=-=-=-
  102. ## Rules:
  103. yabai -m rule --add label="Calculator" app="^Calculator$" manage=off
  104. yabai -m rule --add label="Dictionary" app="^Dictionary$" manage=off
  105. yabai -m rule --add label="Reminders" app="^Reminders$" manage=off
  106. yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
  107. yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
  108. yabai -m rule --add label="Brave" app="^Brave$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
  109. yabai -m rule --add label="System Preferences" app="^System Preferences$" title=".*" manage=off
  110. yabai -m rule --add label="App Store" app="^App Store$" manage=off
  111. yabai -m rule --add label="Activity Monitor" app="^Activity Monitor$" manage=off
  112. #=-=-=-=-=-=-=
  113. #
  114. echo "Yabai's configuration loaded ... O.K."