blob: fa6c7fa70684d6c17cc7cb5c29f2a052e91b817e (
plain) (
blame)
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
137
|
# Default configuration settings for physical machines that I use.
{ lib, pkgs, config, depot, ... }:
{
options = with lib; {
tazjin.emacs = mkOption {
type = types.package;
default = depot.users.tazjin.emacs;
description = ''
Derivation with my Emacs package, with configuration included.
'';
};
};
config = {
# Install all the default software.
environment.systemPackages =
# programs from the depot
(with depot; [
config.tazjin.emacs
third_party.agenix.cli
tools.when
users.tazjin.chase-geese
users.tazjin.eaglemode
users.tazjin.screenLock
]) ++
# programs from nixpkgs
(with pkgs; [
(aspellWithDicts (d: [ d.ru ]))
amber
bat
btop
chez
config.tazjin.emacs.emacs # emacsclient
curl
ddcutil
delve
difftastic
direnv
dnsutils
# TODO(tazjin): work around ecdsa CVE
# c.f. https://github.com/NixOS/nixpkgs/pull/456881
# electrum
erlang
expect
fd
file
firefox
gdb
git
gnupg
go
gopls
gotools
gtk3 # for gtk-launch
htop
hyperfine
iftop
imagemagick
josh
jq
lieer
maim
man-pages
moreutils
mosh
msmtp
networkmanagerapplet
nix-prefetch-github
nmap
notmuch
openssh
openssl
pavucontrol
pinentry-all
pinentry-emacs
pulseaudio # for pactl
pwgen
quasselClient
radicle-node
rebar3
rink
ripgrep
rustup
screen
tig
tokei
tree
unzip
vlc
volumeicon
watchexec
whois
xclip
xsecurelock
zoxide
pciutils
usbutils
git-series
mergiraf
]);
# Run services & configure programs for all machines.
services.fwupd.enable = true;
# Disable the broken NetworkManager-wait-online.service
systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;
# Disable the thing that prints annoying warnings when trying to
# run manually patchelfed binaries
environment.stub-ld.enable = false;
# Enable yggdrasil network.
services.yggdrasil = {
enable = true;
persistentKeys = true;
settings.IfName = "ygg0";
};
programs = {
fish.enable = true;
mosh.enable = true;
ssh.startAgent = true;
mtr.enable = true;
};
# Automatically collect garbage from the Nix store.
services.depot.automatic-gc = {
enable = true;
interval = "1 hour";
diskThreshold = 16; # GiB
maxFreed = 50; # GiB
preserveGenerations = "14d";
};
};
}
|