From 7015ac14d5d37de4184dd1a2cc6d199c1af6cfff Mon Sep 17 00:00:00 2001 From: Levi Olson Date: Sun, 25 Aug 2019 14:40:29 -0500 Subject: [PATCH] Big Update: - Start server automatically - Fix agenda on startup - Highlight long lines - Org Protocol and capture templates - Org bullets and heading sizes - Starting to learn Ledger for finances --- init.el | 87 +++++++++++++++++++++++++++++++++++++++----------- init.elc | Bin 80504 -> 81932 bytes init.org | 94 +++++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 138 insertions(+), 43 deletions(-) diff --git a/init.el b/init.el index e66b5ab..05a0ab3 100644 --- a/init.el +++ b/init.el @@ -54,10 +54,12 @@ ivy-hydra jabber json-mode + ledger-mode magit markdown-mode material-theme multiple-cursors + org-bullets ox-reveal poporg projectile @@ -81,6 +83,8 @@ (when (not (package-installed-p p)) (package-install p))) +(server-start) + (require 'better-defaults) ;; Instead of the annoying giant warning icon, just flash the modeline. @@ -126,8 +130,7 @@ (interactive) (/ (- (x-display-pixel-width) (window-px-width)) 2)) - -;; (add-to-list 'default-frame-alist (cons 'top 0)) + ;; (add-to-list 'default-frame-alist (cons 'top 0)) ;; (add-to-list 'default-frame-alist (cons 'left 1000)) (put 'narrow-to-region 'disabled nil) @@ -151,16 +154,19 @@ ;; Content is not centered by default. To center, set (setq dashboard-center-content t) -;; To disable shortcut "jump" indicators for each section, set +;; To enable shortcut "jump" indicators for each section, set (setq dashboard-show-shortcuts t) (setq show-week-agenda-p t) - -(setq dashboard-items '((recents . 5) +(setq dashboard-org-agenda-categories '("work" "tasks")) +(setq dashboard-items '((recents . 10) (bookmarks . 5) (projects . 5) - (agenda . 5) - (registers . 5))) + ;; (agenda . 5) + ;; (registers . 5) + )) + +(add-to-list 'dashboard-items '(agenda) t) (defvar backup-dir (expand-file-name "~/.emacs.d/backup/")) (defvar autosave-dir (expand-file-name "~/.emacs.d/autosave/")) @@ -175,6 +181,15 @@ (tool-bar-mode 0) (setq auth-sources '("~/.authinfo.gpg")) (set-default 'truncate-lines t) +(setq fill-column 80) + +;; (add-hook 'text-mode-hook +;; (lambda () +;; (when (y-or-n-p "Auto Fill mode? ") +;; (turn-on-auto-fill)))) + +(setq whitespace-style '(face empty tabs lines-tail trailing)) +(global-whitespace-mode t) ;; (load-theme 'doom-city-lights t) ;; (load-theme 'doom-dracula t) @@ -591,6 +606,11 @@ (define-key ivy-minibuffer-map (kbd "") 'ivy-alt-done) (define-key ivy-minibuffer-map (kbd "C-f") 'ivy-open-current-typed-path) +(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t) +(add-to-list 'load-path + (expand-file-name "/path/to/ledger/source/lisp/")) +(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode)) + (require 'magit) (global-set-key (kbd "C-x g") 'magit-status) (global-set-key (kbd "C-c g") 'magit-status) @@ -1191,6 +1211,7 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." "a keymap of custom bindings.") (define-key custom-bindings (kbd "M-p") 'jump-to-previous-like-this) +(define-key custom-bindings (kbd "M-r") 'fill-paragraph) (define-key custom-bindings (kbd "M-n") 'jump-to-next-like-this) (define-key custom-bindings (kbd "M-") 'switch-to-next-buffer) (define-key custom-bindings (kbd "M-")'delete-backward-to-boundary) @@ -1211,6 +1232,7 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." (define-key custom-bindings (kbd "C-x C-l j") 'jabber) (define-key custom-bindings (kbd "C-x C-l f") 'elfeed) (define-key custom-bindings (kbd "C-x C-l a") 'org-agenda) +(define-key custom-bindings (kbd "C-,") 'org-cycle-agenda-files) (define-key custom-bindings (kbd "C-x C-l c") 'calendar) (define-key custom-bindings (kbd "M-SPC") #'hyperspace) ;; (dolist (n (number-sequence 1 9)) @@ -1404,10 +1426,11 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." (setq org-agenda-files '("~/Dropbox/Org/todo.org" - "~/Dropbox/Org/archive.org")) + "~/Dropbox/Org/archive.org" + "~/Dropbox/Org/diary/eaglecrk.org")) (setq org-refile-targets - '((nil :maxlevel . 1) - (org-agenda-files :maxlevel . 1))) + '((nil :maxlevel . 3) + (org-agenda-files :maxlevel . 3))) ;; (add-hook 'focus-in-hook ;; (lambda () (progn @@ -1424,10 +1447,12 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." (defun my-org-confirm-babel-evaluate (lang _body) "Execute certain languages without confirming. - Takes LANG to allow and BODY to execute." + Takes LANG to allow and BODY to execute." (not (or (string= lang "js") (string= lang "restclient") (string= lang "emacs-lisp") + (string= lang "elisp") + (string= lang "sh") (string= lang "shell")))) (setq org-confirm-babel-evaluate #'my-org-confirm-babel-evaluate) (add-to-list 'org-structure-template-alist @@ -1442,6 +1467,32 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." (list "r" (concat "#+BEGIN_SRC restclient :results raw\n" "\n" "#+END_SRC"))) +(setq org-directory "~/Dropbox/Org" + org-default-notes-file (concat org-directory "/todo.org") + org-startup-folded t + org-startup-indented t + org-startup-align-all-tables t + org-startup-with-inline-images t + org-startup-with-latex-preview t + org-log-done t + org-log-done-with-time t + org-log-into-drawer t + org-hide-leading-stars t + org-pretty-entities t + ) + +(require 'org-protocol) +(setq org-capture-templates + '(("t" "new task" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks") + "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n") + ("n" "new note" entry (file+headline org-default-notes-file "Notes") + "* %?\n%i\n") + ("l" "store link" entry (file+olp org-default-notes-file "Links" "Unfiled") + "* %a\n%?\n") + ("d" "store link w/drawer" entry (file+olp org-default-notes-file "Links" "Unfiled") + "* %?\n%l\n:COPIED_TEXT:\n %i\n:END:\n") + )) + (defun my-org-config () "Activate org and yas in 'org-mode' buffers." @@ -1465,10 +1516,6 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." ;;store link to message if in header view, not to header query (setq org-mu4e-link-query-in-headers-mode nil) -(setq org-capture-templates - '(("t" "todo" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks") - "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n"))) - (elfeed-org) (setq rmh-elfeed-org-files (list "~/Dropbox/Org/elfeed.org")) @@ -1485,10 +1532,12 @@ ARGS may be amongst :timeout, :icon, :urgency, :app and :category." (cond ((member "PragmataPro Mono Liga" (font-family-list)) (set-face-attribute 'default nil :font "PragmataPro Mono Liga-13"))) -(set-face-attribute 'org-level-1 nil :height 1.5) -(set-face-attribute 'org-level-2 nil :height 1.2) -(set-face-attribute 'org-level-3 nil :height 1.1) -(set-face-attribute 'org-level-4 nil :height 1.1) +(add-hook 'org-mode-hook 'org-bullets-mode) + +(set-face-attribute 'org-level-1 nil :height 1.3) +(set-face-attribute 'org-level-2 nil :height 1.1) +(set-face-attribute 'org-level-3 nil :height 1.05) +(set-face-attribute 'org-level-4 nil :height 1.05) (set-face-attribute 'org-scheduled-today nil :height 1.0) (set-face-attribute 'org-agenda-date-today nil :height 1.1) ;; (set-face-attribute 'org-table nil :foreground "#008787") diff --git a/init.elc b/init.elc index 2187d3a4c970a00247a079b10ef05b95526c1cef..a5ddf8746b09a70730358c01ae44262fda853187 100644 GIT binary patch delta 3658 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 S>2xmdnx==R;V-})%6|dUX-@V4 delta 2362 zcmZuyeQ;FO70=ywHw`2Z$cCr3fR820t`NN6@4W;SN)YL2%cvuCx)}(`LQ6ZAS}Xmr|6p;N!c8HPGj9Q6;!KPux)>nP%&W6#@U|J)inN(@gsxN!Dt<;v1~v7U z;N}HG_S}Ns#vC0gct9_PZ(=p}H;F58hjC$_xP}r(N@EXy_wNL^gqZtP@YZ_`@XX>* z9PS(V^^$iTsRI~X`XfjCp*_3wSgpg1vAs9^kT^#9@W+);Qx*max>sFsxE6M2^XZtQ zm=8%d?r>)86l)=l&>>vr|HO|Ndr>@1s0b9ZpjOAJ418UDw3TeK^IMKo#}VRmJFFXb z?dxkdIK!qUBN<+Zv*puwXOV>?BwWl`IAT*#98?el?w7&hC44F^f-gjr1pXpaRe58{ z5^XkR3zx&F`ZGXF)_}nB1TF$|;f;$>k}iHjDi{6eZ9G!&b_w(j;~^I9{O1Bfz8hnhbv*Py>ktrO#9q!yXzkg<;DoO zeM=AJL8#&MmU|q=6f|u89nOWaQ(G@mhf8ixv~MD{TIh6pdhYVIhQan7jj(XrKCHd= z?IYV#BrL~(ourHP2cFT@YQmuTUW;)`l&W{PzS_k&y?3ozV0d~`i-G7NT z2X^02R}pHknc%s5&pSNe@XOo?wl{;i-H%5*;Mnfd)Hg!fuKamI{eVkY(|5F91T5|4 zdvc}Zw1WP80!aVQ9Hp84MgOCO1_s+WF*r1xqdI}xeC!ebTYHUtdo)dMM2Iqi@q4Of57b2Zma1so`d`)`SJ@R0r3mytz6c&U zbcels=u2V~5C4E-1-ac0dt#0dyfn}7{a5#J1 zo5$1XcH}_p3(gIEdb}0niJ|KjRS}$fo)M+o%(RMASE)+)mu&Zxms;M0 zbgD#z9o90nV{akb+}Yce^^(!I7T|*8z;K8d!o_r3dCX_cIJnIJA9IQGdCAQDr1z8F zfnE67{LY?%-OW4T;EDNm|8on8gDKd}6Ky1kq#*uJ0ywm+6d;p?uRE8nz*OHFK|}JKM9XyWsKF+WXcnP!|=tM4eaYD$;HJ%fEN1 zmZ5LoI^F0{!sUNW{Q1HSAym`5To6rG?j%i^!cu zyu5;p609~8lVd5e6GasUMHJhLtv8Ufbqc9#nsl`&ev>9kCetg)0_0FG!pWOfk=yYW zN{QmwjpPezM93!(GO`?LR4Xw#!O4dd8C9CeaYKHEJjg;`TpExEX`liL+rgXsYe3G# O;(lO^n#4DJAN@Cd>Y@Sw diff --git a/init.org b/init.org index 08d5ca4..c95fcfd 100644 --- a/init.org +++ b/init.org @@ -83,10 +83,12 @@ ivy-hydra jabber json-mode + ledger-mode magit markdown-mode material-theme multiple-cursors + org-bullets ox-reveal poporg projectile @@ -111,10 +113,8 @@ (package-install p))) #+END_SRC ** Server - #+BEGIN_SRC emacs-lisp :results silent :tangle no - (require 'edit-server) - - (edit-server-start) + #+BEGIN_SRC emacs-lisp :results silent :tangle yes + (server-start) #+END_SRC ** Better Defaults #+BEGIN_SRC emacs-lisp :results silent @@ -163,8 +163,7 @@ (interactive) (/ (- (x-display-pixel-width) (window-px-width)) 2)) - - ;; (add-to-list 'default-frame-alist (cons 'top 0)) + ;; (add-to-list 'default-frame-alist (cons 'top 0)) ;; (add-to-list 'default-frame-alist (cons 'left 1000)) #+END_SRC ** Enable Disabled Commands @@ -192,16 +191,19 @@ ;; Content is not centered by default. To center, set (setq dashboard-center-content t) - ;; To disable shortcut "jump" indicators for each section, set + ;; To enable shortcut "jump" indicators for each section, set (setq dashboard-show-shortcuts t) (setq show-week-agenda-p t) - - (setq dashboard-items '((recents . 5) + (setq dashboard-org-agenda-categories '("work" "tasks")) + (setq dashboard-items '((recents . 10) (bookmarks . 5) (projects . 5) - (agenda . 5) - (registers . 5))) + ;; (agenda . 5) + ;; (registers . 5) + )) + + (add-to-list 'dashboard-items '(agenda) t) #+END_SRC ** Basic Customization #+BEGIN_SRC emacs-lisp :results silent @@ -218,6 +220,15 @@ (tool-bar-mode 0) (setq auth-sources '("~/.authinfo.gpg")) (set-default 'truncate-lines t) + (setq fill-column 80) + + ;; (add-hook 'text-mode-hook + ;; (lambda () + ;; (when (y-or-n-p "Auto Fill mode? ") + ;; (turn-on-auto-fill)))) + + (setq whitespace-style '(face empty tabs lines-tail trailing)) + (global-whitespace-mode t) ;; (load-theme 'doom-city-lights t) ;; (load-theme 'doom-dracula t) @@ -692,7 +703,13 @@ (define-key ivy-minibuffer-map (kbd "") 'ivy-alt-done) (define-key ivy-minibuffer-map (kbd "C-f") 'ivy-open-current-typed-path) #+END_SRC - +*** Ledger +#+BEGIN_SRC emacs-lisp :results silent +(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t) +(add-to-list 'load-path + (expand-file-name "/path/to/ledger/source/lisp/")) +(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode)) +#+END_SRC *** Magit #+BEGIN_SRC emacs-lisp :results silent (require 'magit) @@ -1342,6 +1359,7 @@ "a keymap of custom bindings.") (define-key custom-bindings (kbd "M-p") 'jump-to-previous-like-this) + (define-key custom-bindings (kbd "M-r") 'fill-paragraph) (define-key custom-bindings (kbd "M-n") 'jump-to-next-like-this) (define-key custom-bindings (kbd "M-") 'switch-to-next-buffer) (define-key custom-bindings (kbd "M-")'delete-backward-to-boundary) @@ -1362,6 +1380,7 @@ (define-key custom-bindings (kbd "C-x C-l j") 'jabber) (define-key custom-bindings (kbd "C-x C-l f") 'elfeed) (define-key custom-bindings (kbd "C-x C-l a") 'org-agenda) + (define-key custom-bindings (kbd "C-,") 'org-cycle-agenda-files) (define-key custom-bindings (kbd "C-x C-l c") 'calendar) (define-key custom-bindings (kbd "M-SPC") #'hyperspace) ;; (dolist (n (number-sequence 1 9)) @@ -1574,10 +1593,11 @@ (setq org-agenda-files '("~/Dropbox/Org/todo.org" - "~/Dropbox/Org/archive.org")) + "~/Dropbox/Org/archive.org" + "~/Dropbox/Org/diary/eaglecrk.org")) (setq org-refile-targets - '((nil :maxlevel . 1) - (org-agenda-files :maxlevel . 1))) + '((nil :maxlevel . 3) + (org-agenda-files :maxlevel . 3))) ;; (add-hook 'focus-in-hook ;; (lambda () (progn @@ -1594,10 +1614,12 @@ (defun my-org-confirm-babel-evaluate (lang _body) "Execute certain languages without confirming. - Takes LANG to allow and BODY to execute." + Takes LANG to allow and BODY to execute." (not (or (string= lang "js") (string= lang "restclient") (string= lang "emacs-lisp") + (string= lang "elisp") + (string= lang "sh") (string= lang "shell")))) (setq org-confirm-babel-evaluate #'my-org-confirm-babel-evaluate) (add-to-list 'org-structure-template-alist @@ -1612,6 +1634,32 @@ (list "r" (concat "#+BEGIN_SRC restclient :results raw\n" "\n" "#+END_SRC"))) + (setq org-directory "~/Dropbox/Org" + org-default-notes-file (concat org-directory "/todo.org") + org-startup-folded t + org-startup-indented t + org-startup-align-all-tables t + org-startup-with-inline-images t + org-startup-with-latex-preview t + org-log-done t + org-log-done-with-time t + org-log-into-drawer t + org-hide-leading-stars t + org-pretty-entities t + ) + + (require 'org-protocol) + (setq org-capture-templates + '(("t" "new task" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks") + "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n") + ("n" "new note" entry (file+headline org-default-notes-file "Notes") + "* %?\n%i\n") + ("l" "store link" entry (file+olp org-default-notes-file "Links" "Unfiled") + "* %a\n%?\n") + ("d" "store link w/drawer" entry (file+olp org-default-notes-file "Links" "Unfiled") + "* %?\n%l\n:COPIED_TEXT:\n %i\n:END:\n") + )) + (defun my-org-config () "Activate org and yas in 'org-mode' buffers." @@ -1638,10 +1686,6 @@ (require 'org-mu4e) ;;store link to message if in header view, not to header query (setq org-mu4e-link-query-in-headers-mode nil) - - (setq org-capture-templates - '(("t" "todo" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks") - "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n"))) #+END_SRC **** ElFeed #+BEGIN_SRC emacs-lisp :results silent @@ -1665,10 +1709,12 @@ #+END_SRC *** Org Headings #+BEGIN_SRC emacs-lisp :results silent - (set-face-attribute 'org-level-1 nil :height 1.5) - (set-face-attribute 'org-level-2 nil :height 1.2) - (set-face-attribute 'org-level-3 nil :height 1.1) - (set-face-attribute 'org-level-4 nil :height 1.1) + (add-hook 'org-mode-hook 'org-bullets-mode) + + (set-face-attribute 'org-level-1 nil :height 1.3) + (set-face-attribute 'org-level-2 nil :height 1.1) + (set-face-attribute 'org-level-3 nil :height 1.05) + (set-face-attribute 'org-level-4 nil :height 1.05) (set-face-attribute 'org-scheduled-today nil :height 1.0) (set-face-attribute 'org-agenda-date-today nil :height 1.1) ;; (set-face-attribute 'org-table nil :foreground "#008787")