145 lines
4.8 KiB
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;
|
|
}
|