-
Notifications
You must be signed in to change notification settings - Fork 2
/
packages.nix
162 lines (156 loc) · 2.51 KB
/
packages.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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
{ pkgs, config, lib, ... }:
with pkgs;
let
# Packages to always install.
common = [
acpi
aespipe
aria2
bash-completion
bat
bc
bind
borgbackup
brightnessctl
btop
btrfs-progs
cifs-utils
compsize
cryptsetup
curl
ddrescue
delta
diceware
dos2unix
efibootmgr
ethtool
exiftool
f2fs-tools
fd
file
git
gnupg
hdparm
hyperfine
iftop
iotop
iperf
iw
jc
jq
killall
libarchive
lm_sensors
lsof
lsscsi
lz4
man-pages
mediainfo
modemmanager
mosh
ncdu
neofetch
netcat-gnu
nethogs
nix-bash-completions
nix-index
nix-init
nix-top
nix-tree
nixpkgs-fmt
nixpkgs-review
nmap
nomacs
ntfs3g
onefetch
p7zip
pciutils
protonvpn-cli
pstree
pv
qrencode
ranger
ripgrep
rsync
screen
smartmontools
smem
sshfs
stress
sysstat
tigervnc
traceroute
tree
unzip
usbutils
vim
vmtouch
wget
which
whois
wol
youtube-dl
zip
zstd
]
++ (with config.boot.kernelPackages; [
cpupower
perf
])
++ lib.optionals (stdenv.targetPlatform.isx86) [
ffmpeg-full
haskellPackages.git-annex
shellcheck
]
++ lib.optionals (stdenv.targetPlatform.isAarch32) [
ffmpeg
];
# Packages to install if X is not enabled.
noX = [
emacs-nox # FIXME this needs to be handled in custom.emacs
rxvt-unicode-unwrapped.terminfo
];
# Packages to install if X is enabled.
x = [
anki
appimage-run
config.custom.emacs
direnv
discord
element-desktop
firefox-pgo
gimp
lxrandr
mlterm
mozlz4a
mpv
pavucontrol
pulseaudio # For pactl when pipewire is enabled
python3
signal-desktop
spotify
teamspeak_client
tor-browser-bundle-bin
virt-manager
vlc
write_stylus
xclip
xorg.xev
];
in
{
nixpkgs.config.allowUnfree = true; # :(
nixpkgs.config.packageOverrides = pkgs: {
unstable = import <nixos-unstable> {
config = config.nixpkgs.config; # propagate `allowUnfree`
};
stable = import <nixos-stable> {
config = config.nixpkgs.config; # propagate `allowUnfree`
};
};
# List of packages installed in system profile.
environment.systemPackages = lib.mkIf config.custom.withPackages (
# If the host config enables X, X packages are also imported
common ++ (if config.custom.desktop.enable then x else noX)
);
}