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