fix: make taskwarrior available on both NixOS and standalone home-manager
This commit is contained in:
@@ -21,6 +21,7 @@ with pkgs;
|
||||
parallel
|
||||
pass
|
||||
pnpm
|
||||
python3
|
||||
ripgrep
|
||||
signal-desktop
|
||||
silver-searcher
|
||||
|
||||
@@ -10,13 +10,36 @@ let
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
../../modules/dconf.nix
|
||||
../../modules/git.nix
|
||||
../../modules/k9s.nix
|
||||
../../modules/keepassxc.nix
|
||||
../../modules/browser
|
||||
../../modules/taskwarrior.nix
|
||||
];
|
||||
|
||||
sops = {
|
||||
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
defaultSopsFile = "${inputs.nix-secrets}/secrets.yaml";
|
||||
|
||||
secrets = {
|
||||
taskwarrior_sync_server_url = {};
|
||||
taskwarrior_sync_server_client_id = {};
|
||||
taskwarrior_sync_encryption_secret = {};
|
||||
anki_sync_user = {};
|
||||
anki_sync_key = {};
|
||||
};
|
||||
|
||||
templates."taskrc.d/sync" = {
|
||||
content = ''
|
||||
sync.server.url=${config.sops.placeholder.taskwarrior_sync_server_url}
|
||||
sync.server.client_id=${config.sops.placeholder.taskwarrior_sync_server_client_id}
|
||||
sync.encryption_secret=${config.sops.placeholder.taskwarrior_sync_encryption_secret}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
|
||||
@@ -1,12 +1,24 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
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; [
|
||||
python314
|
||||
libnotify
|
||||
];
|
||||
|
||||
@@ -35,17 +47,10 @@
|
||||
package = taskwarrior3;
|
||||
colorTheme = "dark-256";
|
||||
config = {
|
||||
# sync = {
|
||||
# server.url = "${builtins.readFile config.sops.secrets."taskwarrior_sync_server_url".path}";
|
||||
# server.client_id = "${builtins.readFile
|
||||
# config.sops.secrets."taskwarrior_sync_server_client_id".path
|
||||
# }";
|
||||
# encryption_secret = "${builtins.readFile
|
||||
# config.sops.secrets."taskwarrior_sync_encryption_secret".path
|
||||
# }";
|
||||
# };
|
||||
recurrence = "off";
|
||||
};
|
||||
extraConfig = "include ${config.sops.templates."taskrc.d/sync".path}";
|
||||
extraConfig = lib.optionalString sopsAvailable ''
|
||||
include ${sopsTemplates."taskrc.d/sync".path}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ in
|
||||
};
|
||||
config = {
|
||||
sops = {
|
||||
validateSopsFiles = false;
|
||||
defaultSopsFile = "${builtins.toString inputs.nix-secrets}/secrets.yaml";
|
||||
defaultSopsFormat = "yaml";
|
||||
age.keyFile = "/home/${cfg.username}/.config/sops/age/keys.txt";
|
||||
|
||||
Reference in New Issue
Block a user