blob: e7fbb7f9cef065ad3ac89e4451725f4372f42f4e (
plain)
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
|
{ config, pkgs, ... }:
{
imports = [
./private/default.nix
./modules/programs/accounting.nix
./modules/programs/shell.nix
];
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
unstable = import <nixpkgs-unstable> {
config = config.nixpkgs.config;
};
};
};
networking = {
hostName = "trillian";
knownNetworkServices = [ "Wi-Fi" "USB 10/100/1000 LAN" ];
dns = [
"::1"
"127.0.0.1"
];
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs;
[
mosh
aspell
aspellDicts.en
darwin-zsh-completions
];
# 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";
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
services.nix-daemon.enableSocketListener = true;
# nix.package = pkgs.nix;
services.activate-system.enable = true;
# programs.nix-index.enable = true;
programs.vim = {
enable = true;
enableSensible = true;
};
programs.zsh.enable = true;
programs.zsh.enableBashCompletion = true;
environment.variables.LANG = "en_GB.UTF-8";
programs.gnupg = {
agent = {
enable = true;
enableSSHSupport = false;
};
};
nix.gc = {
automatic = true;
options = "--max-freed $((25 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | awk '{ print $4 }')))";
};
nix.daemonNiceLevel = 10;
nix.daemonIONice = true;
nixpkgs.overlays = [
(self: super: {
darwin-zsh-completions = super.runCommandNoCC "darwin-zsh-completions-0.0.0"
{ preferLocalBuild = true; }
''
mkdir -p $out/share/zsh/site-functions
cat <<-'EOF' > $out/share/zsh/site-functions/_darwin-rebuild
#compdef darwin-rebuild
#autoload
_nix-common-options
local -a _1st_arguments
_1st_arguments=(
'switch:Build, activate, and update the current generation'\
'build:Build without activating or updating the current generation'\
'check:Build and run the activation sanity checks'\
'changelog:Show most recent entries in the changelog'\
)
_arguments \
'--list-generations[Print a list of all generations in the active profile]'\
'--rollback[Roll back to the previous configuration]'\
{--switch-generation,-G}'[Activate specified generation]'\
'(--profile-name -p)'{--profile-name,-p}'[Profile to use to track current and previous system configurations]:Profile:_nix_profiles'\
'1:: :->subcmds' && return 0
case $state in
subcmds)
_describe -t commands 'darwin-rebuild subcommands' _1st_arguments
;;
esac
EOF
'';
})
];
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
# You should generally set this to the total number of logical cores in your system.
# $ sysctl -n hw.ncpu
nix.maxJobs = 4;
nix.buildCores = 2;
}
# vim: sw=2 sts=2 expandtab autoindent smarttab
|