-
-
Save shardulbee/8d693d1e3e60048532c5f6a505282b97 to your computer and use it in GitHub Desktop.
nix-darwin config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ config, pkgs, ... }: | |
{ | |
pkgsUnstable = import <nixpkgs-unstable> {}; | |
imports = [ <home-manager/nix-darwin> ./home.nix ]; | |
environment.darwinConfig = "${config.users.users.shardy.home}/dotfiles/darwin.nix"; | |
system.stateVersion = 4; | |
environment.systemPackages = [ | |
pkgs.alacritty | |
pkgs.pinentry_mac | |
pkgs.terminal-notifier | |
]; | |
nix.useDaemon = false; | |
services.nix-daemon.enable = false; | |
nix.maxJobs = 4; | |
nix.buildCores = 4; | |
# Make sure nix-darwin overwrites /etc/zshrc otherwise your prompt will be broken | |
programs.zsh.enable = true; | |
programs.nix-index.enable = true; | |
# {{{ yabai | |
services.yabai = { | |
enable = true; | |
package = pkgsUnstable.yabai; | |
enableScriptingAddition = true; | |
config = { | |
# mouse stuff | |
mouse_modifier = "fn"; | |
mouse_action1 = "move"; | |
mouse_action2 = "resize"; | |
mouse_follows_focus = "on"; | |
focus_follows_mouse = "autoraise"; | |
window_placement = "second_child"; | |
window_topmost = "on"; | |
window_shadow = "float"; | |
split_ratio = 0.50; | |
auto_balance = "true"; | |
layout = "bsp"; | |
# default padding | |
top_padding = 0; | |
bottom_padding = 0; | |
left_padding = 0; | |
right_padding = 0; | |
window_gap = 0; | |
active_window_opacity = "1.0"; | |
normal_window_opacity = "1.0"; | |
}; | |
extraConfig = '' | |
yabai -m rule --add app="^Google Chrome$" space=^3 | |
yabai -m rule --add app="^Slack$" space=^7 | |
yabai -m rule --add app="^Messages$" space=^8 | |
yabai -m rule --add app="^Things$" space=^9 | |
yabai -m rule --add app="^Alacritty$" space=^10 | |
yabai -m rule --add app="^Dash.app$" manage=off topmost=on | |
yabai -m rule --add app="^Finder$" manage=off topmost=on | |
yabai -m rule --add app="^System Preferences$" manage=off topmost=on | |
for e in application_launched application_terminated window_created window_destroyed | |
do | |
yabai -m signal --add event=$e action="${pkgs.writeShellScript "yabai-smart-gaps" '' | |
spaceData=$(yabai -m query --spaces --space) | |
spaceWindows=( $(echo $spaceData | ${pkgs.jq}/bin/jq '.windows | .[]') ) | |
spaceIndex=$(echo $spaceData | ${pkgs.jq}/bin/jq '.index') | |
windowCount=$(yabai -m query --windows \ | |
| ${pkgs.jq}/bin/jq "[.[]|select(.role==\"AXWindow\" and .space==$spaceIndex)]|length") | |
if [[ $windowCount -eq 1 ]]; then | |
yabai -m space --padding abs:0:0:0:0 | |
yabai -m space --gap abs:0 | |
elif [[ $windowCount -gt 1 ]]; then | |
yabai -m space --padding abs:10:10:10:10 | |
yabai -m space --gap abs:10 | |
fi | |
echo "yabai config loaded" | |
''}" | |
done | |
''; | |
}; | |
# }}} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment