randomwangran / nyan-mode

A modeline to show how many Org-roam nodes written every day

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A fork version of Nyan Mode - To motivate you write more

It is so easy to overestimate the importance of one defining moment and underestimate the value of making small improvements on a daily basis. Too often, we convince ourselves that massive success requires massive action. Whether it is losing weight, building a business, writing a book, winning a championship, or achieving any other goal, we put pressure on ourselves to make some earth-shattering improvement that everyone will talk about.

  • Clear, J. (2018). Atomic habits: an easy & proven way to build good habits & break bad ones. : Penguin.

screenshot.png

set up

Sorry, I do not know how to write it into single script installation. It needs manually installation. The user is expected to know how to setup a `.dir-locals.el` file to make it run.

(add-to-list 'load-path "~/.emacs.d/nyan-mode")
(require 'tweak-nyan-mode)

(define-minor-mode wr-org-roam-mode
  "Show today and yesterday's efforts on mode-line"
  :init-value nil
  :lighter " wr-roam"
  :group 'wr-roam)

(defcustom wr-org-roam-mode-hook nil
  "Mode hook for my tweak mode run after the mode was turned on."
  :group 'wr-roam
  :type 'hook)

(defcustom my-org-roam-dir-local-flag nil
  "enable wr-org-roam-mode-hook only in zk folder"
  :group 'wr-roam
  :type '(boolean))

(defun external-script-to-write-today-effort ()
  "data written into a file"
  (shell-command-to-string "sh ~/Dropbox/myNote/zk/output/count-today-effort.sh"))

(defun wr/org-roam-notes-today-effort-update ()
  "Update the LAST_MODIFIED file property in the preamble."
  (when my-org-roam-dir-local-flag
    (external-script-to-write-today-effort)))

(add-hook 'org-mode-hook 'wr-org-roam-mode)
(add-hook 'org-roam-mode-hook 'wr-org-roam-mode)
(add-hook 'wr-org-roam-mode-hook 'wr-org-roam-mode-line-need-more-effort)
(add-hook 'before-save-hook #'wr/org-roam-notes-today-effort-update)

Please put this file `.dir-locals.el` in the `org-roam` directory:

;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")

((org-mode . ((my-dir-local-flag . t)
              (my-org-roam-dir-local-flag . t))))

I end up using external shell script to walk around the performance issue.

#!/bin/bash

TODAY=`date +"%Y%m%d"`
ls -l ORG_ROAM_FOLDER_PATH | grep "$TODAY" | grep -v "~" |  awk '{print $9}' | wc -l > ORG_ROAM_FOLDER_PATH/output/log.today_effort 2>&1

About

A modeline to show how many Org-roam nodes written every day

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 97.2%Language:Shell 2.8%