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