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