Files
nixos-config/modules/macos/tiling.nix

80 lines
2.5 KiB
Nix

{ config, pkgs, lib, ... }:
{
# Enable yabai service
# Caution: at the very least yabai requires Accessibility permissions to be granted
# https://github.com/koekeishiya/yabai/issues/2688
services.yabai = {
enable = true;
config = {
layout = "bsp";
focus_follows_mouse = "autoraise";
window_placement = "second_child";
window_topmost = "on";
window_shadow = "float";
# by default, set balanced split ratio and auto balance => three windows will be evenly spaced on an ultrawide monitor
split_ratio = "0.50";
auto_balance = "on";
mouse_modifier = "alt";
mouse_action1 = "move";#
mouse_action2 = "resize";
window_opacity = "on";
normal_window_opacity = 0.9;
top_padding = 0;
bottom_padding = 0;
left_padding = 0;
right_padding = 0;
window_gap = 10;
};
extraConfig = ''
# Example: rules for floating windows
yabai -m rule --add app="System Preferences" manage=off
'';
};
# # Enable skhd service
# services.skhd = {
# enable = true;
# package = pkgs.skhd;
# skhdConfig = ''
# # Focus windows with Command + Arrow keys
# cmd - left : yabai -m window --focus west
# cmd - right : yabai -m window --focus east
# cmd - up : yabai -m window --focus north
# cmd - down : yabai -m window --focus south
# # Swap windows with Command + Shift + Arrow keys
# cmd + shift - left : yabai -m window --swap west
# cmd + shift - right : yabai -m window --swap east
# cmd + shift - up : yabai -m window --swap north
# cmd + shift - down : yabai -m window --swap south
# # Move windows with Command + Control + Arrow keys
# cmd + ctrl - left : yabai -m window --warp west
# cmd + ctrl - right : yabai -m window --warp east
# cmd + ctrl - up : yabai -m window --warp north
# cmd + ctrl - down : yabai -m window --warp south
# # Resize windows with Command + Option + Arrow keys
# cmd + alt - left : yabai -m window --resize left:-50:0
# cmd + alt - right : yabai -m window --resize right:50:0
# cmd + alt - up : yabai -m window --resize top:0:-50
# cmd + alt - down : yabai -m window --resize bottom:0:50
# # Toggle window float with Command + F
# cmd - f : yabai -m window --toggle float
# # Toggle window fullscreen with Command + Enter
# cmd - return : yabai -m window --toggle zoom-fullscreen
# '';
# };
}