aboutsummaryrefslogtreecommitdiff
path: root/nix/hosts
diff options
context:
space:
mode:
Diffstat (limited to 'nix/hosts')
-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
5 files changed, 115 insertions, 0 deletions
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";
+}