Files
dot-emacs/.emacs.d/ledger.org
2026-03-28 20:30:38 -04:00

37 lines
1.3 KiB
Org Mode

* Ledger CLI
#+begin_src elisp
(defun jm/get-ledger-file ()
(let* ((year (format-time-string "%Y"))
(month (format-time-string "%m"))
(ledger-file (expand-file-name
(format "Ledger/%s/%s-%s.ledger" year year month)
jm/cloud-root)))
ledger-file))
(defun jm/open-ledger-file ()
(interactive)
(find-file (jm/get-ledger-file)))
(use-package ledger-mode
:mode ("\\.ledger\\'")
:config
(setq ledger-binary-path "hledger"
ledger-master-file (expand-file-name "Ledger/main.ledger" jm/cloud-root)
ledger-accounts-file (expand-file-name "Ledger/accounts.ledger" jm/cloud-root)
ledger-mode-should-check-version nil
ledger-report-auto-width nil
ledger-report-use-native-highlighting nil)
(setq ledger-reports
'(("bal" "%(binary) -f %(ledger-file) bal")
("monthly balance" "%(binary) -f %(ledger-file) bal -p 'this month'")
("daily balance" "%(binary) -f %(ledger-file) bal -p 'today'")
("budget" "%(binary) -f %(ledger-file) -p %(month) bal --budget")
("reg" "%(binary) -f %(ledger-file) reg")
("account" "%(binary) -f %(ledger-file) reg %(account)"))))
(jm/leader-keys
"ol" '(jm/open-ledger-file :which-key "Open ledger file for current month."))
#+end_src