{ pkgs, ... }:

with import <stockholm/lib>;

{
  security.hideProcessInformation = true;
  nixpkgs.config.packageOverrides = super: {
    htop = pkgs.concat "htop" [
      super.htop
      (pkgs.writeDashBin "htop" ''
        export HTOPRC=${pkgs.writeText "htoprc" ''
          fields=0 48 17 18 38 39 40 2 46 47 49 1
          sort_key=46
          sort_direction=1
          hide_threads=0
          hide_kernel_threads=1
          hide_userland_threads=0
          shadow_other_users=1
          show_thread_names=1
          show_program_path=1
          highlight_base_name=1
          highlight_megabytes=1
          highlight_threads=1
          tree_view=1
          header_margin=1
          detailed_cpu_time=0
          cpu_count_from_zero=0
          update_process_names=0
          account_guest_in_cpu_meter=1
          color_scheme=6
          delay=15
          left_meters=LeftCPUs2 RightCPUs2 Memory Swap
          left_meter_modes=1 1 1 1
          right_meters=Uptime Tasks LoadAverage Battery
          right_meter_modes=2 2 2 2
        ''}
        exec ${super.htop}/bin/htop "$@"
      '')
    ];
  };
}