;;; $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. It is optional. (setq user-full-name "John Doe" user-mail-address "john@doe.com") ;; Doom exposes five (optional) variables for controlling fonts in Doom: ;; ;; - `doom-font' -- the primary font to use ;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) ;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for ;; presentations or streaming. ;; - `doom-unicode-font' -- for unicode glyphs ;; - `doom-serif-font' -- for the `fixed-pitch-serif' face ;; ;; See 'C-h v doom-font' for documentation and more examples of what they ;; accept. For example: ;; (setq doom-variable-pitch-font (font-spec :family "Libertinus Serif" :size 13)) ;; ;; If you or Emacs can't find your font, use 'M-x describe-font' to look them ;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to ;; refresh your font settings. If Emacs still can't find your font, it likely ;; wasn't installed correctly. Font issues are rarely Doom issues! ;; 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: (setq doom-theme 'doom-tomorrow-night) ;(setq doom-theme 'doom-one) ;(setq doom-theme 'doom-wilmersdorf) ;(setq doom-theme 'doom-plain) ;(setq doom-theme 'doom-flatwhite) ;; 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 t) ;; 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 "~/notebook/") ;; Whenever you reconfigure a package, make sure to wrap your config in an ;; `after!' block, otherwise Doom's defaults may override your settings. E.g. ;; ;; (after! PACKAGE ;; (setq x y)) ;; ;; The exceptions to this rule: ;; ;; - Setting file/directory variables (like `org-directory') ;; - Setting variables which explicitly tell you to set them before their ;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). ;; - Setting doom variables (which start with 'doom-' or '+'). ;; ;; Here are some additional functions/macros that will help you configure Doom. ;; ;; - `load!' for loading external *.el files relative to this one ;; - `use-package!' for configuring packages ;; - `after!' for running code after a package has loaded ;; - `add-load-path!' for adding directories to the `load-path', relative to ;; this file. Emacs searches the `load-path' when you load packages with ;; `require' or `use-package'. ;; - `map!' for binding new keys ;; ;; To get information about any of these functions/macros, move the cursor over ;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). ;; This will open documentation for it, including demos of how they are used. ;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, ;; etc). ;; ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how ;; they are implemented. ;;; agenda files (setq org-agenda-files '("~/housekeeping/calendar.org" "~/notebook/ag/" "~/notebook/refile.org")) (after! org (setq org-log-done 'time) (use-package! org-journal :init (setq org-journal-dir "~/diary" org-journal-date-prefix "#+TITLE: " org-journal-time-prefix "+ " org-journal-date-format "%a, %Y-%m-%d" org-journal-file-format "%Y-%m-%d.org" ) ) (use-package! org-books :init (setq org-books-file "~/notebook/readinglist.org") ) ;; NOTIFICATIONS CONFIGURATION REFERENCE ;;; note : it's probably better to add this after ;;; setting org-agenda-files. ;;; use this under (!after org ... ;;; else it would't work ; ;(use-package! org-wild-notifier ; :defer t ; :init ; (add-hook 'doom-post-init-hook (org-wild-notifier-mode)) ; :config ; (setq alert-default-style 'libnotify) ;;; set to libnotify or notifications or osx-notifier ; (setq org-wild-notifier-alert-time '(60 30)) ;;; alert time defaults to '(10) if not set ; (setq org-wild-notifier-keyword-whitelist nil)) ; (setq org-wild-notifier-keyword-blacklist '("DONE")) (use-package! org-wild-notifier :defer t :init (add-hook 'doom-post-init-hook (org-wild-notifier-mode)) :config (setq alert-default-style 'libnotify) (setq org-wild-notifier-alert-time '(10 0)) (setq org-wild-notifier-keyword-whitelist nil)) (setq org-wild-notifier-keyword-blacklist '("DONE")) ) ;;; end of (!after org ... ;;; for testing (defun org-wild-notifier-debug () "Collect debug information for org-wild-notifier" (interactive) (save-window-excursion (let ((org-agenda-use-time-grid nil) (org-agenda-compact-blocks t) (org-agenda-window-setup 'current-window) (org-agenda-buffer-name nil) (org-agenda-buffer-tmp-name org-wild-notifier--agenda-buffer-name)) (org-agenda-list 2) (message "registered events: %s \n blacklist: %s \n whitelist: %s \n" (org-wild-notifier--retrieve-events) org-wild-notifier-keyword-blacklist org-wild-notifier-keyword-whitelist) (message "filtered events: %s" (->> (org-wild-notifier--retrieve-events) (-map 'org-wild-notifier--check-event))) (kill-buffer)))) (defun org-wild-notifier-alert-test () (interactive) (alert "test") ) ;;; end (defun agenda/hide-daily-schedule-1 (&optional arg) (interactive "P") (let ((org-agenda-tag-filter-preset '("-habits"))) (org-agenda arg "a"))) (bind-key "" 'agenda/hide-daily-schedule-1)