feat(taskwarrior): add enable option

This commit is contained in:
2026-05-22 10:27:12 +02:00
parent 96c65fc991
commit 1f115f8738
5 changed files with 74 additions and 64 deletions

View File

@@ -63,7 +63,6 @@
bash.addBinToPath = true; bash.addBinToPath = true;
}; };
anki.enable = true; anki.enable = true;
anki.enable = true;
k8s.k9s.enable = true; k8s.k9s.enable = true;
taskwarrior.enable = true; taskwarrior.enable = true;
audio.enable = true; audio.enable = true;

View File

@@ -61,6 +61,7 @@
anki.enable = true; anki.enable = true;
k8s.k9s.enable = true; k8s.k9s.enable = true;
taskwarrior.enable = true; taskwarrior.enable = true;
secrets.enable = true;
my.yubikey.enable = true; my.yubikey.enable = true;
audio.enable = true; audio.enable = true;
ssh.enable = true; ssh.enable = true;

View File

@@ -90,6 +90,7 @@
redis.enable = true; redis.enable = true;
}; };
anki.enable = true; anki.enable = true;
taskwarrior.enable = true;
k8s.enable = true; k8s.enable = true;
shell.enable = true; shell.enable = true;
my.stylix.enable = true; my.stylix.enable = true;

View File

@@ -10,9 +10,14 @@
}: }:
let let
cfg = config.taskwarrior;
sops = myUtils.sopsAvailability config osConfig; sops = myUtils.sopsAvailability config osConfig;
standalone = osConfig == null; standalone = osConfig == null;
in in
{
options.taskwarrior.enable = lib.mkEnableOption "taskwarrior";
config = lib.mkIf cfg.enable (
lib.optionalAttrs standalone { lib.optionalAttrs standalone {
sops = { sops = {
secrets = myUtils.mkSopsSecrets "${toString inputs.nix-secrets}/secrets" null { secrets = myUtils.mkSopsSecrets "${toString inputs.nix-secrets}/secrets" null {
@@ -33,9 +38,8 @@ lib.optionalAttrs standalone {
}; };
} }
// { // {
warnings = warnings =
lib.optional (!sops.available && config.programs.taskwarrior.enable) lib.optional (!sops.available)
"taskwarrior is enabled, but sops templates are not available. taskwarrior sync will not be configured."; "taskwarrior is enabled, but sops templates are not available. taskwarrior sync will not be configured.";
home.packages = with pkgs; [ home.packages = with pkgs; [
@@ -70,10 +74,12 @@ lib.optionalAttrs standalone {
colorTheme = "dark-256"; colorTheme = "dark-256";
config = { config = {
recurrence = "off"; recurrence = "off";
reserved.lines = 3; # without this I would have to scroll up 3 lines reserved.lines = 3;
}; };
extraConfig = lib.optionalString sops.available '' extraConfig = lib.optionalString sops.available ''
include ${sops.templates."taskrc.d/sync".path} include ${sops.templates."taskrc.d/sync".path}
''; '';
}; };
} }
);
}

View File

@@ -1,10 +1,13 @@
{ config, ... }: { lib, config, ... }:
let let
cfg = config.taskwarrior;
inherit (config.secrets) owner; inherit (config.secrets) owner;
in in
{ {
config = { options.taskwarrior.enable = lib.mkEnableOption "taskwarrior";
config = lib.mkIf cfg.enable {
secrets.groups.taskwarrior = [ secrets.groups.taskwarrior = [
"sync-server-url" "sync-server-url"
"sync-server-client-id" "sync-server-client-id"