{ pkgs, lib, config, hostName, ... }: { imports = [ ./softwares.nix ./options.nix julm/mutt.nix (import (julm/hosts + "/${hostName}.nix")) ]; host.desktop = lib.elem hostName [ /*"losurdo"*/ "oignon" ]; host.server = lib.elem hostName [ "losurdo" "mermet" ]; host.admin = lib.elem hostName [ "carotte" "losurdo" "mermet" "oignon" ]; host.developer = lib.elem hostName [ "losurdo" "oignon" ]; host.media = lib.elem hostName [ "losurdo" "oignon" ]; programs.bat.enable = with config.host; admin || developer; programs.bash.enable = true; #programs.broot.enable = true; programs.doom-emacs.enable = config.host.developer; programs.firefox = { enable = config.host.desktop; 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 softwares/firefox/userChrome.css; }; in { "rp4xy6ye.2021" = lib.mkMerge [defaultProfile { id = 0; name = "2021"; settings = { "browser.startup.homepage" = "https://code.sourcephile.fr"; }; }]; "8y3d28fa.tor" = lib.mkMerge [defaultProfile { id = 1; name = "tor"; settings = { "browser.startup.homepage" = "https://check.torproject.org"; }; }]; }; }; programs.gpg.enable = with config.host; developer; 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.enable = config.programs.gpg.enable; services.gpg-agent.sshKeys = [ # julm@autogeree.net "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2" # julm@sourcephile.fr (2021-08-12) "3D94D14514F1EA2B6D62F1275D888897B082415D" ]; programs.direnv.enable = config.host.developer; programs.htop.enable = config.host.admin; programs.irssi.enable = hostName == "mermet" || hostName == "losurdo"; 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.man.enable = config.host.developer; programs.neovim.enable = config.host.developer; programs.ssh.enable = config.host.admin; programs.ssh.matchBlocks."lan.losurdo.sourcephile.fr" = { compression = true; # Helps to get a better framerate with forwardX11 forwardX11 = true; forwardX11Trusted = true; serverAliveInterval = 15; }; programs.tmux.enable = with config.host; admin || developer; programs.vim.enable = with config.host; developer; manual.manpages.enable = config.host.developer; programs.git = { enable = with config.host; admin || developer; 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"; }; }; services.redshift.enable = lib.mkDefault config.host.desktop; xsession.enable = lib.mkDefault config.host.desktop; xsession.windowManager.xmonad.enable = lib.mkDefault config.host.desktop; 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"; }; # Warning: triggers a rebuild of mumble #nixpkgs.config.mumble.speechdSupport = lib.mkDefault config.host.desktop; home.packages = lib.optionals config.host.desktop [ #pkgs.chromium #pkgs.ristretto #pkgs.transmission-gtk #(pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium xdvi; }) (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium xdvi ucs; }) pkgs.amule pkgs.calibre pkgs.dino pkgs.djview pkgs.dmenu pkgs.evince pkgs.freeciv_gtk pkgs.gajim pkgs.geeqie pkgs.gimp pkgs.glxinfo pkgs.gparted pkgs.gpicview pkgs.hicolor-icon-theme pkgs.keepass pkgs.libdvdcss pkgs.libreoffice pkgs.liferea pkgs.mpv pkgs.mumble pkgs.networkmanager-openvpn pkgs.networkmanagerapplet pkgs.nix-du pkgs.pavucontrol pkgs.pdftk pkgs.poppler_utils pkgs.thunderbird pkgs.vlc pkgs.xclip pkgs.xorg.xkill pkgs.xsane pkgs.yubikey-personalization-gui ] ++ lib.optionals config.host.media [ #pkgs.amfora #pkgs.browsh #pkgs.glib # gio #pkgs.go-mtpfs #pkgs.gvfs #pkgs.onionshare pkgs.aria2 pkgs.convmv pkgs.croc pkgs.ffmpeg pkgs.gtk-pipe-viewer pkgs.imagemagick pkgs.lftp pkgs.mastodon-archive pkgs.mplayer pkgs.ntfs3g pkgs.podl pkgs.stig pkgs.yt-dlp ] ++ lib.optionals config.host.admin [ #pkgs.compsize #pkgs.dnsutils #pkgs.inetutils #pkgs.linuxPackages.cpupower #pkgs.ranger pkgs.acpi pkgs.bmon pkgs.cryptsetup pkgs.curl pkgs.dstat pkgs.e2fsprogs pkgs.ethtool pkgs.file pkgs.hwinfo pkgs.knot-dns pkgs.ldns pkgs.lf pkgs.lm_sensors pkgs.lsof pkgs.lsscsi pkgs.miniupnpc pkgs.mosh pkgs.ncdu pkgs.nmon pkgs.nnn pkgs.openssl pkgs.parted pkgs.pass pkgs.pciutils pkgs.powertop pkgs.procps pkgs.pv pkgs.rdfind pkgs.smartmontools pkgs.sshfs pkgs.strace pkgs.stress-ng pkgs.tcpdump pkgs.tree pkgs.usbutils pkgs.utillinux pkgs.wget pkgs.which pkgs.xdg_utils ] ++ lib.optionals config.host.developer [ #pkgs.dracut not yet packaged #pkgs.git-remote-gpg #pkgs.haskell.packages.ghc865.zerobin #pkgs.i7z #pkgs.ipfs #pkgs.linuxPackages.perf #pkgs.meli #pkgs.ncurses #pkgs.profanity #pkgs.ripgrep #pkgs.sdate pkgs.aspell pkgs.aspellDicts.fr pkgs.bc pkgs.binutils pkgs.binwalk pkgs.cachix pkgs.exa pkgs.git-chglog pkgs.git-crypt pkgs.git-quick-stats pkgs.gnumake pkgs.graphviz pkgs.hledger pkgs.hunspell pkgs.hunspellDicts.fr-moderne pkgs.jc pkgs.jq pkgs.libfaketime pkgs.libidn pkgs.libxml2.bin pkgs.mailutils pkgs.neofetch pkgs.neomutt pkgs.nix-prefetch-git pkgs.nixpkgs-review pkgs.opusTools pkgs.p7zip pkgs.pastebinit pkgs.patchelf pkgs.picocom pkgs.qprint pkgs.reuse pkgs.shellcheck pkgs.sipcalc pkgs.socat pkgs.sqlite pkgs.tig pkgs.ubootTools pkgs.unar pkgs.unzip pkgs.vbetool pkgs.wgetpaste pkgs.xmlstarlet pkgs.xsel pkgs.yubikey-personalization ]; }