Files
doom/config.org

142 lines
4.7 KiB
Org Mode
Raw Normal View History

2025-11-16 15:47:31 +11:00
* My doom config
2025-11-16 22:05:10 +11:00
** Some tweak
*** change indent size
#+begin_src emacs-lisp
(setq-default tab-width 4)
#+end_src
2025-11-16 15:47:31 +11:00
** Appearance settings
2025-11-16 20:46:00 +11:00
2025-11-16 15:47:31 +11:00
#+begin_src emacs-lisp
(setq doom-font (font-spec :family "Maple Mono" :size 20))
(add-to-list 'default-frame-alist '(height . 53))
(add-to-list 'default-frame-alist '(width . 120))
2025-11-16 22:05:10 +11:00
(setq catppuccin-flavor 'mocha)
2025-11-16 20:46:00 +11:00
(setq doom-theme 'catppuccin)
2025-11-16 15:47:31 +11:00
(setq display-line-numbers-type 'relative)
(setq org-directory "~/org/")
#+end_src
2025-11-16 20:46:00 +11:00
*** Themes
2025-11-16 22:05:10 +11:00
**** Catppuccin
2025-11-16 20:46:00 +11:00
#+begin_src emacs-lisp :tangle packages.el
(package! catppuccin-theme)
#+end_src
2025-11-16 15:47:31 +11:00
** Plugins
*** Yasnippet
This enables the feature of auto-expanding snippets when matching the pattern
#+begin_src emacs-lisp
2025-11-16 22:05:10 +11:00
(use-package! yasnippet
:config
(defun my-yas-try-expanding-auto-snippets ()
(when yas-minor-mode
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
(yas-expand))))
(add-hook 'post-command-hook #'my-yas-try-expanding-auto-snippets)
)
2025-11-16 15:47:31 +11:00
#+end_src
2025-11-16 20:42:35 +11:00
*** Eat (deprecated)
#+begin_src emacs-lisp :tangle no
2025-11-16 15:47:31 +11:00
(package! eat
2025-11-16 22:05:10 +11:00
:recipe (:type git
:host codeberg
:repo "akib/emacs-eat"
:files ("*.el" ("term" "term/*.el") "*.texi"
"*.ti" ("terminfo/e" "terminfo/e/*")
("terminfo/65" "terminfo/65/*")
("integration" "integration/*")
(:exclude ".dir-locals.el" "*-tests.el"))))
2025-11-16 15:47:31 +11:00
#+end_src
Fix the issue that backspace doesn't work on mac
2025-11-16 20:42:35 +11:00
#+begin_src emacs-lisp :tangle no
2025-11-16 15:47:31 +11:00
(after! eat
2025-11-16 22:05:10 +11:00
(when (eq system-type 'darwin)
(define-key eat-semi-char-mode-map (kbd "C-h") #'eat-self-input)
(define-key eat-semi-char-mode-map (kbd "<backspace>") (kbd "C-h"))))
2025-11-16 15:47:31 +11:00
#+end_src
2025-11-16 16:19:37 +11:00
*** Copilot
#+begin_src emacs-lisp :tangle packages.el
(package! copilot
2025-11-16 22:05:10 +11:00
:recipe (:host github :repo "copilot-emacs/copilot.el" :files ("*.el")))
2025-11-16 16:19:37 +11:00
#+end_src
Configuration
#+begin_src emacs-lisp
;; accept completion from copilot and fallback to company
(use-package! copilot
2025-11-16 22:05:10 +11:00
:hook (prog-mode . copilot-mode)
:bind (:map copilot-completion-map
("<tab>" . 'copilot-accept-completion)
("TAB" . 'copilot-accept-completion)
("C-TAB" . 'copilot-accept-completion-by-word)
("C-<tab>" . 'copilot-accept-completion-by-word)
("C-n" . 'copilot-next-completion)
("C-p" . 'copilot-previous-completion))
2025-11-16 16:19:37 +11:00
2025-11-16 22:05:10 +11:00
:config
(add-to-list 'copilot-indentation-alist '(prog-mode 2))
(add-to-list 'copilot-indentation-alist '(org-mode 2))
(add-to-list 'copilot-indentation-alist '(text-mode 2))
(add-to-list 'copilot-indentation-alist '(clojure-mode 2))
(add-to-list 'copilot-indentation-alist '(emacs-lisp-mode 2)))
2025-11-16 16:19:37 +11:00
#+end_src
2025-11-16 19:12:34 +11:00
** Lang
*** Typst
**** Tree-sitter
#+begin_src emacs-lisp :tangle packages.el
(package! typst-ts-mode :recipe (:host codeberg :repo "meow_king/typst-ts-mode"))
#+end_src
#+begin_src emacs-lisp
(use-package! typst-ts-mode
2025-11-16 22:05:10 +11:00
:init
(add-hook 'typst-ts-mode-hook #'eglot-ensure)
:custom
;; (typst-ts-watch-options "--open")
(typst-ts-mode-grammar-location (expand-file-name "tree-sitter/libtree-sitter-typst.so" user-emacs-directory))
(typst-ts-mode-enable-raw-blocks-highlight t)
:config
(keymap-set typst-ts-mode-map "C-c C-c" #'typst-ts-tmenu))
2025-11-16 19:12:34 +11:00
#+end_src
**** Tinymist (lsp)
#+begin_src emacs-lisp
(with-eval-after-load 'eglot
2025-11-16 22:05:10 +11:00
(with-eval-after-load 'typst-ts-mode
(add-to-list 'eglot-server-programs
`((typst-ts-mode) .
,(eglot-alternatives `(,"tinymist"
"typst-lsp"))))))
2025-11-16 19:12:34 +11:00
#+end_src
2025-11-16 20:05:31 +11:00
**** Live-preview
#+begin_src emacs-lisp :tangle packages.el
(package! typst-preview
2025-11-16 22:05:10 +11:00
:recipe (:host github :repo "havarddj/typst-preview.el"))
2025-11-16 20:05:31 +11:00
#+end_src
***** Config
#+begin_src emacs-lisp
(use-package! websocket)
(use-package! typst-preview
2025-11-16 22:05:10 +11:00
;; :load-path "path/to/typst-preview.el" ;; if installed manually
:init
(setq typst-preview-autostart t) ; start preview automatically when typst-preview-mode is activated
;; (setq typst-preview-open-browser-automatically t) ; open browser automatically when typst-preview-start is run
2025-11-16 20:05:31 +11:00
2025-11-16 22:05:10 +11:00
:custom
(typst-preview-browser "default") ; this is the default option; other options are `eaf-browser' or `xwidget'.
(typst-preview-invert-colors "auto") ; invert colors depending on system theme
(typst-preview-executable "tinymist") ; path to tinymist binary (relative or absolute)
(typst-preview-partial-rendering t) ; enable partial rendering
2025-11-16 20:05:31 +11:00
2025-11-16 22:05:10 +11:00
:config
(define-key typst-preview-mode-map (kbd "C-c C-j") 'typst-preview-send-position)
(define-key typst-ts-mode-map (kbd "C-c C-l") #'typst-preview-mode))
2025-11-16 20:05:31 +11:00
#+end_src
2025-11-16 22:05:10 +11:00
#+RESULTS:
: t