(setq user-full-name "Francis Kore" user-mail-address "me@korefrancis.com") (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light) doom-variable-pitch-font (font-spec :family "sans" :size 13)) (setq doom-theme 'doom-one) (setq org-directory "~/org/") (setq deft-directory "~/org/deft") (setq org-superstar-headline-bullets-list '("⁖" "◉" "○" "✸" "✿")) ;; Startup folded (setq org-startup-folded 'overview) (setq org-todo-keywords '((sequence "TODO(t)" "PROJ(p)" "NEXT(n)" "STRT(s)" "WAIT(w)" "HOLD(h)" "IDEA(i)" "|" "DONE(d)" "KILL(k)") (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") (sequence "|" "OKAY(o)" "YES(y)" "NO(n)"))) (setq display-line-numbers-type t) (setq org-emphasis-alist '(("*" (bold :slant italic :weight black )) ;; this make bold both italic and bold, but not color change ("/" (italic :foreground "dark salmon" )) ;; italic text, the text will be "dark salmon" ("_" underline :foreground "cyan" ) ;; underlined text, color is "cyan" ("=" (:background "snow1" :foreground "deep slate blue" )) ;; background of text is "snow1" and text is "deep slate blue" ("~" (:background "PaleGreen1" :foreground "dim gray" )) ("+" (:strike-through nil :foreground "dark orange" )))) (setq org-hide-emphasis-markers t) ;; hides the emphasis markers (setq org-roam-server-host "127.0.0.1" org-roam-server-port 8080 org-roam-server-authenticate nil org-roam-server-export-inline-images t org-roam-server-serve-files nil org-roam-server-served-file-extensions '("pdf" "mp4" "ogv") org-roam-server-network-poll t org-roam-server-network-arrows nil org-roam-server-network-label-truncate t org-roam-server-network-label-truncate-length 60 org-roam-server-network-label-wrap-length 20) (setq org-fancy-priorities-list '((?A . "❗") (?B . "⬆") (?C . "⬇") (?D . "☕") (?1 . "⚡") (?2 . "⮬") (?3 . "⮮") (?4 . "☕") (?I . "Important"))) (after! (:all org pdf-view)) (setq org-noter-notes-window-location 'other-frame org-noter-always-create-frame nil org-noter-hide-other nil org-noter-notes-search-path (list org-directory)) (setq org-log-done t) (use-package! org-super-agenda :init (setq org-agenda-skip-scheduled-if-done t org-agenda-skip-deadline-if-done t org-agenda-include-deadlines t org-agenda-block-separator nil org-agenda-tags-column 100 ;; from testing this seems to be a good value org-agenda-compact-blocks t org-agenda-start-day nil ;; i.e. today org-agenda-span 1 org-agenda-start-on-weekday nil) (setq org-super-agenda-groups '((:name "Next Items" :time-grid t :tag ("NEXT" "outbox")) (:name "Important" :priority "A") (:name "Quick Picks" :effort< "0:30") (:priority<= "B" :scheduled future :order 1))) :config (org-super-agenda-mode)) ;(setq org-super-agenda-groups '((:name "Today" ; :time-grid t ; :scheduled today) ; (:name "Due Today" ; :deadline today) ; (:name "Important" ; :priority "❗") ; (:name "Overdue" ; :deadline past) ; (:name "Due Soon" ; :deadline future) ; (:name "Big Outcomes" ; :tag "bo"))) (setq ispell-program-name "aspell") (setq ispell-extra-args '("--sug-mode=ultra" "--lang=en_US")) (setq spell-fu-directory "~/.config/+STORE/dictionary") ;; Please create this directory manually. (setq ispell-personal-dictionary "~/.config/+STORE/dictionary/.pws") (setq writeroom-fullscreen-effect t) (setq global-whitespace-mode t whitespace-style '(face tabs tab-mark spaces space-mark trailing lines-tail newline newline-mark) whitespace-display-mappings '( (space-mark ?\ [?\u00B7] [?.]) (space-mark ?\xA0 [?\u00A4] [?_]) (newline-mark ?\n [?¬ ?\n]) (tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t]))) (global-whitespace-mode +1) (setq +zen-text-scale 0.6) (after! writeroom-mode (add-hook 'writeroom-mode-hook (defun +zen-cleaner-org () (when (and (eq major-mode 'org-mode) writeroom-mode) (setq-local -display-line-numbers display-line-numbers display-line-numbers nil) (setq-local -org-indent-mode org-indent-mode) (org-indent-mode -1) (when (featurep 'org-superstar) (setq-local -org-superstar-headline-bullets-list org-superstar-headline-bullets-list ;; org-superstar-headline-bullets-list '("🙐" "🙑" "🙒" "🙓" "🙔" "🙕" "🙖" "🙗") org-superstar-headline-bullets-list '("🙘" "🙙" "🙚" "🙛") -org-superstar-remove-leading-stars org-superstar-remove-leading-stars org-superstar-remove-leading-stars t) (org-superstar-restart))))) (add-hook 'writeroom-mode-disable-hook (defun +zen-dirty-org () (when (eq major-mode 'org-mode) (setq-local display-line-numbers -display-line-numbers) (when -org-indent-mode (org-indent-mode 1)) (when (featurep 'org-superstar) (setq-local org-superstar-headline-bullets-list -org-superstar-headline-bullets-list org-superstar-remove-leading-stars -org-superstar-remove-leading-stars) (org-superstar-restart)))))) (use-package! nov :mode ("\\.epub\\'" . nov-mode) :config (map! :map nov-mode-map :n "RET" #'nov-scroll-up) (defun doom-modeline-segment--nov-info () (concat " " (propertize (cdr (assoc 'creator nov-metadata)) 'face 'doom-modeline-project-parent-dir) " " (cdr (assoc 'title nov-metadata)) " " (propertize (format "%d/%d" (1+ nov-documents-index) (length nov-documents)) 'face 'doom-modeline-info))) (advice-add 'nov-render-title :override #'ignore) (defun +nov-mode-setup () (face-remap-add-relative 'variable-pitch :family "Merriweather" :height 1.4 :width 'semi-expanded) (face-remap-add-relative 'default :height 1.3) (setq-local line-spacing 0.2 next-screen-context-lines 4 shr-use-colors nil) (require 'visual-fill-column nil t) (setq-local visual-fill-column-center-text t visual-fill-column-width 80 nov-text-width 80) (visual-fill-column-mode 1) (hl-line-mode -1) (add-to-list '+lookup-definition-functions #'+lookup/dictionary-definition) (setq-local mode-line-format `((:eval (doom-modeline-segment--workspace-name)) (:eval (doom-modeline-segment--window-number)) (:eval (doom-modeline-segment--nov-info)) ,(propertize " %P " 'face 'doom-modeline-buffer-minor-mode) ,(propertize " " 'face (if (doom-modeline--active) 'mode-line 'mode-line-inactive) 'display `((space :align-to (- (+ right right-fringe right-margin) ,(* (let ((width (doom-modeline--font-width))) (or (and (= width 1) 1) (/ width (frame-char-width) 1.0))) (string-width (format-mode-line (cons "" '(:eval (doom-modeline-segment--major-mode)))))))))) (:eval (doom-modeline-segment--major-mode))))) (add-hook 'nov-mode-hook #'+nov-mode-setup)) (after! treemacs (defvar treemacs-file-ignore-extensions '() "File extension which `treemacs-ignore-filter' will ensure are ignored") (defvar treemacs-file-ignore-globs '() "Globs which will are transformed to `treemacs-file-ignore-regexps' which `treemacs-ignore-filter' will ensure are ignored") (defvar treemacs-file-ignore-regexps '() "RegExps to be tested to ignore files, generated from `treeemacs-file-ignore-globs'") (defun treemacs-file-ignore-generate-regexps () "Generate `treemacs-file-ignore-regexps' from `treemacs-file-ignore-globs'" (setq treemacs-file-ignore-regexps (mapcar 'dired-glob-regexp treemacs-file-ignore-globs))) (if (equal treemacs-file-ignore-globs '()) nil (treemacs-file-ignore-generate-regexps)) (defun treemacs-ignore-filter (file full-path) "Ignore files specified by `treemacs-file-ignore-extensions', and `treemacs-file-ignore-regexps'" (or (member (file-name-extension file) treemacs-file-ignore-extensions) (let ((ignore-file nil)) (dolist (regexp treemacs-file-ignore-regexps ignore-file) (setq ignore-file (or ignore-file (if (string-match-p regexp full-path) t nil))))))) (add-to-list 'treemacs-ignored-file-predicates #'treemacs-ignore-filter)) (setq treemacs-file-ignore-extensions '(;; LaTeX "aux" "ptc" "fdb_latexmk" "fls" "synctex.gz" "toc" ;; LaTeX - glossary "glg" "glo" "gls" "glsdefs" "ist" "acn" "acr" "alg" ;; LaTeX - pgfplots "mw" ;; LaTeX - pdfx "pdfa.xmpi" )) (setq treemacs-file-ignore-globs '(;; LaTeX "*/_minted-*" ;; AucTeX "*/.auctex-auto" "*/_region_.log" "*/_region_.tex")) (map! :leader :desc "Change to spray mode" "" #'spray-mode) (use-package! mixed-pitch :hook (org-mode . mixed-pitch-mode) :config (setq mixed-pitch-set-heigth t) (set-face-attribute 'variable-pitch nil :height 180))