Merge pull request #138811 from mkg20001/htop

This commit is contained in:
Maciej Krüger 2021-10-05 06:33:40 +02:00 committed by GitHub
commit 20eeb1e09e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 60 additions and 1 deletions

View file

@ -154,6 +154,7 @@
./programs/gnupg.nix
./programs/gphoto2.nix
./programs/hamster.nix
./programs/htop.nix
./programs/iftop.nix
./programs/iotop.nix
./programs/java.nix

View file

@ -0,0 +1,58 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.htop;
fmt = value:
if isList value then concatStringsSep " " (map fmt value) else
if isString value then value else
if isBool value || isInt value then toString value else
throw "Unrecognized type ${typeOf value} in htop settings";
in
{
options.programs.htop = {
package = mkOption {
type = types.package;
default = pkgs.htop;
defaultText = "pkgs.htop";
description = ''
The htop package that should be used.
'';
};
enable = mkEnableOption "htop process monitor";
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf (oneOf [ str int bool ])) ]);
default = {};
example = {
hide_kernel_threads = true;
hide_userland_threads = true;
};
description = ''
Extra global default configuration for htop
which is read on first startup only.
Htop subsequently uses ~/.config/htop/htoprc
as configuration source.
'';
};
};
config = mkIf cfg.enable {
environment.systemPackages = [
cfg.package
];
environment.etc."htoprc".text = ''
# Global htop configuration
# To change set: programs.htop.settings.KEY = VALUE;
'' + concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${fmt value}") cfg.settings);
};
}

View file

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
++ optional systemdSupport systemd
;
configureFlags = [ "--enable-unicode" ]
configureFlags = [ "--enable-unicode" "--sysconfdir=/etc" ]
++ optional sensorsSupport "--with-sensors"
;