htop: always overwrite config
[julm/julm-nix.git] / homes / julm.nix
index b9fd3579c563039a0d460f5ff26b2da5fd548ca8..ad96b6b0bfc075074b8d8390077962dc30cdb474 100644 (file)
 { pkgs, lib, config, hostName, ... }:
 {
-imports = [
-  ./programs.nix
-  ./options.nix
-  julm/mutt.nix
-  (import (julm/hosts + "/${hostName}.nix"))
-];
-programs.firefox = {
-  profiles =
-    let defaultProfile = {
-      settings = {
-        "browser.bookmarks.showMobileBookmarks" = true;
-        "browser.compactmode.show" = true;
-        "browser.search.isUS" = false;
-        "browser.search.region" = "FR";
-        "distribution.searchplugins.defaultLocale" = "fr-FR";
-        "general.useragent.locale" = "fr-FR";
-        "security.identityblock.show_extended_validation" = true;
-        "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
-      };
-      userChrome = builtins.readFile programs/firefox/userChrome.css;
-    }; in {
-      "rp4xy6ye.2021" = lib.mkMerge [defaultProfile {
-        id = 0;
-        name = "2021";
+  imports = [
+    ../home-manager/profiles/essential.nix
+    ../home-manager/profiles/vim.nix
+    ../home-manager/options.nix
+    julm/mutt.nix
+    (import (julm/hosts + "/${hostName}.nix"))
+  ];
+  programs.bash.shellAliases = {
+    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";
+  };
+  programs.browserpass.enable = config.programs.firefox.enable;
+  programs.firefox.profiles =
+    let
+      defaultProfile = {
         settings = {
-          "browser.startup.homepage" = "https://code.sourcephile.fr";
+          "browser.bookmarks.showMobileBookmarks" = true;
+          "browser.compactmode.show" = true;
+          "browser.search.isUS" = false;
+          "browser.search.region" = "FR";
+          "distribution.searchplugins.defaultLocale" = "fr-FR";
+          "dom.security.https_first" = true;
+          "dom.security.https_only_mode" = true;
+          "general.useragent.locale" = "fr-FR";
+          "privacy.globalprivacycontrol.enabled" = true;
+          "privacy.globalprivacycontrol.functionality.enabled" = true;
+          "security.identityblock.show_extended_validation" = true;
+          "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+          #"privacy.firstparty.isolate" = true;
         };
-      }];
-      "8y3d28fa.tor" = lib.mkMerge [defaultProfile {
-        id = 1;
-        name = "tor";
-        settings = {
-          "browser.startup.homepage" = "https://check.torproject.org";
+        userChrome = lib.readFile ../home-manager/profiles/firefox/userChrome.css;
+      };
+    in
+    {
+      "0yplujgj.2022" = lib.mkMerge [
+        defaultProfile
+        {
+          id = 0;
+          name = "2022";
+          settings = {
+            "browser.startup.homepage" = "https://democracynow.org";
+          };
+        }
+      ];
+      "8y3d28fa.tor" = lib.mkMerge [
+        defaultProfile
+        {
+          id = 1;
+          name = "tor";
+          settings = {
+            "browser.startup.homepage" = "https://check.torproject.org";
+            "privacy.firstparty.isolate" = true;
+          };
+        }
+      ];
+      "zqa1ck7d.calyx" = lib.mkMerge [
+        defaultProfile
+        {
+          id = 2;
+          name = "calyx";
+          settings = {
+            "browser.startup.homepage" = "https://icanhazip.com";
+            "privacy.firstparty.isolate" = true;
+          };
+        }
+      ];
+    };
+  home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
+    # julm@autogeree.net
+    trusted-key 0xD15AF7F467E8299B
+    # julm@sourcephile.fr (2021-08-12)
+    trusted-key 0xA58CD81C3863926F
+  '';
+  services.gpg-agent.sshKeys = [
+    # julm@autogeree.net
+    "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
+    # julm@sourcephile.fr (2021-08-12)
+    "3D94D14514F1EA2B6D62F1275D888897B082415D"
+    # Ed25519 key added on: 2021-10-31 06:48:49
+    # Fingerprints:  MD5:fe:fe:81:79:d8:7f:e4:ff:64:ac:f3:1c:bd:65:24:3a
+    #                SHA256:bCfwfC8MQTjm6c1HcMLtzvGpnWRdqLwe/bvbh2jsNaA
+    "F6CCA60CF05FADAE911CFBEC0BCDED22F40A19FD"
+    # Radicle key added on 2024-05-21 23:24:10
+    # Fingerprints:  SHA256:yhSIWvGFqN0oM/oTE1hMhEdhlSSEeCMcp/g/3TdNKYY
+    "1D6AF2BF857201D98413475AE022F8A4CFC34BF0"
+  ];
+  programs.irssi.extraConfig = lib.readFile julm/irssi/irssi.conf;
+  xdg.configFile."doom/config.el".text = lib.readFile julm/emacs/config.el;
+  home.file.".irssi/passwd" = lib.mkIf config.programs.irssi.enable {
+    text = ''
+      FreeNode   : ${pkgs.pass}/bin/pass freenode.net/irc/julm
+      GeekNode   : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
+      IndyMedia  : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
+      Libera     : ${pkgs.pass}/bin/pass libera.chat/irc/julm
+      OFTC       : ${pkgs.pass}/bin/pass oftc.net/irc/julm
+      ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
+    '';
+  };
+  programs.ssh.matchBlocks =
+    {
+      "aubergine.sp" = {
+        #compression = true; # Helps to get a better framerate with forwardX11
+        forwardAgent = true;
+        forwardX11 = true;
+        forwardX11Trusted = true;
+        serverAliveInterval = 15;
+        extraOptions = {
+          Ciphers = "aes128-gcm@openssh.com";
         };
-      }];
+      };
+      "blackberry.sp" = {
+        user = "julm";
+      };
+      "courge.sp" = {
+        user = "mo";
+      };
+      "patate.sp" = {
+        user = "sevy";
+      };
+    } //
+    lib.genAttrs [ "lan.losurdo.sourcephile.fr" "losurdo.sp" ]
+      (_: {
+        compression = true; # Helps to get a better framerate with forwardX11
+        forwardX11 = true;
+        forwardX11Trusted = true;
+        serverAliveInterval = 15;
+      });
+  programs.git = {
+    userName = "Julien Moutinho";
+    userEmail = "julm@sourcephile.fr";
+    signing.key = "0x4FE467034C11017B429BAC53A58CD81C3863926F";
+    signing.signByDefault = false;
+    extraConfig = {
+      sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
+      sendemail.smtpServer = "mail.sourcephile.fr";
+      sendemail.smtpServerPort = "465";
+      sendemail.smtpUser = "julm@sourcephile.fr";
     };
-};
-home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
-  # julm@autogeree.net
-  trusted-key 0xD15AF7F467E8299B
-  # julm@sourcephile.fr (2021-08-12)
-  trusted-key 0xA58CD81C3863926F
-'';
-services.gpg-agent.sshKeys = [
-  # julm@autogeree.net
-  "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
-  # julm@sourcephile.fr (2021-08-12)
-  "3D94D14514F1EA2B6D62F1275D888897B082415D"
-  # Ed25519 key added on: 2021-10-31 06:48:49
-  # Fingerprints:  MD5:fe:fe:81:79:d8:7f:e4:ff:64:ac:f3:1c:bd:65:24:3a
-  #                SHA256:bCfwfC8MQTjm6c1HcMLtzvGpnWRdqLwe/bvbh2jsNaA
-  "F6CCA60CF05FADAE911CFBEC0BCDED22F40A19FD"
-];
-programs.irssi.extraConfig = builtins.readFile julm/irssi/config;
-home.file.".irssi/passwd".text = ''
-  FreeNode   : ${pkgs.pass}/bin/pass freenode.net/irc/julm
-  GeekNode   : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
-  IndyMedia  : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
-  Libera     : ${pkgs.pass}/bin/pass libera.chat/irc/julm
-  OFTC       : ${pkgs.pass}/bin/pass oftc.net/irc/julm
-  ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
-'';
-programs.ssh.matchBlocks = lib.genAttrs ["lan.losurdo.sourcephile.fr" "losurdo.wg"] (_: {
-  compression = true; # Helps to get a better framerate with forwardX11
-  forwardX11 = true;
-  forwardX11Trusted = true;
-  serverAliveInterval = 15;
-});
-programs.git = {
-  userName = "Julien Moutinho";
-  userEmail = "julm@sourcephile.fr";
-  signing.key = "0x7182433A39582282929B2A222E3618DD0D087650";
-  signing.signByDefault = false;
-  package =
-    if lib.elem hostName [ "losurdo" "oignon" ]
-    then pkgs.gitFull
-    else pkgs.gitMinimal;
-  extraConfig = {
-    sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
-    sendemail.smtpServer = "mail.sourcephile.fr";
-    sendemail.smtpServerPort = "465";
-    sendemail.smtpUser = "julm@sourcephile.fr";
   };
-};
-home.stateVersion = "20.09";
-home.sessionPath = [ "${config.home.homeDirectory}/bin" ];
-home.sessionVariables = {
-  EDITOR = "vim";
-  LANG = "fr_FR.UTF-8";
-  LESS = "-FRSX";
-  LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
-  MANPAGER = "less";
-};
 }