]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
julm: move cachix and exa to developer
[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.desktop = lib.elem hostName [ /*"losurdo"*/ "oignon" ];
10 host.server = lib.elem hostName [ "losurdo" "mermet" ];
11 host.admin = lib.elem hostName [ "carotte" "losurdo" "mermet" "oignon" ];
12 host.developer = lib.elem hostName [ "losurdo" "oignon" ];
13 host.media = lib.elem hostName [ "losurdo" "oignon" ];
14 programs.bat.enable = with config.host; admin || developer;
15 programs.bash.enable = true;
16 #programs.broot.enable = true;
17 programs.doom-emacs.enable = config.host.developer;
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 = with config.host; admin || developer;
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 = with config.host; admin || developer;
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.developer;
64 programs.htop.enable = config.host.admin;
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.developer;
76 programs.neovim.enable = config.host.developer;
77 programs.ssh.enable = config.host.admin;
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 = with config.host; admin || developer;
85 programs.vim.enable = with config.host; admin || developer;
86 manual.manpages.enable = config.host.developer;
87 programs.git = {
88 enable = with config.host; admin || developer;
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.desktop [
120 #pkgs.chromium
121 #pkgs.ristretto
122 #pkgs.transmission-gtk
123 #(pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium xdvi; })
124 (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium xdvi ucs; })
125 pkgs.amule
126 pkgs.calibre
127 pkgs.dino
128 pkgs.djview
129 pkgs.dmenu
130 pkgs.evince
131 pkgs.freeciv_gtk
132 pkgs.gajim
133 pkgs.geeqie
134 pkgs.gimp
135 pkgs.glxinfo
136 pkgs.gparted
137 pkgs.gpicview
138 pkgs.hicolor-icon-theme
139 pkgs.keepass
140 pkgs.libdvdcss
141 pkgs.libreoffice
142 pkgs.liferea
143 pkgs.mpv
144 pkgs.mumble
145 pkgs.networkmanager-openvpn
146 pkgs.networkmanagerapplet
147 pkgs.nix-du
148 pkgs.pavucontrol
149 pkgs.pdftk
150 pkgs.poppler_utils
151 pkgs.thunderbird
152 pkgs.vlc
153 pkgs.xclip
154 pkgs.xorg.xkill
155 pkgs.xsane
156 pkgs.yubikey-personalization-gui
157 ] ++ lib.optionals config.host.media [
158 #pkgs.amfora
159 #pkgs.browsh
160 #pkgs.glib # gio
161 #pkgs.go-mtpfs
162 #pkgs.gvfs
163 #pkgs.onionshare
164 pkgs.aria2
165 pkgs.convmv
166 pkgs.croc
167 pkgs.ffmpeg
168 pkgs.gtk-pipe-viewer
169 pkgs.imagemagick
170 pkgs.lftp
171 pkgs.mastodon-archive
172 pkgs.mplayer
173 pkgs.ntfs3g
174 pkgs.podl
175 pkgs.stig
176 pkgs.yt-dlp
177 ] ++ lib.optionals config.host.admin [
178 #pkgs.compsize
179 #pkgs.dnsutils
180 #pkgs.inetutils
181 #pkgs.linuxPackages.cpupower
182 #pkgs.ranger
183 pkgs.acpi
184 pkgs.bmon
185 pkgs.cryptsetup
186 pkgs.curl
187 pkgs.dstat
188 pkgs.e2fsprogs
189 pkgs.ethtool
190 pkgs.file
191 pkgs.hwinfo
192 pkgs.knot-dns
193 pkgs.ldns
194 pkgs.lf
195 pkgs.lm_sensors
196 pkgs.lsof
197 pkgs.lsscsi
198 pkgs.miniupnpc
199 pkgs.mosh
200 pkgs.ncdu
201 pkgs.nmon
202 pkgs.nnn
203 pkgs.openssl
204 pkgs.parted
205 pkgs.pass
206 pkgs.pciutils
207 pkgs.powertop
208 pkgs.procps
209 pkgs.pv
210 pkgs.rdfind
211 pkgs.smartmontools
212 pkgs.sshfs
213 pkgs.strace
214 pkgs.stress-ng
215 pkgs.tcpdump
216 pkgs.tree
217 pkgs.usbutils
218 pkgs.utillinux
219 pkgs.wget
220 pkgs.which
221 pkgs.xdg_utils
222 ] ++ lib.optionals config.host.developer [
223 #pkgs.dracut not yet packaged
224 #pkgs.git-remote-gpg
225 #pkgs.haskell.packages.ghc865.zerobin
226 #pkgs.i7z
227 #pkgs.ipfs
228 #pkgs.linuxPackages.perf
229 #pkgs.meli
230 #pkgs.ncurses
231 #pkgs.profanity
232 #pkgs.ripgrep
233 #pkgs.sdate
234 pkgs.aspell
235 pkgs.aspellDicts.fr
236 pkgs.bc
237 pkgs.binutils
238 pkgs.binwalk
239 pkgs.cachix
240 pkgs.exa
241 pkgs.git-chglog
242 pkgs.git-crypt
243 pkgs.git-quick-stats
244 pkgs.gnumake
245 pkgs.graphviz
246 pkgs.hledger
247 pkgs.hunspell
248 pkgs.hunspellDicts.fr-moderne
249 pkgs.jc
250 pkgs.jq
251 pkgs.libfaketime
252 pkgs.libidn
253 pkgs.libxml2.bin
254 pkgs.mailutils
255 pkgs.neofetch
256 pkgs.neomutt
257 pkgs.nix-prefetch-git
258 pkgs.nixpkgs-review
259 pkgs.opusTools
260 pkgs.p7zip
261 pkgs.pastebinit
262 pkgs.patchelf
263 pkgs.picocom
264 pkgs.qprint
265 pkgs.reuse
266 pkgs.shellcheck
267 pkgs.sipcalc
268 pkgs.socat
269 pkgs.sqlite
270 pkgs.tig
271 pkgs.ubootTools
272 pkgs.unar
273 pkgs.unzip
274 pkgs.vbetool
275 pkgs.wgetpaste
276 pkgs.xmlstarlet
277 pkgs.xsel
278 pkgs.yubikey-personalization
279 ];
280 }