This repository has no description
3.9 kB
151 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 ];
13 clan.core.networking.targetHost = "root@localhost";
14 programs.nix-index-database.comma.enable = true;
15
16 nixpkgs.hostPlatform = "aarch64-darwin";
17 environment.systemPackages = [
18 self.packages.${pkgs.system}.nvim
19 self.packages.${pkgs.system}.pass
20 self.packages.${pkgs.system}.passmenu
21 self.packages.${pkgs.system}.tmux
22
23 self.packages.${pkgs.system}.secretive
24
25 # zsh dependencies
26 pkgs.fzf
27 pkgs.atuin
28 pkgs.gnupg
29 pkgs.pinentry_mac
30 pkgs.lazygit
31 pkgs.sshuttle
32 pkgs.git
33 pkgs.element-desktop
34 pkgs.iterm2
35 pkgs.firefox-devedition
36 pkgs.ripgrep
37 pkgs.alt-tab-macos
38 pkgs.zed-editor
39 pkgs.nixd
40 pkgs.nil
41 pkgs.age-plugin-se
42 ];
43
44 # Use a custom configuration.nix location.
45 # $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
46 # environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";
47
48 nix = {
49 package = pkgs.nix;
50 settings = {
51 extra-experimental-features = [
52 "nix-command"
53 "flakes"
54 ];
55 };
56 };
57
58 # homebrew = {
59 # enable = true;
60 # casks = [
61 # "gpg-suite"
62 # ];
63 # };
64
65 # keyboard settings
66 system.keyboard = {
67 enableKeyMapping = true;
68 };
69
70 # Add skhd for keyboard shortcuts
71 services.skhd = {
72 enable = true;
73 skhdConfig = ''
74 # Open passmenu with Hyper-P
75 ctrl + shift + alt + cmd - p : /run/current-system/sw/bin/passmenu
76 '';
77 };
78
79 system.defaults = {
80 # minimal dock
81 dock = {
82 autohide = true;
83 orientation = "left";
84 show-process-indicators = false;
85 show-recents = false;
86 static-only = true;
87 };
88 # a finder that tells me what I want to know and lets me work
89 finder = {
90 AppleShowAllExtensions = true;
91 ShowPathbar = true;
92 FXEnableExtensionChangeWarning = false;
93 };
94 # Tab between form controls and F-row that behaves as F1-F12
95 NSGlobalDomain = {
96 AppleKeyboardUIMode = 3;
97 "com.apple.keyboard.fnState" = true;
98 };
99 };
100
101 # Enable Rosetta builder for x86_64 builds
102 nix-rosetta-builder = {
103 enable = true;
104 potentiallyInsecureExtraNixosModule = {
105 # Fix DNS resolution in the VM
106 networking.nameservers = [
107 "8.8.8.8"
108 "1.1.1.1"
109 ];
110 };
111 };
112
113 # Create /etc/zshrc that loads the nix-darwin environment.
114 programs.zsh.enable = true; # default shell on catalina
115 programs.zsh.shellInit = self.packages.${pkgs.system}.zsh.zshrc;
116 programs.zsh.promptInit = ""; # Disable default prompt
117 programs.zsh.interactiveShellInit = ''
118 export SSH_AUTH_SOCK=/Users/lassulus/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh
119 '';
120
121 # enable sudo touch
122 security.pam.services.sudo_local.touchIdAuth = true;
123
124 # Enable Touch ID in tmux sessions with pam_reattach
125 security.pam.services.sudo_local.text = lib.mkBefore ''
126 auth optional ${pkgs.pam-reattach}/lib/pam/pam_reattach.so ignore_ssh
127 '';
128
129 # disable natural scrolling
130 system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = false;
131 programs.direnv.enable = true;
132 programs.nix-index.enable = true;
133 programs.gnupg.agent = {
134 enable = true;
135 enableSSHSupport = true;
136 };
137
138 # Used for backwards compatibility, please read the changelog before changing.
139 # $ darwin-rebuild changelog
140 system.stateVersion = 6;
141
142 system.primaryUser = "lassulus";
143
144 services.openssh.enable = true;
145 users.users.lassulus.openssh.authorizedKeys.keys = [ self.keys.ssh ];
146 users.users.root.openssh.authorizedKeys.keys = [ self.keys.ssh ];
147
148 users.users.root.shell = pkgs.zsh;
149 users.users.root.uid = 0;
150 users.knownUsers = [ "root" ];
151}