about summary refs log tree commit diff
path: root/nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-03-11 17:26:22 -0700
committerFranck Cuny <franck@fcuny.net>2024-03-11 17:26:22 -0700
commit1248d431ff09c15df666b381059efb8884718a9b (patch)
tree7959ce50cd52a99998430b13d0e47feff9630789 /nix
parentreorganize common files for hosts (diff)
downloadworld-1248d431ff09c15df666b381059efb8884718a9b.tar.gz
switch to absolute path
Diffstat (limited to 'nix')
-rw-r--r--nix/flake/hosts.nix10
-rw-r--r--nix/hosts/common/homebrew.nix42
-rw-r--r--nix/hosts/common/macos.nix23
-rw-r--r--nix/hosts/common/nix.nix24
-rw-r--r--nix/hosts/mba/default.nix13
-rw-r--r--nix/hosts/work/default.nix13
6 files changed, 120 insertions, 5 deletions
diff --git a/nix/flake/hosts.nix b/nix/flake/hosts.nix
index a6390e5..36821b6 100644
--- a/nix/flake/hosts.nix
+++ b/nix/flake/hosts.nix
@@ -17,9 +17,9 @@ let
             };
           };
         }
-        ../../hosts/common/homebrew.nix
-        ../../hosts/common/macos.nix
-        ../../hosts/common/nix.nix
+        "${self}/nix/hosts/common/homebrew.nix"
+        "${self}/nix/hosts/common/macos.nix"
+        "${self}/nix/hosts/common/nix.nix"
         path
         {
           nixpkgs.overlays = [
@@ -35,8 +35,8 @@ in
   flake = mkMerge [
     {
       darwinConfigurations = {
-        mba-fcuny = mkDarwinConfig "aarch64-darwin" ../../hosts/mba;
-        HQ-C02FK3Q7MD6T = mkDarwinConfig "x86_64-darwin" ../../hosts/work;
+        mba-fcuny = mkDarwinConfig "aarch64-darwin" "${self}/nix/hosts/mba";
+        HQ-C02FK3Q7MD6T = mkDarwinConfig "x86_64-darwin" "${self}/nix/hosts/work";
       };
     }
   ];
diff --git a/nix/hosts/common/homebrew.nix b/nix/hosts/common/homebrew.nix
new file mode 100644
index 0000000..b358695
--- /dev/null
+++ b/nix/hosts/common/homebrew.nix
@@ -0,0 +1,42 @@
+{ ... }:
+{
+  # Required for homebrew on aarch64
+  environment.systemPath = [ "/opt/homebrew/bin" "/opt/homebrew/sbin" ];
+
+  homebrew = {
+    enable = true;
+    onActivation.autoUpdate = true;
+    onActivation.upgrade = true;
+
+    brews = [
+      "aspell" # spelling
+      "envoy" # to do some testing with envoy
+      "go" # it's also installed by nix, but this is a fallback, just in case
+      "hashicorp/tap/boundary" # https://www.boundaryproject.io/
+      "kind" # to run local k8s cluster
+      "kubebuilder"
+      "s3cmd"
+    ];
+
+    taps = [
+      "homebrew/cask-fonts"
+      "hashicorp/tap"
+    ];
+
+    casks = [
+      "1password-cli"
+      "docker"
+      "element"
+      "emacs"
+      "font-monaspace" # https://github.com/githubnext/monaspace
+      "font-source-code-pro"
+      "iterm2"
+      "netnewswire"
+      "transmission"
+      "vlc"
+      "wireshark"
+      "zed"
+      "zoom"
+    ];
+  };
+}
diff --git a/nix/hosts/common/macos.nix b/nix/hosts/common/macos.nix
new file mode 100644
index 0000000..edc57a0
--- /dev/null
+++ b/nix/hosts/common/macos.nix
@@ -0,0 +1,23 @@
+{ ... }: {
+  system.defaults.dock.autohide = true;
+  system.defaults.dock.orientation = "left";
+  system.defaults.dock.showhidden = false;
+  system.defaults.dock.show-recents = false;
+  # don’t rearrange spaces based on the most recent use
+  system.defaults.dock.mru-spaces = false;
+  system.defaults.finder.AppleShowAllExtensions = true;
+  system.defaults.screencapture.location = "~/Documents/screenshots";
+
+  system.keyboard = {
+    enableKeyMapping = true;
+    remapCapsLockToControl = true;
+  };
+
+  system.defaults.CustomUserPreferences = {
+    "com.apple.desktopservices" = {
+      # Avoid creating .DS_Store files on network or USB volumes
+      DSDontWriteNetworkStores = true;
+      DSDontWriteUSBStores = true;
+    };
+  };
+}
diff --git a/nix/hosts/common/nix.nix b/nix/hosts/common/nix.nix
new file mode 100644
index 0000000..c828a16
--- /dev/null
+++ b/nix/hosts/common/nix.nix
@@ -0,0 +1,24 @@
+{ pkgs, ... }: {
+  nix = {
+    package = pkgs.nixFlakes;
+
+    gc = {
+      user = "root";
+      automatic = true;
+      interval = { Weekday = 0; Hour = 2; Minute = 0; };
+      options = "--delete-older-than 30d";
+    };
+
+    settings = {
+      trusted-users = [ "@admin" "fcuny" ];
+      experimental-features = [ "nix-command" "flakes" ];
+    };
+  };
+
+  nixpkgs.config = {
+    allowUnfree = true;
+    permittedInsecurePackages = [
+      "nix-2.16.2" # FIXME https://github.com/nix-community/nixd/issues/357
+    ];
+  };
+}
diff --git a/nix/hosts/mba/default.nix b/nix/hosts/mba/default.nix
new file mode 100644
index 0000000..d583df6
--- /dev/null
+++ b/nix/hosts/mba/default.nix
@@ -0,0 +1,13 @@
+{ self, ... }:
+{
+  services.nix-daemon.enable = true;
+
+  programs.zsh.enable = true;
+
+  users.users.fcuny.home = "/Users/fcuny";
+
+  # Touch ID for sudo auth
+  security.pam.enableSudoTouchIdAuth = true;
+
+  home-manager.users.fcuny = import "${self}/nix/profiles/home-manager/personal.nix";
+}
diff --git a/nix/hosts/work/default.nix b/nix/hosts/work/default.nix
new file mode 100644
index 0000000..24cb95e
--- /dev/null
+++ b/nix/hosts/work/default.nix
@@ -0,0 +1,13 @@
+{ self, ... }:
+{
+  services.nix-daemon.enable = true;
+
+  programs.zsh.enable = true;
+
+  users.users.fcuny.home = "/Users/fcuny";
+
+  # Touch ID for sudo auth
+  security.pam.enableSudoTouchIdAuth = true;
+
+  home-manager.users.fcuny = import "${self}/nix/profiles/home-manager/work.nix";
+}