]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
nmap: install
[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; 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.nmap
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.cachix
242 pkgs.exa
243 pkgs.git-chglog
244 pkgs.git-crypt
245 pkgs.git-quick-stats
246 pkgs.gnumake
247 pkgs.graphviz
248 pkgs.hledger
249 pkgs.hunspell
250 pkgs.hunspellDicts.fr-moderne
251 pkgs.jc
252 pkgs.jq
253 pkgs.libfaketime
254 pkgs.libidn
255 pkgs.libxml2.bin
256 pkgs.mailutils
257 pkgs.neofetch
258 pkgs.neomutt
259 pkgs.nix-prefetch-git
260 pkgs.nixpkgs-review
261 pkgs.opusTools
262 pkgs.p7zip
263 pkgs.pastebinit
264 pkgs.patchelf
265 pkgs.picocom
266 pkgs.qprint
267 pkgs.reuse
268 pkgs.shellcheck
269 pkgs.sipcalc
270 pkgs.socat
271 pkgs.sqlite
272 pkgs.tig
273 pkgs.ubootTools
274 pkgs.unar
275 pkgs.unzip
276 pkgs.vbetool
277 pkgs.wgetpaste
278 pkgs.xmlstarlet
279 pkgs.xsel
280 pkgs.yubikey-personalization
281 ];
282 }