The goal of my config is to keep the configuration distraction free, and focus on functionality over looks.
These are some items that are required outside of the normal DOOM EMACS installation, before you can use this config. The idea here is to keep this minimum so as much of this is close to regular DOOM EMACS.
- SQLITE3 Installation: You will need to install sqlite3, typicalled installed
via your package manager as
sudo pacman -S sqlite3
- I use a few different monospace fonts: Myrica, Input, DejaVu, FiraCode, IBM Plex Mono and Roboto Mono.
These are some of the deafult settings that I like to get out of the way. This covers some basic things like my user profile name, email address and what information I like to dispaly in the modeline.
TODO: I need to change this heading to “Hardened settings” and put in here things that typically never change.
(setq user-full-name "KIYOSE izumu"
user-mail-address "[email protected]")
(display-time-mode 1)
(setq display-time-day-and-date t)
Next up, sometimes file changes are made outside of emacs, so if we detect changes I would like emacs to refert the buffer with those new changes. Also I like to have a bit more control in my undo actions and step through each change.
(global-auto-revert-mode 1)
(setq undo-limit 80000000
evil-want-fine-undo t
auto-save-default nil
inhibit-compacting-font-caches t)
(whitespace-mode -1)
(setq-default
delete-by-moving-to-trash t
tab-width 4
uniquify-buffer-name-style 'forward
window-combination-resize t
x-stretch-cursor nil)
Additional key bindings
(bind-key "<f6>" #'link-hint-copy-link)
(bind-key "<f12>" #'org-cycle-agenda-files)
(bind-key "M-." #'completion-at-point)
(map! :after org
:map org-mode-map
:leader
:prefix ("z" . "nicks functions")
:desc "completion at point" "c" #'completion-at-point
:desc "Review Fleeting Notes" "r" #'nm/review-fleeting-notes
:desc "Find File in ORGMODE" "f" #'nm/find-files-orgmode
:desc" File project" "p" #'nm/find-projects
:prefix ("s" . "+search")
:desc "Occur" "." #'occur
:desc "Outline" "o" #'counsel-outline
:desc "Counsel ripgrep" "d" #'counsel-rg
:desc "Swiper All" "@" #'swiper-all
:prefix ("l" . "+links")
"." #'org-next-link
"," #'org-previous-link
"o" #'org-open-at-point
"g" #'eos/org-add-ids-to-headlines-in-file)
(map! :after org-agenda
:map org-agenda-mode-map
:localleader
:desc "Filter" "f" #'org-agenda-filter)
(defun nm/review-fleeting-notes ()
(interactive)
(nm/find-file-cleaned-up "~/projects/orgmode/fleeting/"))
(defun nm/find-files-orgmode ()
(interactive)
(nm/find-file-cleaned-up org-directory))
(defun nm/find-projects ()
(interactive)
(nm/find-file-cleaned-up "~/projects/orgmode/gtd/projects/"))
If I ever use terminal mode, these are some settings i’ll want to set to increase the quality of life when working from my terminal window.
(when (equal (window-system) nil)
(and
(bind-key "C-<down>" #'+org/insert-item-below)
(setq doom-theme 'doom-xcode)
(setq doom-font (font-spec :family "Roboto Mono" :size 20))))
Now I add my default folders and files that I want emacs/org-mode to use:
(setq diary-file "~/projects/orgmode/diary.org")
(setq org-directory "~/projects/orgmode/")
(setq projectile-project-search-path "~/projects/")
Next we configure popup-rules and default fonts.
(after! org (set-popup-rule! "^\\*lsp-help" :side 'bottom :size .30 :select t)
(set-popup-rule! "*helm*" :side 'right :size .30 :select t)
(set-popup-rule! "*Org QL View:*" :side 'right :size .25 :select t)
(set-popup-rule! "*Org Note*" :side 'bottom :size .35 :select t)
(set-popup-rule! "*Capture*" :side 'left :size .30 :select t)
(set-popup-rule! "*Python:ob-ipython-py*" :side 'right :size .25 :select t)
(set-popup-rule! "*eww*" :side 'right :size .30 :select t)
(set-popup-rule! "*CAPTURE-*" :side 'left :size .30 :select t))
;(set-popup-rule! "*Org Agenda*" :side 'right :size .35 :select t))
(setq inhibit-compacting-font-caches t)
(setq doom-font (font-spec :family "MyricaM M" :size 20 :weight 'light)
doom-big-font (font-spec :family "MyricaM M" :size 22 :weight 'light)
doom-variable-pitch-font (font-spec :family "MyricaM M" :weight 'regular :size 24)
doom-serif-font (font-spec :family "MyricaM M" :weight 'light))
(when (equal window-system 'x) (toggle-frame-fullscreen))
(after! org
(custom-set-faces!
'(org-level-1 :height 1.15 :inherit outline-1)
'(org-level-2 :height 1.13 :inherit outline-2)
'(org-level-3 :height 1.11 :inherit outline-3)
'(org-level-4 :height 1.09 :inherit outline-4)
'(org-level-5 :height 1.07 :inherit outline-5)
'(org-level-6 :height 1.05 :inherit outline-6)
'(org-level-7 :height 1.03 :inherit outline-7)
'(org-level-8 :height 1.01 :inherit outline-8)))
(after! org
(custom-set-faces!
'(org-document-title :height 1.15)))
(when (equal system-type 'gnu/linux)
(setq doom-font (font-spec :family "JetBrains Mono" :size 20 :weight 'normal)
doom-big-font (font-spec :family "JetBrains Mono" :size 22 :weight 'normal)))
(when (equal system-type 'windows-nt)
(setq doom-font (font-spec :family "InputMono" :size 18)
doom-big-font (font-spec :family "InputMono" :size 22)))
Load secrets from here…
(let ((secrets (expand-file-name "secrets.el" doom-private-dir)))
(when (file-exists-p secrets)
(load secrets)))