aubergine: nftables: fix DHCP renewal
[julm/julm-nix.git] / home-manager / profiles / essential.nix
index 9ff691fbe9952e0316979d6c894b2090ab795465..060e2e84e0e3165ef183d5f4eec2bd38bd61687b 100644 (file)
@@ -1,63 +1,81 @@
 { pkgs, lib, config, nixosConfig, ... }:
 {
-imports = [
-  ./bash.nix
-  ./direnv.nix
-  ./git.nix
-  #./gnupg.nix
-  ./htop.nix
-  ./lf.nix
-  ./ssh.nix
-  ./tmux.nix
-];
-programs.bat.enable = lib.mkDefault true;
-programs.home-manager.enable = true;
-home.packages = [
-  nixosConfig.boot.kernelPackages.cpupower
-  pkgs.acpi
-  pkgs.binutils
-  pkgs.cryptsetup
-  pkgs.dmidecode
-  pkgs.dstat
-  pkgs.e2fsprogs
-  pkgs.file
-  pkgs.hdparm
-  pkgs.hwinfo
-  pkgs.iotop
-  pkgs.lm_sensors
-  pkgs.lsof
-  pkgs.lsscsi
-  pkgs.mkpasswd
-  pkgs.multitail
-  pkgs.ncdu
-  pkgs.nix-du
-  pkgs.nload
-  pkgs.parted
-  pkgs.pass
-  pkgs.pciutils
-  #pkgs.powertop
-  pkgs.procps
-  pkgs.pstree
-  pkgs.pv
-  pkgs.smartmontools
-  pkgs.smem
-  pkgs.strace
-  pkgs.stress-ng
-  pkgs.testdisk
-  pkgs.tree
-  pkgs.usbutils
-  pkgs.util-linux
-  pkgs.which
-  pkgs.xdg-utils
-] ++ lib.optionals nixosConfig.services.xserver.enable [
-  pkgs.gparted
-];
-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";
-};
+  imports = [
+    ./bash.nix
+    ./htop.nix
+    ./ssh.nix
+    ./tmux.nix
+  ];
+  programs.bat.enable = lib.mkDefault true;
+  home.packages = [
+    nixosConfig.boot.kernelPackages.cpupower
+    pkgs.acpi
+    pkgs.audit
+    pkgs.binutils
+    pkgs.cryptsetup
+    pkgs.direnv
+    pkgs.dislocker
+    pkgs.dmidecode
+    pkgs.dstat
+    pkgs.dust
+    pkgs.e2fsprogs
+    pkgs.file
+    pkgs.fio
+    pkgs.gptfdisk
+    pkgs.hdparm
+    pkgs.hwinfo
+    pkgs.i2c-tools # for decode-dimms
+    pkgs.iotop
+    pkgs.iperf
+    pkgs.kernel-hardening-checker
+    pkgs.ldns
+    pkgs.lm_sensors
+    pkgs.lshw
+    pkgs.lsof
+    pkgs.lsscsi
+    pkgs.mkpasswd
+    pkgs.mmc-utils
+    #pkgs.moreutils
+    pkgs.multitail
+    pkgs.nload
+    pkgs.parted
+    pkgs.pciutils
+    #pkgs.powertop
+    pkgs.procps
+    pkgs.pstree
+    pkgs.pv
+    pkgs.s-tui
+    pkgs.smartmontools
+    pkgs.smem
+    pkgs.spectre-meltdown-checker
+    pkgs.strace
+    pkgs.stress-ng
+    pkgs.testdisk
+    pkgs.tree
+    pkgs.usbutils
+    pkgs.util-linux
+    pkgs.which
+  ] ++ lib.optionals nixosConfig.services.xserver.enable [
+    pkgs.gparted
+    pkgs.xdg-utils
+  ] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isx86_64 [
+    pkgs.ncdu
+  ];
+  home.sessionPath = [ "${config.home.homeDirectory}/bin" ];
+  home.sessionVariables = {
+    EDITOR = "vim";
+    LANG = "fr_FR.UTF-8";
+    LESS = "-FRSX";
+    # NixOS generates a customized pkgs.glibcLocales in config.i18n.glibcLocales
+    #LOCALE_ARCHIVE = "${pkgs.glibcLocalesUtf8}/lib/locale/locale-archive";
+    MANPAGER = "less";
+  };
+  # Keep only the last generation of the home-manager profile
+  home.activation.delete-generations = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
+    if [ "$(${pkgs.coreutils}/bin/id -u)" = 0 ]
+    then profile="''${NIX_STATE_DIR:-/nix/var/nix}/profiles/per-user/$USER"
+    else profile="''${XDG_STATE_HOME:-$HOME/.local/state}"/nix/profiles
+    fi
+    ${nixosConfig.nix.package}/bin/nix-env --delete-generations +1 --profile "$profile"/home-manager
+  '';
 }