Commit da839e06 authored by Tim van Deurzen's avatar Tim van Deurzen

Mostly configured doom-emacs config.

parent 2e937adf
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets.
(setq user-full-name "Tim van Deurzen"
user-mail-address "tim@kompiler.org")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
;;
;; + `doom-font'
;; + `doom-variable-pitch-font'
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;;
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
;; font string. You generally only need these two:
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
;;; UI
(setq doom-theme 'doom-one)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/org/")
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type 'relative)
(setq autosave-defaults t
make-backup-files t)
(require 'which-key)
(setq which-key-idle-delay 0.1)
(setq confirm-kill-emacs nil)
(use-package! evil-colemak-basics
:after evil
:hook (after-init . global-evil-colemak-basics-mode)
:config
(setq evil-colemak-basics-rotate-t-f-j t))
(after! evil (global-evil-colemak-basics-mode t))
;;; ORG
(after! org
(setq org-directory "~/org/")
(setq org-todo-keywords
'((sequence "TODO(t)" "NEXT(n!)" "|" "DONE(d!)")
(sequence "WAITING(w@/!)" "MAYBE(m)" "SOMEDAY(s)" "|" "CANCELED(c@)")))
(setq org-hide-emphasis-markers t
org-startup-folded 'fold
org-pretty-entities t
org-time-clocksum-format (quote (:hours "%d" :require-hours t :minutes ":%02d" :require-minutes t))
org-duration-format (quote h:mm)
org-agenda-format-date (lambda (date) (concat "\n"
(make-string (window-width) 9472)
"\n"
(org-agenda-format-date-aligned date)))
org-log-done 'time
org-log-into-drawer t
org-agenda-start-with-log-mode t
org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-if-done t
org-clock-rounding-minutes 5
org-clock-persist t
org-clock-in-resume t
org-clock-persist-query-resume nil
org-clock-into-drawer t
org-clock-out-remove-zero-time-clocks t
org-clock-report-include-clocking-task t
org-habit-show-habits t
org-habit-following-days 7
org-habit-preceding-days 21
org-habit-show-habits-only-for-today t
org-enforce-todo-dependencies t
org-enforce-todo-checkbox-dependencies t
alert-default-style 'libnotify
org-refile-use-outline-path 'full-file-path
org-outline-path-complete-in-steps nil
org-refile-allow-creating-parent-nodes 'confirm
org-refile-targets '((nil :maxlevel . 3)
(org-agenda-files :maxlevel . 3))
org-id-track-globally t)
(setq org-roam-directory "~/org/roam/"
org-roam-v2-ack t)
(cl-defmethod org-roam-node-filetitle ((node org-roam-node))
"Return the file TITLE for the node."
(org-roam-get-keyword "TITLE" (org-roam-node-file node)))
(cl-defmethod org-roam-node-hierarchy ((node org-roam-node))
"Return the hierarchy for the node."
(let ((title (org-roam-node-title node))
(olp (org-roam-node-olp node))
(level (org-roam-node-level node))
(filetitle (org-roam-node-filetitle node)))
(concat
(if (> level 0) (concat filetitle " → "))
(if (> level 1) (concat (string-join olp " → ") " → "))
title))
)
(cl-defmethod org-roam-node-directories ((node org-roam-node))
(if-let ((dirs (file-name-directory (file-relative-name (org-roam-node-file node) org-roam-directory))))
(format "(%s)" (string-join (f-split dirs) "/"))
""))
(setq org-roam-node-display-template "${directories:10} ${hierarchy:40} ${tags:20}")
(setq org-roam-capture-templates
'(("d" "default" plain
"%?"
:if-new (file+head "%<%<Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
:unnarrowed t
)))
;; (setq org-roam-dailies-capture-templates)
(setq deft-directory "~/org/roam")
(setq deft-extensions '("org"))
;; (setq org-noter-default-notes-file-names '("notes.org"))
;; (setq org-noter-notes-search-path '("~/org/roam/noter/" "~/org/roam"))
;;
;; (setq org-roam-server-host "127.0.0.1"
;; org-roam-server-port 9090
;; 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")
;; 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-default auto-fill-function 'do-auto-fill)
;;
;; (setq org-gcal-client-id "363943479757-e67275ue1tshm2ihnq4pbbp71i17u560.apps.googleusercontent.com"
;; org-gcal-client-secret "6AQ7_vtvqLTeL-ltDcwrIvao"
;; org-gcal-file-alist '(("tim.vandeurzen@gmail.com" . "~/org/agendas/google.org")))
(use-package! org-super-agenda
:after org-agenda
:config
(setq org-agenda-custom-commands
'(("z" "Custom Day"
((agenda "" ((org-agenda-span 'day)
(org-super-agenda-groups
'((:log t)
(:name "Schedule"
:time-grid t)
(:habit t)
(:name "Scheduled future"
:scheduled future)
(:name "Scheduled past"
:scheduled past)
(:name "Due today"
:deadline today)
(:name "Overdue"
:deadline past)
(:name "Due soon"
:deadline future)
(:name "Waiting"
:todo "WAITING"
:order 10)
))))))
("w" "Custom Week"
((agenda "" ((org-agenda-span 'week)
(org-super-agenda-groups
'((:log t)
(:name "Schedule"
:time-grid t)
(:name "Planning"
:scheduled t)
(:name "Due"
:deadline t)
(:name "Overdue"
:deadline past)
))))))
))
(org-super-agenda-mode))
)
(org-roam-autosync-mode)
;; Here are some additional functions/macros that could help you configure Doom:
;;
......@@ -52,11 +196,3 @@
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
(use-package! evil-colemak-basics
:after evil
:hook (after-init . global-evil-colemak-basics-mode)
:config
(setq evil-colemak-basics-rotate-t-f-j t))
(after! evil (global-evil-colemak-basics-mode t))
......@@ -20,22 +20,22 @@
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
(company +childframe) ; the ultimate code completion backend
helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
ivy ; a search engine for love and life
;;ivy ; a search engine for love and life
:ui
deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
hydra
indent-guides ; highlighted indent columns
ligatures ; ligatures and symbols to make your code pretty again
(ligatures +extra) ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
......@@ -147,7 +147,7 @@
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +roam +noter +pandoc +pretty) ; organize your plain life in plain text
(org +roam2 +noter +pandoc +pretty) ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
......
......@@ -11,6 +11,8 @@
(package! evil-colemak-basics)
(package! org-super-agenda)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/raxod502/straight.el#the-recipe-format
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment