summaryrefslogtreecommitdiffstats
path: root/modules/by-name/hl/hledger
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/hl/hledger')
-rw-r--r--modules/by-name/hl/hledger/module.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/by-name/hl/hledger/module.nix b/modules/by-name/hl/hledger/module.nix
new file mode 100644
index 00000000..1739b809
--- /dev/null
+++ b/modules/by-name/hl/hledger/module.nix
@@ -0,0 +1,57 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{
+ config,
+ lib,
+ pkgs,
+ extra_lib,
+ ...
+}: let
+ cfg = config.soispha.programs.hledger;
+ ledgerFile = "${config.home-manager.users.soispha.xdg.dataHome}/hledger/2025.journal";
+in {
+ options.soispha.programs.hledger = {
+ enable = lib.mkEnableOption "hledger";
+ };
+
+ config = lib.mkIf cfg.enable {
+ environment.variables = {
+ LEDGER_FILE = ledgerFile;
+ };
+
+ home-manager.users.soispha = {
+ home.packages = [
+ pkgs.hledger
+
+ (pkgs.writeShellApplication {
+ name = "hledger-edit";
+
+ text = ''
+ "$EDITOR" ${lib.strings.escapeShellArg ledgerFile}
+ '';
+
+ inheritPath = true; # needs access to nvim
+ })
+ ];
+
+ xdg.configFile = {
+ "hledger/hledger.conf".text =
+ # ledger
+ ''
+ # Actually enforce more checks.
+ --strict
+
+ # Use boxdrawing characters when possible.
+ --pretty
+ '';
+ };
+ };
+ };
+}