-
Notifications
You must be signed in to change notification settings - Fork 0
/
darwin-configuration.nix
136 lines (120 loc) · 3.63 KB
/
darwin-configuration.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
{ nixpkgs, pkgs, lib, ... }:
{
environment.systemPackages = with pkgs; [
iterm2
];
# Configure /etc/shells to allow use of custom shell programs.
environment.shells = with pkgs; [ bashInteractive bashInteractive_5 ];
# via shasum -a 256 /etc/shells
environment.etc.shells.knownSha256Hashes = [
"9d5aa72f807091b481820d12e693093293ba33c73854909ad7b0fb192c2db193"
];
system.defaults = {
# NSGlobalDomain = {
# NSWindowShouldDragOnGesture = true;
# };
finder = {
AppleShowAllExtensions = true;
QuitMenuItem = true;
FXEnableExtensionChangeWarning = false;
CreateDesktop = false;
};
loginwindow = {
GuestEnabled = false;
};
};
# services = {
# postgresql = {
# enable = true;
# package = pkgs.postgresql;
# dataDir = "/usr/local/var/postgres";
# };
# };
fonts = {
packages = with pkgs; [
go-font
source-code-pro
];
};
networking.hostName = "lrewega-MacBook-Pro";
# Use a custom configuration.nix location.
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
# environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";
nix = {
package = pkgs.nixFlakes;
useDaemon = true;
optimise.automatic = true;
extraOptions = ''
experimental-features = nix-command flakes repl-flake
keep-derivations = true
keep-outputs = true
builders-use-substitutes = true
'';
settings = {
trusted-users = [
"root"
"@admin" # Ideally we use trust the store signatures instead.
];
bash-prompt-prefix = "(nix:$name)\\040";
max-jobs = "auto";
extra-nix-path = "nixpkgs=flake:nixpkgs";
extra-trusted-substituters = [
"https://cache.floxdev.com"
"https://cache.flox.dev"
];
extra-trusted-public-keys = [
"flox-store-public-0:8c/B+kjIaQ+BloCmNkRUKwaVPFWkriSAd0JJvuDu4F0=" # cache.floxdev.com
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" # cache.flox.dev
];
};
registry = {
# Expose the inputs to this very flake.
local.flake = nixpkgs;
# A rolling weekly unstable courtesy of detsys' flakehub
nixpkgs.to = {
type = "tarball";
url = "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1.0.tar.gz";
};
# Make regular nixpkgsaccessible.
nixpkgs-upstream = {
exact = false;
to = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
};
};
};
buildMachines = [
{
hostName = "nixos@orb";
system = "aarch64-linux";
supportedFeatures = ["nixos-test" "benchmark" "big-parallel" "kvm"];
protocol = "ssh-ng";
}
{
hostName = "nixos@orb";
system = "x86_64-linux";
supportedFeatures = ["nixos-test" "benchmark" "big-parallel" "kvm"];
protocol = "ssh-ng";
}
];
distributedBuilds = true;
};
# Enable derivations for non-free software.
nixpkgs.config = { allowUnfree = true; };
# Create /etc/bashrc that loads the nix-darwin environment.
programs.bash.enable = true;
# Address low ulimit defaults.
launchd.daemons."limit-maxfiles".command =
let
softLimit = 32768; # 2^15
hardLimit = 16777216; # 2^24
in
"launchctl limit maxfiles ${toString softLimit} ${toString hardLimit}";
users.users.lrewega.home = "/Users/lrewega";
users.users.root.home = "/var/root";
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
}