From dc62c06be2c058cb4daebe8a129799ae62ab0612 Mon Sep 17 00:00:00 2001
From: Julien Moutinho <julm@sourcephile.fr>
Date: Sun, 14 Feb 2021 09:36:32 +0100
Subject: [PATCH] avoid building graphical packages on servers

---
 homes/julm.nix            | 20 +++++++++++++-------
 homes/softwares/gnupg.nix | 10 +++++++++-
 homes/softwares/podl.nix  | 18 +++++++++---------
 homes/softwares/vim.nix   |  1 +
 4 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/homes/julm.nix b/homes/julm.nix
index 1f16549..a314244 100644
--- a/homes/julm.nix
+++ b/homes/julm.nix
@@ -47,6 +47,11 @@ programs.git = {
   userEmail = "julm@sourcephile.fr";
   signing.key = "0x7182433A39582282929B2A222E3618DD0D087650";
   signing.signByDefault = false;
+  package =
+    if config.host.name == "losurdo"
+    || config.host.name == "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";
@@ -70,7 +75,7 @@ home.sessionVariables = {
 #nixpkgs.config.mumble.speechdSupport = config.host.desktop;
 home.packages = [
   pkgs.acpi
-  pkgs.amfora
+  #pkgs.amfora
   pkgs.aria2
   pkgs.aspell
   pkgs.aspellDicts.fr
@@ -78,15 +83,14 @@ home.packages = [
   pkgs.binutils
   pkgs.bison
   pkgs.bmon
-  pkgs.browsh
-  pkgs.cabal2nix
+  #pkgs.browsh
+  #pkgs.cabal2nix
   pkgs.compsize
   pkgs.convmv
   pkgs.coreutils
   pkgs.croc
   pkgs.cryptsetup
   pkgs.curl
-  pkgs.dino
   pkgs.direnv
   #pkgs.dnsutils
   pkgs.dstat
@@ -100,7 +104,7 @@ home.packages = [
   pkgs.git-crypt
   #pkgs.git-remote-gpg
   pkgs.glib # gio
-  pkgs.go-mtpfs
+  #pkgs.go-mtpfs
   pkgs.gnumake
   pkgs.gvfs
   #pkgs.haskell.packages.ghc865.zerobin
@@ -123,7 +127,7 @@ home.packages = [
   pkgs.lm_sensors
   pkgs.lsof
   pkgs.lsscsi
-  pkgs.meli
+  #pkgs.meli
   pkgs.miniupnpc
   pkgs.mosh
   pkgs.ncdu
@@ -133,7 +137,7 @@ home.packages = [
   pkgs.nixpkgs-review
   pkgs.nmon
   pkgs.ntfs3g
-  pkgs.onionshare
+  #pkgs.onionshare
   pkgs.openssl
   pkgs.p7zip
   pkgs.parted
@@ -141,6 +145,7 @@ home.packages = [
   pkgs.pastebinit
   pkgs.patchelf
   pkgs.pciutils
+  pkgs.podl
   pkgs.poppler_utils
   pkgs.powertop
   pkgs.procps
@@ -177,6 +182,7 @@ home.packages = [
   ] ++ lib.optionals config.host.desktop [
   pkgs.amule
   pkgs.chromium
+  pkgs.dino
   pkgs.djview
   pkgs.dmenu
   pkgs.evince
diff --git a/homes/softwares/gnupg.nix b/homes/softwares/gnupg.nix
index c3a47eb..74fc400 100644
--- a/homes/softwares/gnupg.nix
+++ b/homes/softwares/gnupg.nix
@@ -1,5 +1,13 @@
 { pkgs, lib, config, ... }:
 {
+nixpkgs.overlays = [ (self: super: {
+  # Avoid rebuilding graphical dependencies
+  # when using Nixpkgs PRs rebuilding them.
+  # See https://github.com/NixOS/nixpkgs/issues/96306#issuecomment-722140002
+  pinentry = super.pinentry.override {
+    enabledFlavors = [ "curses" "tty" ] ++ lib.optional config.host.desktop "gtk2";
+  };
+}) ];
 home.activation.gnupg = lib.hm.dag.entryAfter ["writeBoundary"] ''
   install -d -m700 ${lib.escapeShellArg config.home.homeDirectory}/.gnupg
 '';
@@ -13,7 +21,7 @@ home.file.".gnupg/dirmngr.conf".text = ''
 '';
 services.gpg-agent = {
   enableSshSupport = true;
-  pinentryFlavor = if config.host.desktop then "gtk2" else "curses";
+  pinentryFlavor =  "curses";
 };
 programs.gpg.settings = {
   #auto-key-locate = "keyserver";
diff --git a/homes/softwares/podl.nix b/homes/softwares/podl.nix
index cd57ebc..a202247 100644
--- a/homes/softwares/podl.nix
+++ b/homes/softwares/podl.nix
@@ -1,11 +1,11 @@
-{ pkgs, lib, config, ... }:
-let podl = pkgs.writeShellScriptBin "podl" ''
-  PATH=${with pkgs; lib.makeBinPath [
-    coreutils utillinux findutils gnugrep gnused
-    curl aria2 youtube-dl xmlstarlet
-  ]}
-  ${builtins.readFile ./podl.sh}
-''; in
 {
-home.packages = [ podl ];
+nixpkgs.overlays = [(self: super: {
+  podl = super.writeShellScriptBin "podl" ''
+    PATH=${with self; lib.makeBinPath [
+      coreutils utillinux findutils gnugrep gnused
+      curl aria2 youtube-dl xmlstarlet
+    ]}
+    ${builtins.readFile ./podl.sh}
+  '';
+})];
 }
diff --git a/homes/softwares/vim.nix b/homes/softwares/vim.nix
index 5fab946..750fce3 100644
--- a/homes/softwares/vim.nix
+++ b/homes/softwares/vim.nix
@@ -1,6 +1,7 @@
 { pkgs, lib, config, ... }:
 let inherit (builtins) readFile; in
 {
+nixpkgs.config.vim.gui = if config.host.desktop then "gtk3" else "";
 programs.vim = {
   extraConfig =
     readFile vim/vimrc
-- 
2.47.2