Compare commits

...

3 commits

3 changed files with 125 additions and 39 deletions

View file

@ -46,7 +46,7 @@
(setq file-name-handler-alist nil)
;; Restore `garbage-collect' and `file-name-handler-alist' settings
(add-hook 'emacs-startup-hook
(add-hook 'elpaca-after-init-hook
(lambda ()
(setq file-name-handler-alist default-file-name-handler-alist
gc-cons-percentage 0.1
@ -113,7 +113,7 @@
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(vertical-scroll-bars) default-frame-alist)
(push '(background-color . "#282828") default-frame-alist)
(push '(foreground-color . "#C6C6C6") default-frame-alist)
(push '(foreground-color . "#c6c6c6") default-frame-alist)
;; Make lsp-mode use plists
(setenv "LSP_USE_PLISTS" "true")

View file

@ -128,6 +128,9 @@
;; Customize compilation & related buffers
(use-feature compile
:bind
(:map prog-mode-map
("C-c r" . recompile))
:commands (compile recompile)
:config (setopt compilation-ask-about-save nil
compilation-scroll-output 'first-error))
@ -288,20 +291,20 @@
:config
(setopt recentf-max-menu-items 100
recentf-max-saved-items 1000
recentf-save-file (concat xdg_cache_home "recentf"))
recentf-save-file (expand-file-name "recentf" xdg_cache_home))
(recentf-mode))
;; Customize saving mini-buffer history
(use-feature savehist
:config
(setopt savehist-autosave-interval 120
savehist-file (concat xdg_cache_home "history"))
savehist-file (expand-file-name "history" xdg_cache_home))
(savehist-mode))
;; Customize saving place in files
(use-feature saveplace
:config
(setopt save-place-file (concat xdg_cache_home "places"))
(setopt save-place-file (expand-file-name "places" xdg_cache_home))
(save-place-mode))
;; Unload `seq' before `Elpaca' starts building
@ -378,6 +381,13 @@
(catppuccin-reload)
(load-theme 'catppuccin t))
;; C/C++ formatting
;; Ad hoc format file: clang-format -style=webkit -dump-config > .clang-format
(use-package clang-format
:commands (clang-format clang-format-buffer clang-format-region)
:config (setopt clang-format-fallback-style "webkit"
clang-format-style "file"))
;; Search and navigation
(use-package consult
:bind (;; C-c bindings in `mode-specific-map'
@ -431,7 +441,12 @@
;; Minibuffer history
:map minibuffer-local-map
("M-s" . consult-history) ; orig. next-matching-history-element
("M-r" . consult-history)) ; orig. previous-matching-history-element
("M-r" . consult-history)
:map as/org-prefix-map ; orig. previous-matching-history-element
("h" . consult-org-heading)
("a" . consult-org-agenda))
:config
(setopt consult-narrow-key "<")
:init
;; Register formatting
(setopt register-preview-delay 0.6
@ -442,6 +457,13 @@
(setopt xref-show-xrefs-function #'consult-xref
xref-show-definitions-function #'consult-xref))
(use-package consult-dir
:after (consult)
:bind (("C-x C-d" . consult-dir)
:map vertico-map
("C-x C-d" . consult-dir)
("C-x C-j" . consult-dir-jump-file)))
;; UI for the workspace/symbols procedure calls
(use-package consult-eglot
:after (eglot)
@ -486,7 +508,7 @@
:ensure (eglot-booster :host github :repo "jdtsmith/eglot-booster"))
;; Command menu for items around point
(use-package embark
(use-package embark
:bind
(("C-." . embark-act)
("C-;" . embark-dwim)
@ -502,6 +524,46 @@
(use-package embark-consult
:hook (embark-collect-mode . consult-preview-at-point-mode))
;; Startup screen
(use-package enlight
:after (grid)
:config
(setopt
enlight-content
(grid-get-row
`(,(enlight-menu
'(("Files"
("Find File" find-file "f")
("Recent Files" consult-recent-file "r")
("Projects" project-switch-project "p")
("Open Project Buffer" consult-project-buffer "o"))))
" "
,(enlight-menu
'(("Org"
("Agenda" (org-agenda nil "a") "a")
("Time blocking" org-timeblock "b")
("List all TODOs" (org-agenda nil "t") "t")
("Match Tags" (org-agenda nil "m") "m"))))
" "
,(enlight-menu
`(("Settings"
("Elpaca" elpaca-manager "L")
("Emacs"
(progn
(find-file ,user-init-file))
"I")
("Enlight"
(progn
(find-file ,user-init-file)
(goto-char (point-min))
(search-forward "use-package enlight"))
"E")
("Org"
(progn
(find-file ,(replace-regexp-in-string "init.el" "lisp/init-org.el" user-init-file)))
"O")))))))
(enlight-open))
;; Correction functions for `flyspell'
(use-package flyspell-correct
:after (flyspell)
@ -509,6 +571,10 @@
(:map flyspell-mode-map
("C-M-." . flyspell-correct-wrapper)))
;; Grid for `enlight'
(use-package grid
:ensure (:host github :repo "ichernyshovvv/grid.el"))
;; Highlight keywords
(use-package hl-todo
:bind
@ -544,7 +610,7 @@
:bind ("C-M-;" . magit-status)
:config
(setopt magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1
transient-history-file (concat xdg_cache_home "transient-history")))
transient-history-file (expand-file-name "transient-history" xdg_cache_home)))
(use-package magit-todos
:hook (magit-mode . magit-todos-mode))
@ -602,8 +668,8 @@
(setopt completion-styles '(orderless basic)
completion-category-overrides '((file (styles basic partial-completion)))
orderless-matching-styles '(orderless-regexp
orderless-literal
orderless-initialism))
orderless-literal
orderless-initialism))
:defer 1)
;; Project Management
@ -611,7 +677,7 @@
:disabled
:bind ("C-c p" . projectile-command-map)
:config
(setopt projectile-known-projects-file (concat xdg_cache_home "projectile-bookmarks")
(setopt projectile-known-projects-file (expand-file-name "projectile-bookmarks" xdg_cache_home)
projectile-project-search-path '(("~/Nextcloud/Projects/src/" . 2)))
(push "*node_modules" projectile-globally-ignored-directories)
(projectile-mode))

View file

@ -36,67 +36,87 @@
("C-c c" . org-capture)
("C-c l" . org-store-link))
:config
(setopt org-agenda-files (list (concat org-directory "/personal")
(concat org-directory "/projects")
(concat org-directory "/work"))
(setopt org-agenda-files (directory-files-recursively org-directory "org$")
org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-if-done t
org-agenda-start-on-weekday nil
org-archive-location (concat org-directory "/archive.org::* From %s")
org-blank-before-new-entry '((heading . auto)
(plain-list-item . auto))
org-enforce-todo-dependencies t
org-fontify-quote-and-verse-blocks t
org-hide-emphasis-markers t
org-log-done 'time
org-refile-targets '((nil :maxlevel . 2)
(org-agenda-files :maxlevel . 2))
org-refile-use-outline-path 'file
org-return-follows-link t
org-todo-keywords '((sequence "TODO(t)" "IN-PROGRESS(i@/!)" "|"
"DONE(d!)" "BLOCKED(b@)" "WONT-DO(w@/!)" ))
org-src-preserve-indentation t
org-startup-folded 'content
org-todo-keywords '((sequence "BLOCKED(b@/!)" "IN-PROGRESS(i@/!)"
"TODO(t)" "WAITING(i@/!)" "|" "DONE(d!)"
"WONT-DO(w@/!)"))
org-todo-keyword-faces '(("TODO" . (icon-button))
("IN-PROGRESS" . (tool-bar))
("BLOCKED" . (match))
("WONT-DO" . (org-done))))
(setopt org-capture-templates
(setq org-capture-templates
`(
("m" "Personal")
("mj" "Log Entry"
entry (file+datetree ,(concat org-directory "/personal/log.org"))
"* %?"
entry (file+datetree ,(concat org-directory "/personal_log.org"))
"** %?"
:empty-lines 1)
("mn" "Note"
entry (file+headline ,(concat org-directory "/personal/notes.org") "Note to self...")
"* %?"
entry (file+headline ,(concat org-directory "/notes.org") "Note to self...")
"** %?"
:empty-lines 1)
("mt" "Todo"
entry (file+headline ,(concat org-directory "/personal/todo.org") "Personal Tasks")
"* TODO [#B] %?\n:Created: %T\n "
entry (file+headline ,(concat org-directory "/inbox.org") "You can do it!")
"** TODO [#B] %?\n:Created: %U\nSCHEDULED: %^{SCHEDULED: }T\n "
:empty-lines 1)
("p" "Projects")
("pn" "Note"
entry (file+headline ,(concat org-directory "/projects/notes.org") "Project Notes")
entry (file+headline ,(concat org-directory "/notes.org") "Project Notes")
"** %?"
:empty-lines 1)
("pt" "Todo"
entry (file+headline ,(concat org-directory "/projects/todo.org") "Project Tasks")
"* TODO [#B] %?\n:Created: %T\n%i\n%a\nNotes: "
:empty-lines 0)
entry (file+headline ,(concat org-directory "/inbox.org") "Project Tasks")
"** TODO [#B] %?\n:Created: %U\nSCHEDULED: %^{SCHEDULED: }T\n%i\n%a\nNotes: "
:empty-lines 1)
("w" "Work")
("wn" "Note"
entry (file+headline "~/Nextcloud/Documents/org/work/notes.org" "Work notes")
entry (file+headline ,(concat org-directory "/notes.org") "Work Notes")
"** %?"
:empty-lines 0)
:empty-lines 1)
("wt" "Todo"
entry (file+headline "~/Nextcloud/Documents/org/work/todo.org" "Work tasks")
"* TODO [#B] %?\n:Created: %T\n%i\n%a\nNotes: "
:empty-lines 0)))
entry (file+headline ,(concat org-directory "/inbox.org") "Work Tasks")
"** TODO [#B] %?\n:Created: %U\nSCHEDULED: %^{SCHEDULED: }T\n%i\n%a\nNotes: "
:empty-lines 1)))
:hook (org-mode . org-indent-mode)
:init
(setopt org-directory "~/Nextcloud/Documents/org")
;; (bind-keys :prefix-map as/org-prefix-map
;; :prefix "C-c o"
;; ("d" . org-priority-down)
;; ("u" . org-priority-up)
;; ("r" . org-shiftmetaright)
;; ("l" . org-shiftmetaleft))
)
(bind-keys :prefix-map as/org-prefix-map
:prefix "C-c o"
("n" . org-priority-down)
("p" . org-priority-up)
("f" . org-shiftmetaright)
("b" . org-shiftmetaleft)))
(use-package org-timeblock
:bind
(:map as/org-prefix-map
("t" . org-timeblock))
:config
(setopt org-timeblock-new-task-time 'pick
org-timeblock-show-future-repeats 'next
org-timeblock-span 3))
(provide 'init-org)
;;; org-mode.el ends here