forked from utdemir/dotfiles-nix
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhome.nix
252 lines (229 loc) · 4.24 KB
/
home.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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
{ config, pkgs, ... }:
{
imports = [
./home-private.nix
./nix/dotfiles.nix
./home/wm.nix
./home/git.nix
./home/qutebrowser.nix
./home/kitty.nix
./home/shell.nix
];
dotfiles = import ./user.nix;
home.packages = with pkgs; [
# WM
acpi
maim
# Apps
asciiquarium
chromium
deluge
gimp
libreoffice
meld
mplayer
pcmanfm
qemu
qemu_kvm
scrot
sxiv
tmate
xclip
xsel
zathura
inkscape
macchanger
gthumb
# services
awscli
google-cloud-sdk
gist
slack
spotify
whois
zoom-us
kubectl
element-desktop
# Fonts
hack-font
# CLI
ascii
asciinema
bashmount
cmatrix
cpufrequtils
cpulimit
curl
direnv
dnsutils
docker_compose
dos2unix
entr
(
pkgs.haskell.lib.justStaticExecutables
pkgs.haskellPackages.steeloverseer
)
fd
ffmpeg
file
findutils
fzf
gettext
ghostscript
gnupg
graphviz
hexedit
hexyl
htop
htop
imagemagick
iw
jq
ltrace
moreutils
mpv
mtr
multitail
ncdu
nload
nmap
openssl
pandoc
paperkey
pdftk
powerstat
powertop
pv
pwgen
ranger
ripgrep
rsync
sqlite
strace
tcpdump
tig
tmux
tokei
tree
units
unzip
up
watch
weechat
wget
yq
zbar
zip
rclone
cookiecutter
bandwhich
sshfs
aspell
aspellDicts.en
aspellDicts.en-computers
aspellDicts.en-science
(texlive.combine {
inherit (texlive) scheme-small;
})
(
callPackage ./nix/mk-scripts.nix
{ }
{
path = ./scripts;
postBuild = ''
wrapProgram "$out/bin/ergo" \
--prefix PATH ":" "${yad}/bin"
'';
}
)
jaro
(runCommand "jaro-xdg-open" { } ''
mkdir -p $out/bin
ln -s ${jaro}/bin/jaro $out/bin/xdg-open
'')
# password-store
(pass.withExtensions (ext: [
ext.pass-otp
(runCommand "pass-rotate" { } ''
install -vDm ugo=x \
${./scripts/pass-rotate} \
$out/lib/password-store/extensions/rotate.bash
'')
]))
# editors
vim
(kakoune.override {
configure = {
plugins = [ kakoune-surround kakoune-rainbow ];
};
})
# closure
leiningen
# haskell
stack
haskellPackages.cabal-install
(haskellPackages.ghcWithPackages (p: with p; [
aeson
cassava
lens
]))
(haskell.lib.justStaticExecutables haskellPackages.ghcid)
(haskell.lib.justStaticExecutables haskellPackages.ormolu)
# python
python37
python37Packages.virtualenv
# nix
nix-prefetch
patchelf
nix-top
nix-tree
niv
nixpkgs-fmt
(
haskell.lib.justStaticExecutables
(pkgs.haskellPackages.override {
overrides = se: su: {
servant-auth-server = haskell.lib.doJailbreak su.servant-auth-server;
};
}).cachix
)
];
programs.emacs = {
enable = true;
package = pkgs.emacsGcc;
extraPackages = (epkgs: [
epkgs.vterm
epkgs.use-package
]);
};
services.syncthing.enable = true;
services.gpg-agent = {
enable = true;
enableSshSupport = true;
sshKeys =
if config.dotfiles.gpgSshKeygrip != ""
then [ config.dotfiles.gpgSshKeygrip ]
else [ ];
extraConfig = ''
pinentry-program ${pkgs.pinentry-gtk2}/bin/pinentry
'';
};
manual.manpages.enable = true;
home.file.".config/kak/kakrc".source = ./dotfiles/kakrc;
home.file.".config/ranger/rc.conf".source = ./dotfiles/ranger/rc.conf;
home.file.".config/ranger/rifle.conf".source = ./dotfiles/ranger/rifle.conf;
home.file.".config/ranger/commands.py".source = ./dotfiles/ranger/commands.py;
home.file.".profile" = {
text = ''
export NIX_PATH=nixpkgs=${pkgs.path}
source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
export TMPDIR=/tmp
export TMP=$TMPDIR
source ${./dotfiles/profile}
'';
executable = true;
};
news.display = "silent";
# Force home-manager to use pinned nixpkgs
_module.args.pkgs = pkgs.lib.mkForce pkgs;
}