about summary refs log tree commit diff
path: root/modules/user/aszlig/programs/taskwarrior/default.nix
blob: 99d428ded76438e9d74c014754c9672e771000da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{ config, pkgs, lib, ... }:

let
  cfg = config.vuizvui.user.aszlig.programs.taskwarrior;

  taskrc = pkgs.writeText "taskrc.in" ''
    data.location=~/.task
    include @out@/share/doc/task/rc/dark-yellow-green.theme

    color=on
    dateformat=Y-m-d
    dateformat.annotation=Y-m-d
    dateformat.edit=Y-m-d H:N:S
    dateformat.holiday=YMD
    dateformat.info=Y-m-d H:N:S
    dateformat.report=Y-m-d
    weekstart=Monday
  '';

  taskwarrior = pkgs.taskwarrior.overrideDerivation (t: {
    patches = (t.patches or []) ++ [ ./config.patch ];
    postInstall = (t.postInstall or "") + ''
      mkdir -p "$out/etc"
      substituteAll "${taskrc}" "$out/etc/taskrc"
    '';
  });

in {
  options.vuizvui.user.aszlig.programs.taskwarrior = {
    enable = lib.mkEnableOption "aszlig's TaskWarrior";
  };

  config = lib.mkIf cfg.enable {
    environment.systemPackages = lib.singleton taskwarrior;
  };
}