hwatch: add module (#7158)

This commit is contained in:
Alex Hamilton
2025-05-30 11:16:26 -04:00
committed by GitHub
parent 482c306ef7
commit d36ac1f0db
7 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
{
time = "2025-05-29T18:33:51+00:00";
condition = true;
message = ''
A new module is available: 'programs.hwatch'.
'';
}

View File

@@ -139,6 +139,7 @@ let
./programs/home-manager.nix
./programs/hstr.nix
./programs/htop.nix
./programs/hwatch.nix
./programs/hyfetch.nix
./programs/hyprlock.nix
./programs/i3bar-river.nix

View File

@@ -0,0 +1,50 @@
{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
mkIf
mkOption
types
;
cfg = config.programs.hwatch;
in
{
meta.maintainers = with lib.hm.maintainers; [
Aehmlo
];
options.programs.hwatch = {
enable = lib.mkEnableOption ''
hwatch, a modern alternative to the {command}`watch` command
'';
package = lib.mkPackageOption pkgs "hwatch" { nullable = true; };
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [
"--exec"
"--precise"
];
description = ''
Extra command-line arguments to pass to {command}`hwatch`.
These will be used to populate the {env}`HWATCH` environment variable.
'';
};
};
config = mkIf cfg.enable {
home.packages = mkIf (cfg.package != null) [ cfg.package ];
home.sessionVariables = mkIf (cfg.extraArgs != [ ]) {
HWATCH = lib.concatMapStringsSep " " lib.escapeShellArg cfg.extraArgs;
};
};
}

View File

@@ -216,6 +216,7 @@ import nmtSrc {
./modules/programs/helix
./modules/programs/himalaya
./modules/programs/htop
./modules/programs/hwatch
./modules/programs/hyfetch
./modules/programs/i3status
./modules/programs/inori

View File

@@ -0,0 +1,4 @@
{
hwatch-empty-config = ./empty-config.nix;
hwatch-example-config = ./example-config.nix;
}

View File

@@ -0,0 +1,15 @@
{
config,
...
}:
{
programs.hwatch = {
enable = true;
package = config.lib.test.mkStubPackage { };
};
nmt.script = ''
assertFileNotRegex home-path/etc/profile.d/hm-session-vars.sh "HWATCH"
'';
}

View File

@@ -0,0 +1,20 @@
{
config,
...
}:
{
programs.hwatch = {
enable = true;
package = config.lib.test.mkStubPackage { };
extraArgs = [
"--exec"
"--precise"
];
};
nmt.script = ''
assertFileExists home-path/etc/profile.d/hm-session-vars.sh
assertFileContains home-path/etc/profile.d/hm-session-vars.sh 'HWATCH="--exec --precise"'
'';
}