declare taskwarrior for all NixOS hosts

main
Hektor Misplon 2025-11-23 19:08:36 +01:00
parent 2e81d28cc8
commit 92226fff95
5 changed files with 93 additions and 13 deletions

View File

@ -29,11 +29,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1763438658,
"narHash": "sha256-ojDdZbQG9wJyEkAQSpGUvgJ4edDnY13HXdf0dHaYKJw=",
"lastModified": 1763885608,
"narHash": "sha256-eFRbKKMaEHC5EaL7sxfPVFPFsr0Plzx03e1VkJkcsBA=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "095dd41814f14586166d8c1fd9012d5e8dad0a44",
"rev": "c94982d5890f4ff0737d57ed97503c1c8d40195c",
"type": "gitlab"
},
"original": {
@ -85,10 +85,10 @@
"nix-secrets": {
"flake": false,
"locked": {
"lastModified": 1762546290,
"narHash": "sha256-a0mXF68to0eJQiIq1vCBMcGCX1UA1lBpwHgCinKfORA=",
"lastModified": 1763919406,
"narHash": "sha256-WaGxnH7dm63syPt8E4MXbg4XVxQveXPe+cZu3iPz25w=",
"ref": "main",
"rev": "b0473511f3718fb95f01e6c8bad6da3eb582974c",
"rev": "4423bf215047474ecb89f4d8ad63a04e734b252a",
"shallow": true,
"type": "git",
"url": "ssh://git@github.com/hektor/nix-secrets"
@ -154,11 +154,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1763334038,
"narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=",
"lastModified": 1763622513,
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c",
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
"type": "github"
},
"original": {
@ -324,11 +324,11 @@
]
},
"locked": {
"lastModified": 1763417348,
"narHash": "sha256-n5xDOeNN+smocQp3EMIc11IzBlR9wvvTIJZeL0g33Fs=",
"lastModified": 1763870012,
"narHash": "sha256-AHxFfIu73SpNLAOZbu/AvpLhZ/Szhx6gRPj9ufZtaZA=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3f66a7fb9626a9a9c077612ef10a0ce396286c7d",
"rev": "4e7d74d92398b933cc0e0e25af5b0836efcfdde3",
"type": "github"
},
"original": {

View File

@ -9,6 +9,10 @@
imports = [
../../modules/dconf.nix # TODO: Only enable when on Gnome?
../../modules/git.nix
(import ../../modules/taskwarrior.nix {
inherit config;
inherit pkgs;
})
];
home.stateVersion = "25.05";

View File

@ -31,11 +31,11 @@ with pkgs;
pnpm
ripgrep
silver-searcher
sops
sshfs
stylelint
svelte-language-server
tailwindcss-language-server
taskwarrior3
tldr
tmux
tmuxp

View File

@ -0,0 +1,51 @@
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [
python314
libnotify
];
home.file = {
".config/task/taskrc" = {
force = true; # overwrite when present
source = ../../dots/.config/task/taskrc;
};
".config/task/taskrc.d/aliases".source = ../../dots/.config/task/taskrc.d/aliases;
".config/task/taskrc.d/colors".source = ../../dots/.config/task/taskrc.d/colors;
".config/task/taskrc.d/contexts".source = ../../dots/.config/task/taskrc.d/contexts;
".config/task/taskrc.d/reports".source = ../../dots/.config/task/taskrc.d/reports;
".config/task/taskrc.d/udas".source = ../../dots/.config/task/taskrc.d/udas;
".config/task/taskrc.d/urgency".source = ../../dots/.config/task/taskrc.d/urgency;
".local/share/task/hooks/on-exit.sync.py" = {
source = ../../dots/.local/share/task/hooks/on-exit.sync.py;
};
".local/share/task/scripts/sync-and-notify.sh" = {
source = ../../dots/.local/share/task/scripts/sync-and-notify.sh;
executable = true;
};
};
programs.taskwarrior = with pkgs; {
enable = true;
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"; # TODO: enable only on andromache
};
extraConfig = "include ${config.sops.templates."taskrc.d/sync".path}";
};
}

View File

@ -11,6 +11,7 @@
imports = [
inputs.disko.nixosModules.disko
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.default
./hard.nix
../../modules/bootloader.nix
@ -30,6 +31,30 @@
../../modules/ssh/hardened-openssh.nix
];
sops = {
validateSopsFiles = false;
defaultSopsFile = "${builtins.toString inputs.nix-secrets}/secrets.yaml";
defaultSopsFormat = "yaml";
age.keyFile = "/home/h/.config/sops/age/keys.txt";
secrets = {
"test" = { };
"taskwarrior_sync_server_url".owner = config.users.users.h.name;
"taskwarrior_sync_server_client_id".owner = config.users.users.h.name;
"taskwarrior_sync_encryption_secret".owner = config.users.users.h.name;
};
templates."taskrc.d/sync" = {
owner = config.users.users.h.name;
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"}
'';
};
};
environment.systemPackages = [ inputs.nvim.packages.x86_64-linux.nvim ];
nix.settings.experimental-features = [