]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
nix: cleanup by using autoOptimiseStore
[julm/julm-nix.git] / homes / julm.nix
1 { pkgs, lib, config, ... }:
2 {
3 imports = [
4 ./softwares.nix
5 ./options.nix
6 julm/mutt.nix
7 julm/hosts/oignon.nix
8 julm/hosts/losurdo.nix
9 ];
10 host.desktop = lib.elem config.host.name [ /*"losurdo"*/ "oignon" ];
11 host.server = lib.elem config.host.name [ "losurdo" "mermet" ];
12 programs.bat.enable = true;
13 programs.bash.enable = true;
14 #programs.broot.enable = true;
15 programs.doom-emacs = {
16 enable = true;
17 doomPrivateDir = julm/emacs;
18 };
19 services.emacs = {
20 enable = false;
21 package = config.programs.emacs.package;
22 };
23 programs.firefox = {
24 enable = config.host.desktop;
25 profiles =
26 let defaultProfile = {
27 settings = {
28 "browser.bookmarks.showMobileBookmarks" = true;
29 "browser.search.isUS" = false;
30 "browser.search.region" = "FR";
31 "distribution.searchplugins.defaultLocale" = "fr-FR";
32 "general.useragent.locale" = "fr-FR";
33 "security.identityblock.show_extended_validation" = true;
34 "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
35 };
36 userChrome = builtins.readFile softwares/firefox/userChrome.css;
37 }; in {
38 "rp4xy6ye.2021" = lib.mkMerge [defaultProfile {
39 id = 0;
40 name = "2021";
41 settings = {
42 "browser.startup.homepage" = "https://code.sourcephile.fr";
43 };
44 }];
45 "8y3d28fa.tor" = lib.mkMerge [defaultProfile {
46 id = 1;
47 name = "tor";
48 settings = {
49 "browser.startup.homepage" = "https://check.torproject.org";
50 };
51 }];
52 };
53 };
54 programs.gpg.enable = true;
55 home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
56 # julm@autogeree.net
57 trusted-key 0xD15AF7F467E8299B
58 # julm@sourcephile.fr
59 trusted-key 0x2E3618DD0D087650
60 '';
61 services.gpg-agent.enable = true;
62 services.gpg-agent.sshKeys = [
63 # julm@autogeree.net
64 "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
65 # julm@sourcephile.fr
66 "123BF80054E9E9CE2BD7B899F07207665392B727"
67 ];
68 programs.direnv.enable = true;
69 programs.htop.enable = true;
70 programs.irssi.enable = config.host.name == "mermet" || config.host.name == "losurdo";
71 programs.irssi.extraConfig = builtins.readFile julm/irssi/config;
72 home.file.".irssi/passwd".text = ''
73 FreeNode : ${pkgs.pass}/bin/pass freenode.net/irc/julm
74 GeekNode : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
75 IndyMedia : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
76 Libera : ${pkgs.pass}/bin/pass libera.chat/irc/julm
77 OFTC : ${pkgs.pass}/bin/pass oftc.net/irc/julm
78 ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
79 '';
80 programs.man.enable = true;
81 #programs.neovim.enable = true;
82 programs.ssh.enable = true;
83 programs.ssh.matchBlocks."lan.losurdo.sourcephile.fr" = {
84 compression = true; # Helps to get a better framerate with forwardX11
85 forwardX11 = true;
86 forwardX11Trusted = true;
87 serverAliveInterval = 15;
88 };
89 programs.tmux.enable = true;
90 programs.vim.enable = true;
91 manual.manpages.enable = false;
92 programs.git = {
93 enable = true;
94 userName = "Julien Moutinho";
95 userEmail = "julm@sourcephile.fr";
96 signing.key = "0x7182433A39582282929B2A222E3618DD0D087650";
97 signing.signByDefault = false;
98 package =
99 if lib.elem config.host.name [ "losurdo" "oignon" ]
100 then pkgs.gitFull
101 else pkgs.gitMinimal;
102 extraConfig = {
103 sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
104 sendemail.smtpServer = "mail.sourcephile.fr";
105 sendemail.smtpServerPort = "465";
106 sendemail.smtpUser = "julm@sourcephile.fr";
107 };
108 };
109 services.redshift.enable = lib.mkDefault config.host.desktop;
110 xsession.enable = lib.mkDefault config.host.desktop;
111 xsession.windowManager.xmonad.enable = lib.mkDefault config.host.desktop;
112 home.stateVersion = "20.09";
113 home.sessionPath = [ "${config.home.homeDirectory}/bin" ];
114 home.sessionVariables = {
115 EDITOR = "vim";
116 LANG = "fr_FR.UTF-8";
117 LESS = "-FRSX";
118 LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
119 MANPAGER = "less";
120 };
121 # Warning: triggers a rebuild of mumble
122 #nixpkgs.config.mumble.speechdSupport = lib.mkDefault config.host.desktop;
123 home.packages = [
124 pkgs.acpi
125 #pkgs.amfora
126 pkgs.aria2
127 pkgs.aspell
128 pkgs.aspellDicts.fr
129 pkgs.bc
130 pkgs.binutils
131 pkgs.bison
132 pkgs.bmon
133 #pkgs.browsh
134 #pkgs.cabal2nix
135 pkgs.cachix
136 pkgs.compsize
137 pkgs.convmv
138 pkgs.coreutils
139 pkgs.croc
140 pkgs.cryptsetup
141 pkgs.curl
142 #pkgs.dnsutils
143 pkgs.dstat
144 pkgs.e2fsprogs
145 pkgs.ethtool
146 pkgs.exa
147 pkgs.ffmpeg
148 pkgs.file
149 pkgs.flex
150 pkgs.gcc
151 pkgs.git-crypt
152 pkgs.git-quick-stats
153 #pkgs.git-remote-gpg
154 pkgs.glib # gio
155 #pkgs.go-mtpfs
156 pkgs.gnumake
157 pkgs.gvfs
158 #pkgs.haskell.packages.ghc865.zerobin
159 pkgs.hledger
160 pkgs.home-manager
161 pkgs.htop
162 pkgs.hunspell
163 pkgs.hunspellDicts.fr-moderne
164 pkgs.hwinfo
165 pkgs.imagemagick
166 pkgs.inetutils
167 pkgs.ipfs
168 pkgs.jq
169 pkgs.knot-dns
170 pkgs.ldns
171 pkgs.less
172 pkgs.lftp
173 pkgs.libfaketime
174 pkgs.libidn
175 pkgs.libxml2.bin
176 #pkgs.linuxPackages.cpupower
177 #pkgs.linuxPackages.perf
178 pkgs.lm_sensors
179 pkgs.lsof
180 pkgs.lsscsi
181 #pkgs.meli
182 pkgs.miniupnpc
183 pkgs.mosh
184 pkgs.ncdu
185 pkgs.ncurses
186 pkgs.neofetch
187 pkgs.nix-prefetch-git
188 pkgs.nixpkgs-review
189 pkgs.nmon
190 pkgs.ntfs3g
191 #pkgs.onionshare
192 pkgs.openssl
193 pkgs.opusTools
194 pkgs.p7zip
195 pkgs.parted
196 pkgs.pass
197 pkgs.pastebinit
198 pkgs.patchelf
199 pkgs.pciutils
200 pkgs.podl
201 pkgs.poppler_utils
202 pkgs.powertop
203 pkgs.procps
204 #pkgs.profanity
205 pkgs.pv
206 pkgs.qprint
207 pkgs.ranger
208 pkgs.rdfind
209 pkgs.ripgrep
210 pkgs.sanoid
211 pkgs.shellcheck
212 pkgs.sipcalc
213 pkgs.smartmontools
214 pkgs.socat
215 pkgs.sqlite
216 pkgs.sshfs
217 pkgs.stig
218 pkgs.strace
219 pkgs.stress
220 pkgs.sudo
221 pkgs.tcpdump
222 pkgs.thttpd
223 pkgs.tig
224 pkgs.tree
225 pkgs.unzip
226 pkgs.usbutils
227 pkgs.utillinux
228 pkgs.vbetool
229 pkgs.weechat
230 pkgs.wget
231 pkgs.wgetpaste
232 pkgs.which
233 pkgs.xdg_utils
234 pkgs.xmlstarlet
235 pkgs.xsel
236 pkgs.youtube-dl
237 pkgs.yubikey-personalization
238 pkgs.zfs
239 ] ++ lib.optionals config.host.desktop [
240 pkgs.amule
241 #pkgs.calibre
242 #pkgs.chromium
243 pkgs.dino
244 pkgs.djview
245 pkgs.dmenu
246 pkgs.evince
247 pkgs.freeciv_gtk
248 pkgs.gajim
249 pkgs.geeqie
250 pkgs.gimp
251 pkgs.glxinfo
252 pkgs.gparted
253 pkgs.graphviz
254 pkgs.hicolor-icon-theme
255 pkgs.keepass
256 pkgs.libdvdcss
257 pkgs.libreoffice
258 pkgs.liferea
259 pkgs.mplayer
260 pkgs.mpv
261 pkgs.mumble
262 pkgs.networkmanager-openvpn
263 pkgs.networkmanagerapplet
264 pkgs.nix-du
265 pkgs.pavucontrol
266 pkgs.thunderbird
267 pkgs.transmission-gtk
268 pkgs.vlc
269 pkgs.xclip
270 pkgs.xorg.xkill
271 pkgs.xsane
272 pkgs.yubikey-personalization-gui
273 ];
274 }