diff --git a/home/opdavies/PW05CH3L.nix b/home/opdavies/PW05CH3L.nix index 637b3cdb..b8ce7248 100644 --- a/home/opdavies/PW05CH3L.nix +++ b/home/opdavies/PW05CH3L.nix @@ -37,6 +37,7 @@ ]; }; + todos.enable = true; zsh.enable = true; }; diff --git a/home/opdavies/t480.nix b/home/opdavies/t480.nix index 76f149e9..734e2f79 100644 --- a/home/opdavies/t480.nix +++ b/home/opdavies/t480.nix @@ -44,6 +44,7 @@ ]; }; + todos.enable = true; zsh.enable = true; }; diff --git a/modules/home-manager/cli/default.nix b/modules/home-manager/cli/default.nix index 2c3a2ede..01fc0f5f 100644 --- a/modules/home-manager/cli/default.nix +++ b/modules/home-manager/cli/default.nix @@ -11,6 +11,7 @@ ./ranger.nix ./scripts ./starship.nix + ./todos.nix ./tmux.nix ./tmux-sessionizer.nix ./zsh diff --git a/modules/home-manager/cli/todos.nix b/modules/home-manager/cli/todos.nix new file mode 100644 index 00000000..e55c7456 --- /dev/null +++ b/modules/home-manager/cli/todos.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + name = "todos"; + cfg = config.cli.${name}; + + inherit (lib) mkOption types; +in +{ + options.cli.${name} = { + enable = lib.mkEnableOption "Enable ${name}"; + + directory = mkOption { + default = "${config.xdg.userDirs.documents}/todos"; + type = types.str; + }; + }; + + config = lib.mkIf cfg.enable { + home = { + packages = with pkgs; [ + todos-add + todos-edit + ]; + + sessionVariables = { + TODOS_DIRECTORY = cfg.directory; + }; + }; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index a47e9dfa..72ce4ae8 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -12,6 +12,8 @@ in displayselect = callPackage ./displayselect { }; notes = callPackage ./notes { }; passmenu-otp = callPackage ./passmenu-otp.nix { }; + todos-add = callPackage ./todos/todos-add.nix { }; + todos-edit = callPackage ./todos/todos-edit.nix { }; tmux-sessionizer = callPackage ./tmux-sessionizer { }; upload-to-files = callPackage ./upload-to-files.nix { }; diff --git a/pkgs/todos/todos-add.nix b/pkgs/todos/todos-add.nix new file mode 100644 index 00000000..a5df60ac --- /dev/null +++ b/pkgs/todos/todos-add.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: + +pkgs.writeShellApplication { + name = "todos-add"; + + text = '' + TODOS_DIRECTORY="''${TODOS_DIRECTORY:-"$XDG_DOCUMENTS_DIR/todos"}" + export TODOS_DIRECTORY + + echo "$*" >> "$TODOS_DIRECTORY/$(date +%Y-%m-%d).txt" + ''; +} + diff --git a/pkgs/todos/todos-edit.nix b/pkgs/todos/todos-edit.nix new file mode 100644 index 00000000..43d3c829 --- /dev/null +++ b/pkgs/todos/todos-edit.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: + +pkgs.writeShellApplication { + name = "todos-edit"; + + text = '' + TODOS_DIRECTORY="''${TODOS_DIRECTORY:-"$XDG_DOCUMENTS_DIR/todos"}" + export TODOS_DIRECTORY + + "$EDITOR" "$TODOS_DIRECTORY/$(date +%Y-%m-%d).txt"; + ''; +}