]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
nix: shell: install nixfmt-rfc-style
[julm/julm-nix.git] / homes / julm.nix
1 {
2 pkgs,
3 lib,
4 config,
5 hostName,
6 ...
7 }:
8 {
9 imports = [
10 ../home-manager/profiles/essential.nix
11 ../home-manager/profiles/vim.nix
12 ../home-manager/options.nix
13 julm/mutt.nix
14 (import (julm/hosts + "/${hostName}.nix"))
15 ];
16 programs.bash.shellAliases = {
17 firefox-calyx = "sudo systemd-run -P -p JoinsNamespaceOf=netns-calyx.service -p PrivateNetwork=true -p BindReadOnlyPaths=/etc/netns/calyx/resolv.conf:/etc/resolv.conf -E DISPLAY=$DISPLAY -p User=julm -E DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS -E LANG=$LANG -E LOCALE_ARCHIVE=$LOCALE_ARCHIVE -E PATH=$PATH -- firefox -P calyx";
18 };
19 programs.browserpass.enable = config.programs.firefox.enable;
20 programs.firefox.profiles =
21 let
22 defaultProfile = {
23 settings = {
24 "browser.bookmarks.showMobileBookmarks" = true;
25 "browser.compactmode.show" = true;
26 "browser.search.isUS" = false;
27 "browser.search.region" = "FR";
28 "distribution.searchplugins.defaultLocale" = "fr-FR";
29 "dom.security.https_first" = true;
30 "dom.security.https_only_mode" = true;
31 "general.useragent.locale" = "fr-FR";
32 "privacy.globalprivacycontrol.enabled" = true;
33 "privacy.globalprivacycontrol.functionality.enabled" = true;
34 "security.identityblock.show_extended_validation" = true;
35 "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
36 #"privacy.firstparty.isolate" = true;
37 };
38 userChrome = lib.readFile ../home-manager/profiles/firefox/userChrome.css;
39 };
40 in
41 {
42 "rD9bggx0.2025" = lib.mkMerge [
43 defaultProfile
44 {
45 id = 0;
46 name = "2025";
47 settings = {
48 "browser.startup.homepage" = "https://democracynow.org";
49 };
50 }
51 ];
52 "8y3d28fa.tor" = lib.mkMerge [
53 defaultProfile
54 {
55 id = 1;
56 name = "tor";
57 settings = {
58 "browser.startup.homepage" = "https://check.torproject.org";
59 "privacy.firstparty.isolate" = true;
60 };
61 }
62 ];
63 "zqa1ck7d.calyx" = lib.mkMerge [
64 defaultProfile
65 {
66 id = 2;
67 name = "calyx";
68 settings = {
69 "browser.startup.homepage" = "https://icanhazip.com";
70 "privacy.firstparty.isolate" = true;
71 };
72 }
73 ];
74 "0yplujgj.2022" = lib.mkMerge [
75 defaultProfile
76 {
77 id = 4;
78 name = "2022";
79 settings = {
80 "browser.startup.homepage" = "https://democracynow.org";
81 };
82 }
83 ];
84 };
85 home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
86 # julm@autogeree.net
87 trusted-key 0xD15AF7F467E8299B
88 # julm@sourcephile.fr (2021-08-12)
89 trusted-key 0xA58CD81C3863926F
90 '';
91 services.gpg-agent.sshKeys = [
92 # julm@autogeree.net
93 "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
94 # julm@sourcephile.fr (2021-08-12)
95 "3D94D14514F1EA2B6D62F1275D888897B082415D"
96 # julm@oignon
97 # Ed25519 key added on: 2021-10-31 06:48:49
98 # Fingerprints: MD5:fe:fe:81:79:d8:7f:e4:ff:64:ac:f3:1c:bd:65:24:3a
99 # SHA256:bCfwfC8MQTjm6c1HcMLtzvGpnWRdqLwe/bvbh2jsNaA
100 "F6CCA60CF05FADAE911CFBEC0BCDED22F40A19FD"
101 # Radicle key added on 2024-05-21 23:24:10
102 # Fingerprints: SHA256:yhSIWvGFqN0oM/oTE1hMhEdhlSSEeCMcp/g/3TdNKYY
103 "1D6AF2BF857201D98413475AE022F8A4CFC34BF0"
104 # julm@pumpkin
105 # Ed25519 key added on: 2025-01-08 21:16:22
106 # Fingerprints: MD5:f5:d0:fe:37:c3:54:47:cf:17:ec:9b:f5:15:3e:b3:15
107 # SHA256:EDzxI3g1w+iPf1WUovsbuZckU/tseEGVdXmkGYcvhas
108 "C399CC38D6AACFF9FD1BF608AFC4D117A46331D0"
109 ];
110 programs.irssi.extraConfig = lib.readFile julm/irssi/irssi.conf;
111 xdg.configFile."doom/config.el".text = lib.readFile julm/emacs/config.el;
112 home.file.".irssi/passwd" = lib.mkIf config.programs.irssi.enable {
113 text = ''
114 FreeNode : ${pkgs.pass}/bin/pass freenode.net/irc/julm
115 GeekNode : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
116 IndyMedia : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
117 Libera : ${pkgs.pass}/bin/pass libera.chat/irc/julm
118 OFTC : ${pkgs.pass}/bin/pass oftc.net/irc/julm
119 ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
120 '';
121 };
122 programs.ssh.matchBlocks =
123 {
124 "aubergine.sp" = {
125 #compression = true; # Helps to get a better framerate with forwardX11
126 forwardAgent = true;
127 forwardX11 = true;
128 forwardX11Trusted = true;
129 serverAliveInterval = 15;
130 extraOptions = {
131 Ciphers = "aes128-gcm@openssh.com";
132 };
133 };
134 "blackberry.sp" = {
135 user = "julm";
136 };
137 "courge.sp" = {
138 user = "mo";
139 };
140 "patate.sp" = {
141 user = "sevy";
142 };
143 }
144 // lib.genAttrs [ "lan.losurdo.sourcephile.fr" "losurdo.sp" ] (_: {
145 compression = true; # Helps to get a better framerate with forwardX11
146 forwardX11 = true;
147 forwardX11Trusted = true;
148 serverAliveInterval = 15;
149 });
150 programs.git = {
151 userName = "Julien Moutinho";
152 userEmail = "julm@sourcephile.fr";
153 signing.key = "0x4FE467034C11017B429BAC53A58CD81C3863926F";
154 signing.signByDefault = false;
155 extraConfig = {
156 sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
157 sendemail.smtpServer = "mail.sourcephile.fr";
158 sendemail.smtpServerPort = "465";
159 sendemail.smtpUser = "julm@sourcephile.fr";
160 };
161 };
162 }