about summary refs log tree commit diff
path: root/nix/machines/darwin-shared.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/machines/darwin-shared.nix')
-rw-r--r--nix/machines/darwin-shared.nix91
1 files changed, 91 insertions, 0 deletions
diff --git a/nix/machines/darwin-shared.nix b/nix/machines/darwin-shared.nix
new file mode 100644
index 0000000..6c727f8
--- /dev/null
+++ b/nix/machines/darwin-shared.nix
@@ -0,0 +1,91 @@
+{ pkgs, ... }: {
+  nix = {
+    package = pkgs.nixVersions.stable;
+
+    gc = {
+      user = "root";
+      automatic = true;
+      interval = [{
+        Hour = 7;
+        Minute = 0;
+        Weekday = 0;
+      }];
+      options = "--delete-older-than 7d";
+    };
+
+    settings = {
+      trusted-users = [ "@admin" "fcuny" ];
+      experimental-features = [ "nix-command" "flakes" ];
+    };
+  };
+
+  system.defaults = {
+    dock = {
+      autohide = true;
+      orientation = "left";
+      showhidden = false;
+      show-recents = false;
+      mru-spaces = false; # don’t rearrange spaces based on the most recent use
+    };
+    finder.AppleShowAllExtensions = true;
+    screencapture.location = "~/Documents/screenshots";
+    SoftwareUpdate.AutomaticallyInstallMacOSUpdates = true;
+  };
+
+  fonts.packages = with pkgs; [
+    emacs-all-the-icons-fonts
+    google-fonts
+    roboto
+    source-code-pro
+    source-serif-pro
+    source-sans-pro
+    go-font
+  ];
+
+  system.keyboard = {
+    enableKeyMapping = true;
+    remapCapsLockToControl = true;
+  };
+
+  # Touch ID for sudo auth
+  security.pam.enableSudoTouchIdAuth = true;
+
+  services.nix-daemon.enable = true;
+
+  system.defaults.CustomUserPreferences = {
+    "com.apple.desktopservices" = {
+      # Avoid creating .DS_Store files on network or USB volumes
+      DSDontWriteNetworkStores = true;
+      DSDontWriteUSBStores = true;
+    };
+  };
+
+  programs.fish.enable = true;
+  programs.fish.shellInit = ''
+    # Nix
+    if test -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish'
+      source '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish'
+    end
+    # End Nix
+  '';
+
+  # Required for homebrew on aarch64
+  environment.systemPath = [ "/opt/homebrew/bin" "/opt/homebrew/sbin" ];
+
+  homebrew = {
+    enable = true;
+    onActivation.autoUpdate = true;
+    onActivation.upgrade = true;
+
+    casks = [
+      "1password-cli"
+      "docker"
+      "element"
+      "emacs"
+      "iterm2"
+      "transmission"
+      "vlc"
+      "wireshark"
+    ];
+  };
+}