feat(extensions): add vundo/kubel/org-caldav/envrc/combobulate and more
Tier 1: org-caldav (CalDAV sync), envrc (direnv), kubel (K8s) Tier 2: org-clock config, combobulate, vundo, breadcrumb, iedit Tier 3: org-anki, org-ql, calfw, org-roam-ui, dirvish Plus: citar/bibtex config, langtool grammar, org-ql search
This commit is contained in:
169
config.el
169
config.el
@@ -1724,3 +1724,172 @@ current frame."
|
||||
(after! projectile
|
||||
(dolist (dir '("node_modules" "__pycache__" ".terraform" "vendor"))
|
||||
(add-to-list 'projectile-globally-ignored-directories dir)))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; EXTENSIONS — Tier 1-3 + BibTeX
|
||||
;;; ============================================================
|
||||
|
||||
;;; --- Tier 1: High impact ---
|
||||
|
||||
;; org-caldav — CalDAV sync for org
|
||||
(use-package! org-caldav
|
||||
:commands org-caldav-sync
|
||||
:config
|
||||
(setq org-caldav-url "https://cal.apps.sukany.cz/dav/calendars/martin@sukany.cz"
|
||||
org-caldav-calendar-id "Martin"
|
||||
org-caldav-inbox "~/org/caldav-inbox.org"
|
||||
org-caldav-files '("~/org/personal.org" "~/org/work.org")
|
||||
org-caldav-sync-direction 'twoway))
|
||||
(map! :leader "o c" #'org-caldav-sync)
|
||||
|
||||
;; envrc — direnv integration
|
||||
(use-package! envrc
|
||||
:hook (after-init . envrc-global-mode))
|
||||
|
||||
;; embark — custom prompter (already installed by Doom vertico module)
|
||||
(after! embark
|
||||
(setq embark-prompter #'embark-keymap-prompter))
|
||||
|
||||
;; wgrep — already installed by Doom vertico module, just configure
|
||||
(after! wgrep
|
||||
(setq wgrep-auto-save-buffer t))
|
||||
|
||||
;; kubel — Kubernetes management
|
||||
(use-package! kubel
|
||||
:commands kubel
|
||||
:config
|
||||
(map! :map kubel-mode-map
|
||||
:n "g" #'kubel-get-resource-details
|
||||
:n "E" #'kubel-exec-pod
|
||||
:n "l" #'kubel-get-pod-logs
|
||||
:n "d" #'kubel-describe-resource
|
||||
:n "D" #'kubel-delete-resource))
|
||||
(map! :leader "o k" #'kubel)
|
||||
|
||||
;;; --- Tier 2: Quality of life ---
|
||||
|
||||
;; org-clock — time tracking (built into org, just configure)
|
||||
(after! org
|
||||
(setq org-clock-persist 'history
|
||||
org-clock-in-resume t
|
||||
org-clock-out-remove-zero-time-clocks t
|
||||
org-clock-report-include-clocking-task t
|
||||
org-duration-format 'h:mm)
|
||||
(org-clock-persistence-insinuate)
|
||||
(map! :map org-mode-map
|
||||
:localleader
|
||||
"C i" #'org-clock-in
|
||||
"C o" #'org-clock-out
|
||||
"C r" #'org-clock-report
|
||||
"C d" #'org-clock-display))
|
||||
|
||||
;; combobulate — tree-sitter structural editing
|
||||
(use-package! combobulate
|
||||
:hook ((python-mode . combobulate-mode)
|
||||
(python-ts-mode . combobulate-mode)
|
||||
(go-mode . combobulate-mode)
|
||||
(go-ts-mode . combobulate-mode)
|
||||
(js-mode . combobulate-mode)
|
||||
(typescript-mode . combobulate-mode))
|
||||
:config
|
||||
(map! :map combobulate-mode-map
|
||||
:n "C-M-n" #'combobulate-navigate-next
|
||||
:n "C-M-p" #'combobulate-navigate-previous
|
||||
:n "C-M-u" #'combobulate-navigate-up
|
||||
:n "C-M-d" #'combobulate-navigate-down))
|
||||
|
||||
;; iedit — edit multiple occurrences
|
||||
(use-package! iedit
|
||||
:commands iedit-mode)
|
||||
(map! :leader "s e" #'iedit-mode)
|
||||
|
||||
;; vundo — visual undo tree
|
||||
(use-package! vundo
|
||||
:commands vundo
|
||||
:config (setq vundo-glyph-alist vundo-unicode-symbols))
|
||||
(map! :leader "u" #'vundo)
|
||||
|
||||
;; breadcrumb — context in header-line
|
||||
(use-package! breadcrumb
|
||||
:hook ((prog-mode . breadcrumb-local-mode)
|
||||
(cperl-mode . breadcrumb-local-mode)))
|
||||
|
||||
;;; --- Tier 3: Supplementary ---
|
||||
|
||||
;; org-anki — Anki flashcards from org
|
||||
(use-package! org-anki
|
||||
:commands (org-anki-sync-entry org-anki-sync-all org-anki-delete-entry)
|
||||
:config
|
||||
(setq org-anki-default-deck "Emacs")
|
||||
(map! :map org-mode-map
|
||||
:localleader
|
||||
"A s" #'org-anki-sync-entry
|
||||
"A S" #'org-anki-sync-all
|
||||
"A d" #'org-anki-delete-entry))
|
||||
|
||||
;; org-ql — query language for org
|
||||
(use-package! org-ql
|
||||
:commands (org-ql-search org-ql-view org-ql-find)
|
||||
:config
|
||||
(map! :leader
|
||||
"s q" #'org-ql-search
|
||||
"s Q" #'org-ql-view))
|
||||
|
||||
;; calfw — visual calendar
|
||||
(use-package! calfw
|
||||
:commands cfw:open-org-calendar)
|
||||
(use-package! calfw-org
|
||||
:after calfw
|
||||
:commands cfw:open-org-calendar)
|
||||
(map! :leader "o C" #'cfw:open-org-calendar)
|
||||
|
||||
;; org-roam-ui — visual graph for org-roam
|
||||
(use-package! org-roam-ui
|
||||
:after org-roam
|
||||
:commands org-roam-ui-mode
|
||||
:config
|
||||
(setq org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t))
|
||||
(map! :leader "n r u" #'org-roam-ui-mode)
|
||||
|
||||
;; dirvish — modern dired replacement
|
||||
(use-package! dirvish
|
||||
:init (dirvish-override-dired-mode)
|
||||
:config
|
||||
(setq dirvish-mode-line-format '(:left (sort symlink) :right (omit yank index))
|
||||
dirvish-attributes '(vc-state subtree-state nerd-icons collapse git-msg file-time file-size)
|
||||
dirvish-side-width 35)
|
||||
(map! :map dirvish-mode-map
|
||||
:n "q" #'dirvish-quit
|
||||
:n "h" #'dired-up-directory
|
||||
:n "l" #'dired-find-file
|
||||
:n "s" #'dirvish-quicksort
|
||||
:n "S" #'dirvish-setup-menu
|
||||
:n "TAB" #'dirvish-subtree-toggle
|
||||
:n "M-f" #'dirvish-history-go-forward
|
||||
:n "M-b" #'dirvish-history-go-backward))
|
||||
|
||||
;;; --- BibTeX / Citar (installed by Doom biblio module) ---
|
||||
|
||||
(after! citar
|
||||
(setq citar-bibliography '("~/org/references.bib")
|
||||
citar-notes-paths '("~/org/notes/")
|
||||
citar-library-paths '("~/org/papers/"))
|
||||
(map! :leader
|
||||
"b b" #'citar-open
|
||||
"b i" #'citar-insert-citation
|
||||
"b n" #'citar-open-notes
|
||||
"b r" #'citar-refresh))
|
||||
|
||||
;;; --- Grammar check (LanguageTool, installed by Doom grammar module) ---
|
||||
|
||||
(after! langtool
|
||||
(setq langtool-language-tool-jar
|
||||
(expand-file-name "~/languagetool/languagetool-commandline.jar")
|
||||
langtool-default-language "cs"
|
||||
langtool-mother-tongue "cs"))
|
||||
(map! :leader
|
||||
"t g" #'langtool-check
|
||||
"t G" #'langtool-check-done)
|
||||
|
||||
Reference in New Issue
Block a user