feat(emacs): Update config

This commit is contained in:
Alexander Kobjolke 2025-04-24 10:40:43 +02:00
parent 8fa444ed2d
commit d4f56d0b02

View file

@ -8,15 +8,12 @@
;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. ;; clients, file templates and snippets.
(setq! user-full-name "Alexander Kobjolke" (setq! user-full-name "Alexander Kobjolke"
user-mail-address "me@failco.de") user-mail-address "me@failco.de"
auth-sources '("~/.local/share/emacs/authinfo.gpg" "~/.authinfo.gpg" "~/.netrc")
auth-source-cache-expiry nil)
(when ak/at-work? (when ak/at-work?
(setq! user-mail-address "alexander.kobjolke@atlas-elektronik.com") (setq! user-mail-address "alexander.kobjolke@atlas-elektronik.com"))
(add-to-list 'lsp-disabled-clients 'cmakels)
;; exclude cmake from formatting on save
(add-to-list '+format-on-save-disabled-modes
'cmake-mode))
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here ;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
@ -42,14 +39,9 @@
(require 're-builder) (require 're-builder)
(setq! reb-re-syntax 'string) (setq! reb-re-syntax 'string)
;; 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/"
org-log-into-drawer t)
;; do not create a new workspace for each emacsclient ;; do not create a new workspace for each emacsclient
(after! persp-mode ;; (after! persp-mode
  (setq! persp-emacsclient-init-frame-behaviour-override "main")) ;;   (setq! persp-emacsclient-init-frame-behaviour-override "main"))
(after! lsp (after! lsp
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.devenv\\'") (add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.devenv\\'")
@ -74,8 +66,8 @@
(setq! undo-limit 80000000 ; Raise undo-limit to 80Mb (setq! undo-limit 80000000 ; Raise undo-limit to 80Mb
auto-save-default t ; Nobody likes to loose work, I certainly don't auto-save-default t ; Nobody likes to loose work, I certainly don't
switch-to-buffer-in-dedicated-window 'pop ;; switch-to-buffer-in-dedicated-window 'pop
switch-to-buffer-obey-display-actions t ;; switch-to-buffer-obey-display-actions t
) )
;; tweak some VI defaults ;; tweak some VI defaults
@ -106,11 +98,14 @@
(interactive) (interactive)
(scroll-up 1)))) (scroll-up 1))))
(after! haskell-mode (use-package! org
(setq haskell-process-type 'cabal-repl)) :init
;; If you use `org' and don't want your org files in the default location below,
(after! org ;; change `org-directory'. It must be set before org loads!
(setq! org-directory "~/org/")
(setq! org-log-into-drawer t (setq! org-log-into-drawer t
org-agenda-include-diary t
org-agenda-sticky t
org-todo-keywords '( org-todo-keywords '(
(sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)")
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)")
@ -129,6 +124,9 @@
)) ))
:config
(use-package! org-ql) (use-package! org-ql)
(use-package! org-modern) (use-package! org-modern)
(use-package! org-bookmark-heading) (use-package! org-bookmark-heading)
@ -152,7 +150,7 @@
(activities-tabs-mode) (activities-tabs-mode)
(setopt tab-bar-show 1) (setopt tab-bar-show 1)
(map! (map!
(:prefix ("C-c a" . "Activities") (:prefix-map ("C-c a" . "Activities")
:desc "Switch activity" "a" #'activities-switch :desc "Switch activity" "a" #'activities-switch
:desc "Resume activity" "r" #'activities-resume :desc "Resume activity" "r" #'activities-resume
:desc "Create new activity" "n" #'activities-new :desc "Create new activity" "n" #'activities-new
@ -166,13 +164,26 @@
(when ak/at-work? (when ak/at-work?
(after! forge (after! forge
(add-to-list 'forge-alist '("gitlab.atlas.de" "gitlab.atlas.de/api/v4" "gitlab.atlas.de" forge-gitlab-repository)) (add-to-list 'forge-alist '("gitlab.atlas.de" "gitlab.atlas.de/api/v4" "gitlab.atlas.de" forge-gitlab-repository)))
)
(after! code-review (after! haskell-mode
(setq haskell-process-type 'cabal-new-repl))
(setq! plantuml-jar-path "~/opt/plantuml.jar")
(setq! org-plantuml-jar-path plantuml-jar-path)
(after! lsp
(add-to-list 'lsp-disabled-clients 'cmakels))
(add-to-list '+format-on-save-disabled-modes 'cmake-mode)
(add-to-list '+format-on-save-disabled-modes 'nxml-mode)
(use-package! code-review
:init
(setq code-review-auth-login-marker 'forge) (setq code-review-auth-login-marker 'forge)
;; (setq code-review-gitlab-host "gitlab.atlas.de/api") ;; (setq code-review-gitlab-host "gitlab.atlas.de/api")
;; (setq code-review-gitlab-graphql-host "gitlab.atlas.de/api") ;; (setq code-review-gitlab-graphql-host "gitlab.atlas.de/api")
:config
(add-hook 'code-review-mode-hook (add-hook 'code-review-mode-hook
(lambda () (lambda ()
;; include *Code-Review* buffer into current workspace ;; include *Code-Review* buffer into current workspace
@ -234,20 +245,25 @@
(setq! org-gtd-update-ack "3.0.0") (setq! org-gtd-update-ack "3.0.0")
:config :config
(setf org-gtd-id--generate #'org-id-get-create)
(setq! org-gtd-directory org-directory) (setq! org-gtd-directory org-directory)
(setq! org-gtd-default-file-name "actionable") (setq! org-gtd-default-file-name "actionable")
(setq! org-gtd-refile-to-any-target nil)
(setq! org-gtd-engage-prefix-width 40)
(setq! org-edna-use-inheritance t) (setq! org-edna-use-inheritance t)
;; (setq org-gtd-areas-of-focus '("house" "haskell" "foss")) ;; (setq org-gtd-areas-of-focus '("house" "haskell" "foss"))
;; (setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) (setq org-gtd-organize-hooks nil)
(org-edna-mode) (org-edna-mode)
(map! :leader (map! :leader
:desc "Capture" "X" #'org-gtd-capture :desc "Capture" "X" #'org-gtd-capture
(:prefix ("d" . "GTD") (:prefix-map ("d" . "GTD")
:desc "Capture" "c" #'org-gtd-capture :desc "Capture" "c" #'org-gtd-capture
:desc "Engage" "e" #'org-gtd-engage :desc "Engage" "e" #'org-gtd-engage
:desc "Engage Context" "@" #'org-gtd-engage-grouped-by-context
:desc "Process inbox" "p" #'org-gtd-process-inbox :desc "Process inbox" "p" #'org-gtd-process-inbox
:desc "Show all next" "n" #'org-gtd-show-all-next :desc "Show all next" "n" #'org-gtd-show-all-next
(:prefix ("r" . "Review") :desc "Fix project" "f" #'org-gtd-projects-fix-todo-keywords-for-project-at-point
(:prefix-map ("r" . "Review")
:desc "Stuck projects" "p" #'org-gtd-review-stuck-projects :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects
:desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items
:desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items
@ -255,12 +271,14 @@
)) ))
(map! :map org-gtd-clarify-map (map! :map org-gtd-clarify-map
:desc "Organize this item" "C-c C-c" #'org-gtd-organize) :desc "Organize this item" "C-c C-c" #'org-gtd-organize)
(map! (:prefix ("C-c d" . "GTD") (map! (:prefix-map ("C-c d" . "GTD")
:desc "Capture" "c" #'org-gtd-capture :desc "Capture" "c" #'org-gtd-capture
:desc "Engage" "e" #'org-gtd-engage :desc "Engage" "e" #'org-gtd-engage
:desc "Engage Context" "@" #'org-gtd-engage-grouped-by-context
:desc "Process inbox" "p" #'org-gtd-process-inbox :desc "Process inbox" "p" #'org-gtd-process-inbox
:desc "Show all next" "n" #'org-gtd-show-all-next :desc "Show all next" "n" #'org-gtd-show-all-next
(:prefix ("r" . "Review") :desc "Fix project" "f" #'org-gtd-projects-fix-todo-keywords-for-project-at-point
(:prefix-map ("r" . "Review")
:desc "Stuck projects" "p" #'org-gtd-review-stuck-projects :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects
:desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items
:desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items)))) :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items))))
@ -296,7 +314,7 @@
:config :config
(setq! denote-directory (concat org-directory "/notes")) (setq! denote-directory (concat org-directory "/notes"))
(map! :leader (map! :leader
(:prefix ("n" . "notes") (:prefix-map ("n" . "notes")
:desc "Denote" "d" #'denote-open-or-create-with-command :desc "Denote" "d" #'denote-open-or-create-with-command
)) ))
:bind :bind
@ -313,8 +331,8 @@
org-agenda-compact-blocks t org-agenda-compact-blocks t
org-agenda-start-day nil org-agenda-start-day nil
org-agenda-span 1 org-agenda-span 1
org-agenda-start-on-weekday nil org-agenda-start-on-weekday nil)
)
(setq! org-agenda-custom-commands (setq! org-agenda-custom-commands
'(("a" "Getting Things done" '(("a" "Getting Things done"
((agenda "" ((org-agenda-overriding-header "") ((agenda "" ((org-agenda-overriding-header "")