Files
dot-emacs/.emacs.d/ledger.org
2026-04-18 12:12:27 -04:00

1.3 KiB

Ledger CLI

(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\\'")
  :custom
  ((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)
   (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."))