58 lines
1.8 KiB
Nix
58 lines
1.8 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
dotsPath,
|
|
osConfig ? null,
|
|
...
|
|
}:
|
|
|
|
let
|
|
hmSopsAvailable = config ? sops && config.sops ? templates;
|
|
osSopsAvailable = osConfig != null && osConfig ? sops && osConfig.sops ? templates;
|
|
sopsAvailable = hmSopsAvailable || osSopsAvailable;
|
|
|
|
sopsTemplates = if hmSopsAvailable then config.sops.templates else osConfig.sops.templates;
|
|
in
|
|
{
|
|
warnings =
|
|
lib.optional (!sopsAvailable && config.programs.taskwarrior.enable)
|
|
"taskwarrior is enabled, but sops templates are not available. taskwarrior sync will not be configured.";
|
|
|
|
home.packages = with pkgs; [
|
|
libnotify
|
|
];
|
|
|
|
home.file = {
|
|
".config/task/taskrc" = {
|
|
force = true; # overwrite when present
|
|
source = dotsPath + "/.config/task/taskrc";
|
|
};
|
|
".config/task/taskrc.d/aliases".source = dotsPath + "/.config/task/taskrc.d/aliases";
|
|
".config/task/taskrc.d/colors".source = dotsPath + "/.config/task/taskrc.d/colors";
|
|
".config/task/taskrc.d/contexts".source = dotsPath + "/.config/task/taskrc.d/contexts";
|
|
".config/task/taskrc.d/reports".source = dotsPath + "/.config/task/taskrc.d/reports";
|
|
".config/task/taskrc.d/udas".source = dotsPath + "/.config/task/taskrc.d/udas";
|
|
".config/task/taskrc.d/urgency".source = dotsPath + "/.config/task/taskrc.d/urgency";
|
|
".local/share/task/hooks/on-exit.sync.py" = {
|
|
source = dotsPath + "/.local/share/task/hooks/on-exit.sync.py";
|
|
};
|
|
".local/share/task/scripts/sync-and-notify.sh" = {
|
|
source = dotsPath + "/.local/share/task/scripts/sync-and-notify.sh";
|
|
executable = true;
|
|
};
|
|
};
|
|
|
|
programs.taskwarrior = with pkgs; {
|
|
enable = true;
|
|
package = taskwarrior3;
|
|
colorTheme = "dark-256";
|
|
config = {
|
|
recurrence = "off";
|
|
};
|
|
extraConfig = lib.optionalString sopsAvailable ''
|
|
include ${sopsTemplates."taskrc.d/sync".path}
|
|
'';
|
|
};
|
|
}
|