]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
neovim: configure, using ghostty and tmux
[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/profiles/nvim.nix
13 ../home-manager/options.nix
14 julm/mutt.nix
15 (import (julm/hosts + "/${hostName}.nix"))
16 ];
17 programs.bash.shellAliases = {
18 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";
19 };
20 programs.browserpass.enable = config.programs.firefox.enable;
21 programs.firefox.profiles =
22 let
23 defaultProfile = {
24 settings = {
25 "browser.bookmarks.showMobileBookmarks" = true;
26 "browser.compactmode.show" = true;
27 "browser.search.isUS" = false;
28 "browser.search.region" = "FR";
29 "distribution.searchplugins.defaultLocale" = "fr-FR";
30 "dom.security.https_first" = true;
31 "dom.security.https_only_mode" = true;
32 "general.useragent.locale" = "fr-FR";
33 "privacy.globalprivacycontrol.enabled" = true;
34 "privacy.globalprivacycontrol.functionality.enabled" = true;
35 "security.identityblock.show_extended_validation" = true;
36 "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
37 #"privacy.firstparty.isolate" = true;
38 };
39 userChrome = lib.readFile ../home-manager/profiles/firefox/userChrome.css;
40 };
41 in
42 {
43 "rvbxj7n5.2026" = lib.mkMerge [
44 defaultProfile
45 {
46 id = 0;
47 name = "2026";
48 settings = {
49 "browser.startup.homepage" = "https://democracynow.org";
50 };
51 }
52 ];
53 "rD9bggx0.2025" = lib.mkMerge [
54 defaultProfile
55 {
56 id = 1;
57 name = "2025";
58 settings = {
59 "browser.startup.homepage" = "https://democracynow.org";
60 };
61 }
62 ];
63 "8y3d28fa.tor" = lib.mkMerge [
64 defaultProfile
65 {
66 id = 2;
67 name = "tor";
68 settings = {
69 "browser.startup.homepage" = "https://check.torproject.org";
70 "privacy.firstparty.isolate" = true;
71 };
72 }
73 ];
74 "zqa1ck7d.calyx" = lib.mkMerge [
75 defaultProfile
76 {
77 id = 3;
78 name = "calyx";
79 settings = {
80 "browser.startup.homepage" = "https://icanhazip.com";
81 "privacy.firstparty.isolate" = true;
82 };
83 }
84 ];
85 "0yplujgj.2022" = lib.mkMerge [
86 defaultProfile
87 {
88 id = 4;
89 name = "2022";
90 settings = {
91 "browser.startup.homepage" = "https://democracynow.org";
92 };
93 }
94 ];
95 };
96 home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
97 # julm@autogeree.net
98 trusted-key 0xD15AF7F467E8299B
99 # julm@sourcephile.fr (2021-08-12)
100 trusted-key 0xA58CD81C3863926F
101 '';
102 # ExplanationNote: manage SSH keys imperatively for more flexibility
103 #services.gpg-agent.sshKeys = [ ];
104 programs.irssi.extraConfig = lib.readFile julm/irssi/irssi.conf;
105 xdg.configFile."doom/config.el".text = lib.readFile julm/emacs/config.el;
106 home.file.".irssi/passwd" = lib.mkIf config.programs.irssi.enable {
107 text = ''
108 FreeNode : ${pkgs.pass}/bin/pass freenode.net/irc/julm
109 GeekNode : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
110 IndyMedia : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
111 Libera : ${pkgs.pass}/bin/pass libera.chat/irc/julm
112 OFTC : ${pkgs.pass}/bin/pass oftc.net/irc/julm
113 ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
114 '';
115 };
116 programs.ssh.matchBlocks = {
117 "aubergine.sp" = {
118 #compression = true; # Helps to get a better framerate with forwardX11
119 forwardAgent = true;
120 forwardX11 = true;
121 forwardX11Trusted = true;
122 serverAliveInterval = 15;
123 extraOptions = {
124 Ciphers = "aes128-gcm@openssh.com";
125 };
126 };
127 "blackberry.sp" = {
128 user = "julm";
129 };
130 "courge.sp" = {
131 user = "mo";
132 };
133 "patate.sp" = {
134 user = "sevy";
135 };
136 }
137 // lib.genAttrs [ "lan.losurdo.sourcephile.fr" "losurdo.sp" ] (_: {
138 compression = true; # Helps to get a better framerate with forwardX11
139 forwardX11 = true;
140 forwardX11Trusted = true;
141 serverAliveInterval = 15;
142 });
143 programs.git = {
144 userName = "Julien Moutinho";
145 userEmail = "julm@sourcephile.fr";
146 signing.key = "0x4FE467034C11017B429BAC53A58CD81C3863926F";
147 signing.signByDefault = false;
148 extraConfig = {
149 sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
150 sendemail.smtpServer = "mail.sourcephile.fr";
151 sendemail.smtpServerPort = "465";
152 sendemail.smtpUser = "julm@sourcephile.fr";
153 };
154 };
155 }