This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / machines / barnacle / configuration.nix
5.8 kB 203 lines
1{ 2 pkgs, 3 self, 4 lib, 5 ... 6}: 7 8{ 9 imports = [ 10 self.inputs.nix-index-database.darwinModules.nix-index 11 self.inputs.nix-rosetta-builder.darwinModules.default 12 ./retiolum.nix 13 ../../configs/nix-farm/client.nix 14 ]; 15 clan.core.networking.targetHost = "root@localhost"; 16 programs.nix-index-database.comma.enable = true; 17 18 nixpkgs.hostPlatform = "aarch64-darwin"; 19 environment.systemPackages = [ 20 self.packages.${pkgs.system}.nvim 21 self.packages.${pkgs.system}.pass 22 self.packages.${pkgs.system}.passmenu 23 self.packages.${pkgs.system}.tmux 24 self.packages.${pkgs.system}.mutt 25 self.packages.${pkgs.system}.notmuch 26 self.packages.${pkgs.system}.mpv 27 self.packages.${pkgs.system}.s 28 29 self.packages.${pkgs.system}.secretive 30 pkgs.omp 31 self.packages.${pkgs.system}.browser-mcp 32 33 # zsh dependencies 34 pkgs.fzf 35 self.packages.${pkgs.system}.atuin 36 37 pkgs.gnupg 38 pkgs.pinentry_mac 39 pkgs.lazygit 40 pkgs.sshuttle 41 pkgs.git 42 pkgs.iterm2 43 pkgs.ripgrep 44 pkgs.alt-tab-macos 45 pkgs.nixd 46 pkgs.nil 47 pkgs.age-plugin-se 48 pkgs.gh 49 pkgs.tea 50 pkgs.rbw 51 # marked insecure in nixpkgs (private repos unencrypted) 52 (self.lib.secureify pkgs.radicle-node) 53 ]; 54 55 environment.variables = { 56 EDITOR = "nvim"; 57 }; 58 59 # Use a custom configuration.nix location. 60 # $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix 61 # environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix"; 62 63 nix = { 64 package = pkgs.nix; 65 settings = { 66 extra-experimental-features = [ 67 "nix-command" 68 "flakes" 69 ]; 70 }; 71 }; 72 73 # homebrew = { 74 # enable = true; 75 # casks = [ 76 # "gpg-suite" 77 # ]; 78 # }; 79 80 # keyboard settings 81 system.keyboard = { 82 enableKeyMapping = true; 83 }; 84 85 # Add skhd for keyboard shortcuts 86 services.skhd = { 87 enable = true; 88 skhdConfig = '' 89 # Test with simpler combo first 90 cmd - f12 : /usr/bin/say "test works" 91 # Open passmenu with Hyper-P 92 ctrl + shift + alt + cmd - p : /run/current-system/sw/bin/passmenu 93 ''; 94 }; 95 96 system.defaults = { 97 # minimal dock 98 dock = { 99 autohide = true; 100 orientation = "left"; 101 show-process-indicators = false; 102 show-recents = false; 103 static-only = true; 104 }; 105 # a finder that tells me what I want to know and lets me work 106 finder = { 107 AppleShowAllExtensions = true; 108 ShowPathbar = true; 109 FXEnableExtensionChangeWarning = false; 110 }; 111 # Tab between form controls and F-row that behaves as F1-F12 112 NSGlobalDomain = { 113 AppleKeyboardUIMode = 3; 114 "com.apple.keyboard.fnState" = true; 115 }; 116 }; 117 118 # Enable Rosetta builder for x86_64 builds 119 nix-rosetta-builder = { 120 enable = true; 121 potentiallyInsecureExtraNixosModule = { 122 # Fix DNS resolution in the VM 123 networking.nameservers = [ 124 "8.8.8.8" 125 "1.1.1.1" 126 ]; 127 # Pin to Linux 6.12 LTS to avoid "rosetta error: unhandled auxillary 128 # vector type 29" — newer kernels (6.18+) expose AT_MINSIGSTKSZ which 129 # Rosetta doesn't handle yet. 130 # https://github.com/lima-vm/lima/issues/3592 131 boot.kernelPackages = 132 (import self.inputs.nixpkgs { system = "aarch64-linux"; }).linuxKernel.packages.linux_6_12; 133 }; 134 }; 135 136 # Create /etc/zshrc that loads the nix-darwin environment. 137 programs.zsh.enable = true; # default shell on catalina 138 programs.zsh.shellInit = self.packages.${pkgs.system}.zsh.zshrc; 139 programs.zsh.promptInit = ""; # Disable default prompt 140 programs.zsh.interactiveShellInit = '' 141 export SSH_AUTH_SOCK=/Users/lassulus/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh 142 ''; 143 144 # enable sudo touch 145 security.pam.services.sudo_local.touchIdAuth = true; 146 147 # Enable Touch ID in tmux sessions with pam_reattach 148 security.pam.services.sudo_local.text = lib.mkBefore '' 149 auth optional ${pkgs.pam-reattach}/lib/pam/pam_reattach.so ignore_ssh 150 ''; 151 152 # disable natural scrolling 153 system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = false; 154 programs.direnv.enable = true; 155 programs.nix-index.enable = true; 156 programs.gnupg.agent = { 157 enable = true; 158 enableSSHSupport = true; 159 }; 160 161 # Used for backwards compatibility, please read the changelog before changing. 162 # $ darwin-rebuild changelog 163 system.stateVersion = 6; 164 165 system.primaryUser = "lassulus"; 166 167 services.openssh.enable = true; 168 users.users.lassulus.openssh.authorizedKeys.keys = [ 169 self.keys.ssh.barnacle.public 170 self.keys.ssh.yubi_pgp.public 171 self.keys.ssh.termux_massulus.public 172 self.keys.ssh.yubi1.public 173 self.keys.ssh.yubi2.public 174 self.keys.ssh.solo2.public 175 self.keys.ssh.ignavia.public 176 self.keys.ssh.phonetpm_massulus.public 177 ]; 178 users.users.root.openssh.authorizedKeys.keys = [ 179 self.keys.ssh.barnacle.public 180 self.keys.ssh.yubi_pgp.public 181 self.keys.ssh.termux_massulus.public 182 self.keys.ssh.yubi1.public 183 self.keys.ssh.yubi2.public 184 self.keys.ssh.solo2.public 185 self.keys.ssh.ignavia.public 186 self.keys.ssh.phonetpm_massulus.public 187 ]; 188 189 users.users.root.shell = pkgs.zsh; 190 users.users.root.uid = 0; 191 users.knownUsers = [ "root" ]; 192 193 system.activationScripts.postActivation.text = '' 194 install ${./US_INTL.keylayout} /Library/Keyboard\ Layouts/US_INTL.keylayout 195 # Native messaging host for the Browser MCP Firefox extension (system-wide 196 # location, Firefox reads it for every user). 197 mkdir -p "/Library/Application Support/Mozilla/NativeMessagingHosts" 198 ln -sfn ${ 199 self.packages.${pkgs.system}.browser-mcp 200 }/lib/mozilla/native-messaging-hosts/browser_mcp.json \ 201 "/Library/Application Support/Mozilla/NativeMessagingHosts/browser_mcp.json" 202 ''; 203}