]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
home-manager: remove option host.base
[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 [ "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.cachix
186 pkgs.cryptsetup
187 pkgs.curl
188 pkgs.dstat
189 pkgs.e2fsprogs
190 pkgs.ethtool
191 pkgs.exa
192 pkgs.file
193 pkgs.hwinfo
194 pkgs.knot-dns
195 pkgs.ldns
196 pkgs.lf
197 pkgs.lm_sensors
198 pkgs.lsof
199 pkgs.lsscsi
200 pkgs.miniupnpc
201 pkgs.mosh
202 pkgs.ncdu
203 pkgs.nmon
204 pkgs.nnn
205 pkgs.openssl
206 pkgs.parted
207 pkgs.pass
208 pkgs.pciutils
209 pkgs.powertop
210 pkgs.procps
211 pkgs.pv
212 pkgs.rdfind
213 pkgs.smartmontools
214 pkgs.sshfs
215 pkgs.strace
216 pkgs.stress-ng
217 pkgs.tcpdump
218 pkgs.tree
219 pkgs.usbutils
220 pkgs.utillinux
221 pkgs.wget
222 pkgs.which
223 pkgs.xdg_utils
224 ] ++ lib.optionals config.host.developer [
225 #pkgs.dracut not yet packaged
226 #pkgs.git-remote-gpg
227 #pkgs.haskell.packages.ghc865.zerobin
228 #pkgs.i7z
229 #pkgs.ipfs
230 #pkgs.linuxPackages.perf
231 #pkgs.meli
232 #pkgs.ncurses
233 #pkgs.profanity
234 #pkgs.ripgrep
235 #pkgs.sdate
236 pkgs.aspell
237 pkgs.aspellDicts.fr
238 pkgs.bc
239 pkgs.binutils
240 pkgs.binwalk
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 }