1
0
dotfiles/darwin/default.nix

145 lines
4.8 KiB
Nix

{ pkgs, user, ... }:
{
imports = [
./home-manager.nix
../shared
../shared/cachix
];
# Setup user, packages, programs
nix = {
package = pkgs.nix;
settings.trusted-users = [ "@admin" "${user}" ];
gc = {
user = "root";
automatic = true;
interval = { Weekday = 0; Hour = 2; Minute = 0; };
options = "--delete-older-than 30d";
};
# Turn this on to make command line easier
extraOptions = ''
experimental-features = nix-command flakes
'';
};
# Turn off NIX_PATH warnings now that we're using flakes
system.checks.verifyNixPath = false;
# Load configuration that is shared across systems
environment.systemPackages = import ../shared/packages.nix { inherit pkgs; } ++ [
# MacOS specific packages
];
# Setup MacOS specific services
services = {
aerospace = {
enable = true;
settings = {
mode.main.binding = {
# Open a new terminal window
alt-enter = "exec-and-forget /Users/dekker1/.nix-profile/bin/kitty --single-instance -d ~";
# alt-enter = "exec-and-forget open \"warp://action/new_window?path=$HOME\"";
# Toggle between floating and tiling layout
alt-shift-space = "layout floating tiling";
### Key mappings copied from the default config
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = "layout tiles horizontal vertical";
alt-comma = "layout accordion horizontal vertical";
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-h = "focus left";
alt-j = "focus down";
alt-k = "focus up";
alt-l = "focus right";
# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-h = "move left";
alt-shift-j = "move down";
alt-shift-k = "move up";
alt-shift-l = "move right";
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-shift-minus = "resize smart -50";
alt-shift-equal = "resize smart +50";
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-1 = "workspace 1";
alt-2 = "workspace 2";
alt-3 = "workspace 3";
alt-4 = "workspace 4";
alt-5 = "workspace 5";
alt-6 = "workspace 6";
alt-7 = "workspace 7";
alt-8 = "workspace 8";
alt-9 = "workspace 9";
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
alt-shift-1 = "move-node-to-workspace 1";
alt-shift-2 = "move-node-to-workspace 2";
alt-shift-3 = "move-node-to-workspace 3";
alt-shift-4 = "move-node-to-workspace 4";
alt-shift-5 = "move-node-to-workspace 5";
alt-shift-6 = "move-node-to-workspace 6";
alt-shift-7 = "move-node-to-workspace 7";
alt-shift-8 = "move-node-to-workspace 8";
alt-shift-9 = "move-node-to-workspace 9";
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
alt-tab = "workspace-back-and-forth";
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = "mode service";
};
### Service mode (from default config, with default keybindings)
mode.service.binding = {
esc = ["reload-config" "mode main"];
r = ["flatten-workspace-tree" "mode main"]; # reset layout
f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout
backspace = ["close-all-windows-but-current" "mode main"];
# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
#s = ["layout sticky tiling", "mode main"]
alt-shift-h = ["join-with left" "mode main"];
alt-shift-j = ["join-with down" "mode main"];
alt-shift-k = ["join-with up" "mode main"];
alt-shift-l = ["join-with right" "mode main"];
## Version 0.16+
# down = "volume down";
# up = "volume up";
# shift-down = ["volume set 0" "mode main"];
};
# on-window-detected = [
# # Use floating mode for Sublime Merge
# {
# "if.app-id" = "com.sublimemerge";
# run = "layout floating";
# }
# ];
};
};
# Auto upgrade nix package and the daemon service.
nix-daemon.enable = true;
skhd = {
enable = false;
skhdConfig = (builtins.readFile ./config/skhdrc);
};
yabai = {
enable = false;
extraConfig = (builtins.readFile ./config/yabairc);
};
};
system.stateVersion = 5;
}