mirror of
https://github.com/alrayyes/dotfiles/
synced 2023-11-14 15:56:30 +00:00
300 lines
12 KiB
Org Mode
300 lines
12 KiB
Org Mode
* Table of Contents :TOC_3:noexport:
|
|
- [[#general-settings][General settings]]
|
|
- [[#variable-font-sizes-depending-on-screen-width-set-font-to-jetbrains-mono][Variable font sizes depending on screen width. Set font to JetBrains Mono]]
|
|
- [[#theme-is-set-to-doom-molokai-from-doom-themes][Theme is set to doom-molokai from doom-themes]]
|
|
- [[#fetch-password-from-authinfo][Fetch password from authinfo]]
|
|
- [[#set-relative-line-numbers][Set relative line numbers]]
|
|
- [[#projectile][Projectile]]
|
|
- [[#set-default-paths-projectile-should-search][Set default paths projectile should search]]
|
|
- [[#circe][Circe]]
|
|
- [[#connect-to-znc-passwords-are-gotten-from-password-store][Connect to ZNC. Passwords are gotten from Password Store.]]
|
|
- [[#deft][Deft]]
|
|
- [[#deft-should-use-org-roam-directory][Deft should use org-roam directory]]
|
|
- [[#org-mode][Org mode]]
|
|
- [[#general-settings-1][General settings]]
|
|
- [[#when-moving-entries-up-and-down-in-the-buffer-use-j-and-k-instead-of--and-][When moving entries up and down in the buffer use `j` and `k` instead of `↑` and `↓`]]
|
|
- [[#auto-save-org-mode-files][Auto save org-mode files]]
|
|
- [[#org-protocol-capture-html][org-protocol-capture-html]]
|
|
- [[#require-package][Require package]]
|
|
- [[#org-capture-templates][org-capture-templates]]
|
|
- [[#capture-web-data-for-org-protocol-capture-html][Capture web data for org-protocol-capture-html]]
|
|
- [[#org-roam][org-roam]]
|
|
- [[#set-directory][Set directory]]
|
|
- [[#set-org-roam-viewer][Set org-roam-viewer]]
|
|
- [[#org-journal][org-journal]]
|
|
- [[#get-org-journal-to-work-nicely-with-org-roam][Get org-journal to work nicely with org-roam]]
|
|
- [[#publishing][Publishing]]
|
|
- [[#mu4e][mu4e]]
|
|
- [[#setup-mu4e-with-multiple-profiles][Setup mu4e with multiple profiles]]
|
|
- [[#elfeed][Elfeed]]
|
|
- [[#elfeed-and-elfeed-protocol-to-read-feeds][elfeed and elfeed-protocol to read feeds.]]
|
|
- [[#elfeed-org][elfeed-org]]
|
|
- [[#elfeed-goodies][elfeed-goodies]]
|
|
- [[#spelling][Spelling]]
|
|
- [[#set-dictionaries-for-languages-i-use][Set dictionaries for languages I use]]
|
|
- [[#markdown][Markdown]]
|
|
- [[#open-mdx-files-in-markdown-mode][Open mdx files in markdown-mode]]
|
|
|
|
* General settings
|
|
** Variable font sizes depending on screen width. Set font to [[https://www.jetbrains.com/lp/mono/][JetBrains Mono]]
|
|
#+BEGIN_SRC emacs-lisp
|
|
(when window-system
|
|
(if (> (x-display-pixel-width) 2560)
|
|
(setq doom-font (font-spec :family "JetBrains Mono" :size 12))
|
|
(setq doom-font (font-spec :family "JetBrains Mono" :size 16))))
|
|
|
|
#+END_SRC
|
|
** Theme is set to doom-molokai from [[https://github.com/hlissner/emacs-doom-themes][doom-themes]]
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq doom-theme 'doom-molokai)
|
|
#+END_SRC
|
|
** Fetch password from authinfo
|
|
#+BEGIN_SRC emacs-lisp
|
|
(defun my-fetch-password (&rest params)
|
|
(require 'auth-source)
|
|
(let ((match (car (apply #'auth-source-search params))))
|
|
(if match
|
|
(let ((secret (plist-get match :secret)))
|
|
(if (functionp secret)
|
|
(funcall secret)
|
|
secret))
|
|
(error "Password not found for %S" params))))
|
|
#+END_SRC
|
|
** Set relative line numbers
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq display-line-numbers-type `relative)
|
|
#+END_SRC
|
|
* [[https://www.projectile.mx/en/latest/][Projectile]]
|
|
** Set default paths [[https://www.projectile.mx/en/latest/][projectile]] should search
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! projectile
|
|
:defer t
|
|
:config
|
|
(setq projectile-project-search-path '("~/devel/personal/" "~/devel/andthensome/" "~/Documents/" "~/dotfiles" "~/private-dotfiles", "~/devel/slip-box/"))) ; Default paths
|
|
#+END_SRC
|
|
* [[https://github.com/jorgenschaefer/circe][Circe]]
|
|
** Connect to [[https://wiki.znc.in/ZNC][ZNC]]. Passwords are gotten from [[https://www.passwordstore.org/][Password Store]].
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! circe
|
|
:defer t
|
|
:config
|
|
(setq circe-network-options
|
|
`(
|
|
("znc-freenode"
|
|
:host "irc.higherlearning.eu"
|
|
:port "5000"
|
|
:tls t ;; Enable tls
|
|
:user "l0rd/freenode"
|
|
:server-buffer-name "⇄ Freenode (ZNC)"
|
|
:pass (lambda (&rest _) (+pass-get-secret "controlpanel/irc.higherlearning.eu")) ;; Get password from pass
|
|
:channels ("#emacs"))
|
|
("znc-snoonet"
|
|
:host "irc.higherlearning.eu"
|
|
:port "5000"
|
|
:tls t
|
|
:user "l0rd/snoonet"
|
|
:server-buffer-name "⇄ Snoonet (ZNC)"
|
|
:pass (lambda (&rest _) (+pass-get-secret "controlpanel/irc.higherlearning.eu"))
|
|
:channels ("#islam"))
|
|
))
|
|
)
|
|
(add-hook 'circe-channel-mode-hook 'enable-lui-autopaste)
|
|
#+END_SRC
|
|
|
|
** [[https://jblevins.org/projects/deft/][Deft]]
|
|
*** Deft should use org-roam directory
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq deft-directory "~/Documents/slip-box")
|
|
#+END_SRC
|
|
* [[https://orgmode.org/][Org mode]]
|
|
** General settings
|
|
*** When moving entries up and down in the buffer use `j` and `k` instead of `↑` and `↓`
|
|
#+BEGIN_SRC emacs-lisp
|
|
(after! org
|
|
(map! :map org-mode-map
|
|
:n "M-j" #'org-metadown
|
|
:n "M-k" #'org-metaup)
|
|
)
|
|
#+END_SRC
|
|
*** Auto save org-mode files
|
|
#+BEGIN_SRC emacs-lisp
|
|
(add-hook 'auto-save-hook 'org-save-all-org-buffers)
|
|
#+END_SRC
|
|
|
|
- Set default org directories
|
|
- When task is set to `DONE` [[https://orgmode.org/manual/Closing-items.html][add timestamp and give the opportunity to type in a note]]
|
|
- Show images in buffers as default
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq org-directory "~/Documents/org"
|
|
org-agenda-files (directory-files-recursively "~/Documents/org/" "\.org$")
|
|
org-log-done 'note
|
|
org-startup-with-inline-images t)
|
|
#+END_SRC
|
|
** [[https://github.com/alphapapa/org-protocol-capture-html][org-protocol-capture-html]]
|
|
*** Require package
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! org-protocol-capture-html :defer t)
|
|
#+END_SRC
|
|
** org-capture-templates
|
|
*** Capture web data for [[https://github.com/alphapapa/org-protocol-capture-html][org-protocol-capture-html]]
|
|
#+BEGIN_SRC emacs-lisp
|
|
(after! org
|
|
(add-to-list 'org-capture-templates '("w" "Web site" entry
|
|
(file+olp "~/Documents/org/web.org" "Web")
|
|
"* %c\n%U %?%:initial"))
|
|
)
|
|
#+END_SRC
|
|
** [[https://github.com/org-roam/org-roam][org-roam]]
|
|
*** Set directory
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq org-roam-directory "~/Documents/slip-box")
|
|
#+END_SRC
|
|
*** Set org-roam-viewer
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq org-roam-graph-viewer "~/.local/bin/viewDotfile")
|
|
#+END_SRC
|
|
** [[https://github.com/bastibe/org-journal][org-journal]]
|
|
*** Get org-journal to work nicely with org-roam
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq org-journal-dir "~/Documents/slip-box")
|
|
(setq org-journal-date-prefix "#+title: ")
|
|
(setq org-journal-file-format "%Y-%m-%d.org")
|
|
(setq org-journal-date-format "%A, %d %B %Y")
|
|
#+END_SRC
|
|
** Publishing
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq org-publish-project-alist
|
|
'(("wiki"
|
|
:base-directory "~/Documents/slip-box/"
|
|
:publishing-directory "~/devel/personal/Ryankes.eu/wiki/content/"
|
|
:publishing-function org-pandoc-export-to-markdown_mmd
|
|
:select-tags ("export-blog")
|
|
)))
|
|
#+END_SRC
|
|
* [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]]
|
|
** Setup mu4e with multiple profiles
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! mu4e
|
|
:defer t
|
|
:config
|
|
(setq sendmail-program "/usr/bin/msmtp"
|
|
send-mail-function
|
|
'smtpmail-send-it
|
|
message-sendmail-f-is-evil
|
|
t
|
|
message-sendmail-extra-arguments
|
|
'("--read-envelope-from")
|
|
message-send-mail-function
|
|
'message-send-mail-with-sendmail)
|
|
(setq mu4e-maildirs-extension-custom-list '("/ryankes/INBOX" "/ryankes/Sent" "/ryankes/Drafts"
|
|
"/ryankes/Archive" "/ryankes/Archive.quicknet"
|
|
"/gmail/INBOX" "/gmail/Sent" "/gmail/Drafts"
|
|
"/gmail/Archive" "/andthensome/INBOX" "/andthensome/Sent"
|
|
"/andthensome/Drafts" "/andthensome/Archive")))
|
|
(setq mu4e-maildir "~/.local/share/mail"
|
|
mu4e-maildir-shortcuts
|
|
'(("/ryankes/INBOX" . ?r)
|
|
("/gmail/INBOX" . ?g)
|
|
("/andthensome/INBOX" . ?a))
|
|
mu4e-mu-home
|
|
"~/.cache/mu"
|
|
mu4e-update-interval
|
|
300
|
|
mu4e-get-mail-command
|
|
"mailsync"
|
|
mu4e-enable-mode-line
|
|
t
|
|
mu4e-use-fancy-chars
|
|
t
|
|
mu4e-context-policy
|
|
'pick-first
|
|
mu4e-attachment-dir
|
|
"~/Downloads/")
|
|
(after! mu4e
|
|
;; load package to be able to capture emails for GTD
|
|
(require 'org-mu4e)
|
|
|
|
(setq mu4e-contexts
|
|
`(,(make-mu4e-context :name "Ryankes"
|
|
:match-func (lambda (msg)
|
|
(when msg
|
|
(string-match-p "^/ryankes"
|
|
(mu4e-message-field msg :maildir)))):vars'((user-mail-address . "ryan@ryankes.eu")
|
|
(user-full-name . "Ryan")
|
|
(mu4e-sent-folder . "/ryankes/Sent")
|
|
(mu4e-drafts-folder . "/ryankes/Drafts")
|
|
(mu4e-trash-folder . "/ryankes/Trash")
|
|
(mu4e-refile-folder . "/ryankes/Archive")))
|
|
,(make-mu4e-context :name "Gmail"
|
|
:match-func (lambda (msg)
|
|
(when msg
|
|
(string-match-p "^/gmail"
|
|
(mu4e-message-field msg :maildir)))):vars'((user-mail-address . "alrayyes@gmail.com")
|
|
(user-full-name . "Ryan")
|
|
(mu4e-sent-folder . "/gmail/Sent")
|
|
(mu4e-drafts-folder . "/gmail/Drafts")
|
|
(mu4e-trash-folder . "/gmail/Trash")
|
|
(mu4e-refile-folder . "/gmail/Archive")))
|
|
,(make-mu4e-context :name "Andthensome"
|
|
:match-func (lambda (msg)
|
|
(when msg
|
|
(string-match-p "^/andthensome"
|
|
(mu4e-message-field msg :maildir)))):vars'((user-mail-address . "ryan@andthensome.nl")
|
|
(user-full-name . "Ryan Kes")
|
|
(mu4e-sent-folder . "/andthensome/Sent")
|
|
(mu4e-drafts-folder . "/andthensome/Drafts")
|
|
(mu4e-trash-folder . "/andthensome/Trash")
|
|
(mu4e-refile-folder . "/andthensome/Archive"))))))
|
|
(add-hook 'mu4e-view-mode-hook 'visual-line-mode)
|
|
#+END_SRC
|
|
* [[https://github.com/skeeto/elfeed][Elfeed]]
|
|
** elfeed and [[https://github.com/fasheng/elfeed-protocol][elfeed-protocol]] to read feeds.
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! elfeed
|
|
:defer t
|
|
:config
|
|
(setq elfeed-use-curl t)
|
|
(elfeed-set-timeout 36000)
|
|
(setq elfeed-protocol-ttrss-maxsize 200) ; bigger than 200 is invalid
|
|
(elfeed-protocol-enable)
|
|
(defadvice elfeed (after configure-elfeed-feeds activate)
|
|
"Make elfeed-org autotags rules works with elfeed-protocol."
|
|
(defvar elfeed-protocol-tags)
|
|
(setq elfeed-protocol-tags elfeed-feeds)
|
|
(setq elfeed-feeds (list
|
|
(list "ttrss+https://alrayyes@rss.higherlearning.eu"
|
|
:password (password-store-get "emacs/rss")
|
|
:autotags elfeed-protocol-tags)))))
|
|
#+END_SRC
|
|
** [[https://github.com/remyhonig/elfeed-org][elfeed-org]]
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! elfeed-org
|
|
:defer t
|
|
:config
|
|
(setq rmh-elfeed-org-files '("~/Documents/org/elfeed.org"))
|
|
)
|
|
#+END_SRC
|
|
** [[https://github.com/algernon/elfeed-goodies][elfeed-goodies]]
|
|
#+BEGIN_SRC emacs-lisp
|
|
(use-package! elfeed-goodies
|
|
:defer t
|
|
:config
|
|
(elfeed-goodies/setup))
|
|
#+END_SRC
|
|
* Spelling
|
|
** Set dictionaries for languages I use
|
|
#+BEGIN_SRC emacs-lisp
|
|
(with-eval-after-load "ispell"
|
|
(setq ispell-program-name "hunspell")
|
|
;; ispell-set-spellchecker-params has to be called
|
|
;; before ispell-hunspell-add-multi-dic will work
|
|
(ispell-set-spellchecker-params)
|
|
(ispell-hunspell-add-multi-dic "en_GB,nl_NL,en_US")
|
|
(setq ispell-dictionary "en_GB,nl_NL,en_US"))
|
|
#+END_SRC
|
|
* Markdown
|
|
** Open mdx files in markdown-mode
|
|
#+BEGIN_SRC emacs-lisp
|
|
(add-to-list 'auto-mode-alist '("\\.mdx\\'" . markdown-mode))
|
|
#+END_SRC
|