pumpkin: steam-run: install
[julm/julm-nix.git] / home-manager / profiles / essential.nix
index 078bbc413ec05eea308efd085180759c3c139cb1..22a44b050c99093fd69be1c7ccd142c0de6bcba7 100644 (file)
@@ -1,61 +1,95 @@
-{ pkgs, lib, config, nixosConfig, ... }:
 {
-imports = [
-  ./bash.nix
-  ./direnv.nix
-  ./git.nix
-  ./gnupg.nix
-  ./htop.nix
-  ./ssh.nix
-  ./tmux.nix
-];
-programs.bat.enable = lib.mkDefault true;
-programs.git.package = lib.mkDefault pkgs.gitMinimal;
-programs.home-manager.enable = true;
-home.packages = [
-  nixosConfig.boot.kernelPackages.cpupower
-  pkgs.acpi
-  pkgs.binutils
-  pkgs.cryptsetup
-  pkgs.dstat
-  pkgs.e2fsprogs
-  pkgs.file
-  pkgs.hwinfo
-  pkgs.iotop
-  pkgs.lf
-  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.tree
-  pkgs.usbutils
-  pkgs.utillinux
-  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";
-};
+  pkgs,
+  lib,
+  config,
+  nixosConfig,
+  ...
+}:
+{
+  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.efitools
+      pkgs.file
+      pkgs.fio
+      pkgs.gptfdisk
+      pkgs.hdparm
+      pkgs.hwinfo
+      pkgs.hyperfine
+      pkgs.i2c-tools # for decode-dimms
+      pkgs.inxi
+      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.mokutil
+      #pkgs.moreutils
+      pkgs.multitail
+      pkgs.nload
+      pkgs.parted
+      pkgs.pciutils
+      #pkgs.powertop
+      pkgs.procps
+      pkgs.pstree
+      pkgs.pv
+      pkgs.refind
+      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
+  '';
 }