1 { pkgs, lib, config, hostName, ... }:
 
   7   (import (julm/hosts + "/${hostName}.nix"))
 
   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 = true;
 
  15 programs.bash.enable = true;
 
  16 #programs.broot.enable = true;
 
  18   enable = config.host.desktop;
 
  20     let defaultProfile = {
 
  22         "browser.bookmarks.showMobileBookmarks" = true;
 
  23         "browser.search.isUS" = false;
 
  24         "browser.search.region" = "FR";
 
  25         "distribution.searchplugins.defaultLocale" = "fr-FR";
 
  26         "general.useragent.locale" = "fr-FR";
 
  27         "security.identityblock.show_extended_validation" = true;
 
  28         "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
 
  30       userChrome = builtins.readFile softwares/firefox/userChrome.css;
 
  32       "rp4xy6ye.2021" = lib.mkMerge [defaultProfile {
 
  36           "browser.startup.homepage" = "https://code.sourcephile.fr";
 
  39       "8y3d28fa.tor" = lib.mkMerge [defaultProfile {
 
  43           "browser.startup.homepage" = "https://check.torproject.org";
 
  48 programs.gpg.enable = true;
 
  49 home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
 
  51   trusted-key 0xD15AF7F467E8299B
 
  52   # julm@sourcephile.fr (2021-08-12)
 
  53   trusted-key 0xA58CD81C3863926F
 
  55 services.gpg-agent.enable = true;
 
  56 services.gpg-agent.sshKeys = [
 
  58   "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
 
  59   # julm@sourcephile.fr (2021-08-12)
 
  60   "3D94D14514F1EA2B6D62F1275D888897B082415D"
 
  62 programs.direnv.enable = true;
 
  63 programs.htop.enable = true;
 
  64 programs.irssi.enable = hostName == "mermet" || hostName == "losurdo";
 
  65 programs.irssi.extraConfig = builtins.readFile julm/irssi/config;
 
  66 home.file.".irssi/passwd".text = ''
 
  67   FreeNode   : ${pkgs.pass}/bin/pass freenode.net/irc/julm
 
  68   GeekNode   : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
 
  69   IndyMedia  : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
 
  70   Libera     : ${pkgs.pass}/bin/pass libera.chat/irc/julm
 
  71   OFTC       : ${pkgs.pass}/bin/pass oftc.net/irc/julm
 
  72   ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
 
  74 programs.man.enable = true;
 
  75 #programs.neovim.enable = true;
 
  76 programs.ssh.enable = true;
 
  77 programs.ssh.matchBlocks."lan.losurdo.sourcephile.fr" = {
 
  78   compression = true; # Helps to get a better framerate with forwardX11
 
  80   forwardX11Trusted = true;
 
  81   serverAliveInterval = 15;
 
  83 programs.tmux.enable = true;
 
  84 programs.vim.enable = true;
 
  85 manual.manpages.enable = true;
 
  88   userName = "Julien Moutinho";
 
  89   userEmail = "julm@sourcephile.fr";
 
  90   signing.key = "0x7182433A39582282929B2A222E3618DD0D087650";
 
  91   signing.signByDefault = false;
 
  93     if lib.elem hostName [ "losurdo" "oignon" ]
 
  97     sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
 
  98     sendemail.smtpServer = "mail.sourcephile.fr";
 
  99     sendemail.smtpServerPort = "465";
 
 100     sendemail.smtpUser = "julm@sourcephile.fr";
 
 103 services.redshift.enable = lib.mkDefault config.host.desktop;
 
 104 xsession.enable = lib.mkDefault config.host.desktop;
 
 105 xsession.windowManager.xmonad.enable = lib.mkDefault config.host.desktop;
 
 106 home.stateVersion = "20.09";
 
 107 home.sessionPath = [ "${config.home.homeDirectory}/bin" ];
 
 108 home.sessionVariables = {
 
 110   LANG = "fr_FR.UTF-8";
 
 112   LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
 
 115 # Warning: triggers a rebuild of mumble
 
 116 #nixpkgs.config.mumble.speechdSupport = lib.mkDefault config.host.desktop;
 
 132   #pkgs.haskell.packages.ghc865.zerobin
 
 144   #pkgs.linuxPackages.cpupower
 
 145   #pkgs.linuxPackages.perf
 
 149   pkgs.mastodon-archive
 
 183   ] ++ lib.optionals config.host.desktop [
 
 197   pkgs.hicolor-icon-theme
 
 204   pkgs.networkmanager-openvpn
 
 205   pkgs.networkmanagerapplet
 
 210   pkgs.transmission-gtk
 
 215   pkgs.yubikey-personalization-gui
 
 216   ] ++ lib.optionals config.host.media [
 
 225   ] ++ lib.optionals config.host.admin [
 
 244   ] ++ lib.optionals config.host.developer [
 
 249   #pkgs.dracut not yet packaged
 
 256   pkgs.hunspellDicts.fr-moderne
 
 259   pkgs.nix-prefetch-git
 
 272   pkgs.yubikey-personalization