* 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