1
0
mirror of https://github.com/Foltik/dotfiles synced 2024-11-24 04:22:50 -05:00

Add back org mode

This commit is contained in:
Jack Foltz 2019-02-10 11:55:11 -05:00
parent b80c3ea228
commit 4df609364f
No known key found for this signature in database
GPG Key ID: E7B502AB1576E6CD

View File

@ -462,18 +462,237 @@ active, the second when it's inactive.
(jf-apply-theme)
#+END_SRC
* Organization
** Capture Templates
All capture templates, from tasks to bookmarks.
*** Refile Targets
Goodize the refiling targets to allow refiling to arbitrary subtrees.
#+BEGIN_SRC emacs-lisp
(defun jf-org-capture-refile ()
(interactive)
(setq-local org-refile-targets '((nil :maxlevel . 5)))
(setq-local org-refile-use-outline-path t)
(org-refile))
#+END_SRC
*** Tasks
#+BEGIN_SRC emacs-lisp
(setq jf-org-capture-task-templates
'(("t" "Todo")
("tg" "General" entry
(file+headline "notes.org" "Todo")
"** TODO %^{todo}\nNotes: %?\n")
("tt" "General (Date)" entry
(file+olp+datetree "notes.org")
"*** TODO %^{todo}\nDue: %^t\nNotes: %?\n")
("tT" "General (Date+Time)" entry
(file+olp+datetree "notes.org")
"*** TODO %^{todo}\nDue: %^T\nNotes: %?\n")
("ts" "School (Date)" entry
(file+olp+datetree "notes.org")
"*** TODO %^{todo}\nDue: %^t\nClass: %^{class}\nNotes: %?\n")
("tS" "School (Date+Time)" entry
(file+olp+datetree "notes.org")
"*** TODO %^{todo}\nDue: %^T\nClass: %^{class}\nNotes: %?\n")))
#+END_SRC
*** Bookmarks
#+BEGIN_SRC emacs-lisp
(setq jf-org-capture-bookmark-templates
'(("b" "Bookmark" entry
(file+headline "links.org" "Unsorted Links")
"** [[%^{link}][%^{name}]]\nCreated: %U\nAbout: %^{description}%?\n")))
#+END_SRC
*** Personal
#+BEGIN_SRC emacs-lisp
(setq jf-org-capture-personal-templates
'(("j" "Journal")
("jj" "Journal Entry" entry
(file+olp+datetree "journal.org")
"**** Today's Events\n%?")
("jt" "Thoughts" entry
(file+headline "notes.org" "Thoughts")
"** %^{summary}\n%U\n%?")
("jd" "Dream Journal Entry" entry
(file+olp+datetree "dreams.org")
"**** Dream\n%?")))
#+END_SRC
*** Protocol
#+BEGIN_SRC emacs-lisp
(setq jf-org-capture-protocol-templates
'(("w" "Website" entry
(file+headline "sites.org" "Unsorted Sites")
"** [[%:link][%:description%?]]\nCreated: %U\nAbout: %^{description}%?\n%:initial")))
#+END_SRC
*** All
Tie it all together.
#+BEGIN_SRC emacs-lisp
(setq jf-org-capture-templates
(append
jf-org-capture-task-templates
jf-org-capture-personal-templates
jf-org-capture-bookmark-templates
jf-org-capture-protocol-templates))
#+END_SRC
** Structure Templates
Defines expansions with =<= followed by a string in org-mode.
*** Source Blocks
#+BEGIN_SRC emacs-lisp
(setq jf-org-source-structure-templates
'(("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")))
#+END_SRC
*** All
Tie it all together.
#+BEGIN_SRC emacs-lisp
(setq jf-org-structure-templates
(append
jf-org-source-structure-templates))
#+END_SRC
** Org-mode
Keep org-mode up to date straight from the cow's utters.
If the manual is not on your computer, it's [[https://orgmode.org/manual/][here]].
#+BEGIN_SRC emacs-lisp
(use-package org
:pin org
:mode ("\\.org\\'" . org-mode)
:hook ((org-mode . org-indent-mode)
(org-capture-mode . evil-insert-state))
:general
(jf-major-def
:keymaps 'org-mode-map
"e" 'org-export-dispatch
"a" 'org-attach)
(jf-org-def
"a" 'org-agenda
"c" 'org-capture
"l" 'org-store-link
"b" 'org-switchb
"r" 'jf-org-capture-refile)
:custom
(org-directory "~/Documents/org")
(org-agenda-files '("~/Documents/org/"))
(org-default-notes-file "notes.org")
(org-agenda-include-diary t)
(org-src-window-setup 'current-window "Edit source code in the current window")
(org-src-fontify-natively t "Highlight syntax in source blocks")
(org-latex-to-pdf-process '("latexmk -f pdf %f") "Use pdflatex for export")
(org-capture-templates jf-org-capture-templates)
(org-structure-template-alist (append org-structure-template-alist jf-org-structure-templates)))
#+END_SRC
** Pretty org-mode bullets
Make bullets look choice
#+BEGIN_SRC emacs-lisp
(use-package org-bullets
:hook (org-mode . org-bullets-mode))
#+END_SRC
* Communication
* Web
* Tools
** Fuzzy Matching
Most facilities are provided by [[https://github.com/abo-abo/swiper][Ivy]] and friends, which build on existing emacs commands.
*** Smex
While the actual smex command is not in use,
counsel-M-x will use it for sorting by usage.
#+BEGIN_SRC emacs-lisp
(use-package smex)
#+END_SRC
*** Ivy
#+BEGIN_SRC emacs-lisp
(use-package ivy
:init
(defun jf-kill-current-buffer ()
(interactive)
(kill-buffer (current-buffer)))
(defun jf-kill-all-buffers ()
(interactive)
(seq-do 'kill-buffer (buffer-list)))
:general
(jf-buffers-def
"b" 'ivy-switch-buffer
"v" 'ivy-push-view
"V" 'ivy-pop-view
"c" 'jf-kill-current-buffer
"C" 'jf-kill-all-buffers)
:custom
(ivy-use-virtual-buffers t)
(ivy-count-format "%d/%d"))
#+END_SRC
*** Counsel
A collection of ivy enhanced versions of common Emacs commands.
#+BEGIN_SRC emacs-lisp
(use-package counsel
:general
("M-x" 'counsel-M-x)
(jf-leader-def
:states 'normal
"x" 'counsel-M-x)
(jf-files-def
"f" 'counsel-find-file)
(jf-help-def
"a" 'counsel-apropos
"f" 'counsel-describe-function
"k" 'counsel-descbinds
"l" 'counsel-find-library
"s" 'counsel-info-lookup-symbol
"u" 'counsel-unicode-char
"v" 'counsel-describe-variable))
#+END_SRC
*** Swiper
An ivy-ified replacement for isearch.
#+BEGIN_SRC emacs-lisp
(use-package swiper
:after evil
:general
(:keymaps 'override
:states 'normal
"/" 'swiper
"n" 'evil-search-previous
"N" 'evil-search-next))
#+END_SRC
** Neotree
A cool toggleable directory structure sidebar.
It needs icon fonts, installed with =M-x all-the-icons-install-fonts=.
#+BEGIN_SRC emacs-lisp
(use-package all-the-icons)
(use-package neotree
:after all-the-icons
:general
(jf-apps-def
"t" 'neotree-toggle)
:custom
(neo-theme (if (display-graphic-p) 'icons 'arrow)))
#+END_SRC
** Ranger
Brings the glory of [[https://github.com/ralesi/ranger.el][Ranger]] to Emacs.
#+BEGIN_SRC emacs-lisp
(use-package ranger
:commands (ranger deer))
#+END_SRC
** Sunshine
Allows retrieving OpenWeatherMap forecasts in the minibuffer.
#+BEGIN_SRC emacs-lisp
(use-package sunshine
:commands sunshine-forecast
:general
(jf-apps-def
"w" #'sunshine-forecast)
:custom
(sunshine-location "New York, US")
(sunshine-appid "7caf100277f14845e7f354c6590a09cb")
(sunshine-show-icons t))
#+END_SRC
* Programming
** Formatting
*** Indentation
Set some *sane* defaults
#+BEGIN_SRC emacs-lisp
(setq foltz-tab-width 4)
(setq-default python-indent-offset foltz-tab-width)
(setq-default evil-shift-width foltz-tab-width)
(setq-default c-basic-offset foltz-tab-width)
(setq jf-tab-width 4)
(setq-default python-indent-offset jf-tab-width)
(setq-default evil-shift-width jf-tab-width)
(setq-default c-basic-offset jf-tab-width)
; Disable annoying electric indent of previous lines
(setq-default electric-indent-inhibit t)
; Eat the whole tab when I press backspace