diff options
Diffstat (limited to 'config.el')
| -rw-r--r-- | config.el | 150 |
1 files changed, 70 insertions, 80 deletions
@@ -16,7 +16,8 @@ (add-to-list 'custom-theme-load-path "~/.config/doom/extra-themes/") ;; (setq doom-theme 'modus-vivendi) -(setq doom-theme 'doric-oak) +;; (setq doom-theme 'doric-oak) +(setq doom-theme 'doric-obsidian) ;; (setq doom-theme 'tango) (setq custom-safe-themes t) @@ -73,6 +74,20 @@ (lambda () (local-set-key (kbd "<f5>") #'my/hs-eval))) +(add-to-list 'major-mode-remap-alist '(html-mode . mhtml-ts-mode)) +(add-to-list 'major-mode-remap-alist '(mhtml-mode . mhtml-ts-mode)) + +(add-to-list 'auto-mode-alist '("\\.html?\\'" . mhtml-ts-mode)) +(add-to-list 'major-mode-remap-alist '(html-mode . mhtml-ts-mode)) +(add-to-list 'major-mode-remap-alist '(mhtml-mode . mhtml-ts-mode)) + +(advice-add 'web-mode :around + (lambda (orig &rest args) + (if (or (null buffer-file-name) + (string-match-p "\\.html?\\'" buffer-file-name)) + (mhtml-ts-mode) + (apply orig args)))) + (use-package! eglot :hook (prog-mode . eglot-ensure)) @@ -82,12 +97,12 @@ :config (eglot-booster-mode)) (after! eglot - (cl-defmethod eglot-register-capability - ((_server eglot-lsp-server) - (method (eql workspace/didChangeWatchedFiles)) - _id - &key _watchers) - nil) + (cl-defmethod eglot-register-capability + ((_server eglot-lsp-server) + (method (eql workspace/didChangeWatchedFiles)) + _id + &key _watchers) + nil) (add-to-list 'eglot-server-programs '((typescript-ts-mode javascript-mode) @@ -105,13 +120,13 @@ line-start (file-name) ":" line ":" column ": " (message) line-end)) - :modes (web-mode)) + :modes (mhtml-ts-mode)) (add-to-list 'flycheck-checkers 'htmlhint) (flycheck-add-next-checker - 'javascript-eslint - 'javascript-oxlint) + 'javascript-eslint + 'javascript-oxlint) (flycheck-add-next-checker 'html-tidy 'htmlhint) @@ -120,14 +135,17 @@ '(save mode-enabled))) (use-package! apheleia - :hook (prog-mode . apheleia-mode) + :hook + (prog-mode . apheleia-mode) :config (setf (alist-get 'oxfmt apheleia-formatters) '("oxfmt" "--config=.oxfmtrc.json" "--stdin-filepath" filepath)) -(dolist (mode '(html-mode mhtml-mode web-mode css-mode)) - (setf (alist-get mode apheleia-mode-alist) 'oxfmt))) +(dolist (mode '(mhtml-ts-mode html-mode mhtml-mode web-mode css-mode)) + (setf (alist-get mode apheleia-mode-alist) 'oxfmt))) + +(add-hook 'mhtml-ts-mode-hook #'apheleia-mode) (use-package! pinentry :config @@ -164,7 +182,7 @@ ) (setq gnus-message-archive-method '(nnimap "migadu") ; use migadu for archiving email - gnus-message-archive-group "Sent") ; where to put sent mail + gnus-message-archive-group "Sent") ; where to put sent mail (setq gnus-large-newsgroup nil gnus-fetch-old-headers t @@ -212,39 +230,16 @@ :desc "New chat" "n" #'jabber-chat-with :desc "Set status" "s" #'jabber-send-presence) -(defun emms--wait-for-mpd-update (callback) - "Poll MPD status until updating_db clears, then call CALLBACK." - (emms-player-mpd-get-status - callback - (lambda (callback info) - (if (assoc "updating_db" info) - (run-with-timer 0.5 nil #'emms--wait-for-mpd-update callback) - (funcall callback))))) - -(defun emms-full-resync () - "Update MPD's db, then pull it into EMMS's cache, then rebuild the browser." - (interactive) - (message "emms: starting mpd db update...") - (emms-player-mpd-update-all) - (emms--wait-for-mpd-update - (lambda () - (emms-cache-set-from-mpd-all) - (dolist (buf (buffer-list)) - (with-current-buffer buf - (when (derived-mode-p 'emms-browser-mode) - (revert-buffer)))) - (emms-browser) - (message "emms: resync done")))) - +(add-to-list 'load-path "/home/hi/.config/doom/") (use-package! emms - :commands (emms emms-browser emms-player-mpd-update-all emms-cache-set-from-mpd-all emms emms-pause emms-next emms-previous emms-stop - emms-random emms-add-directory-tree emms-play-playlist) +:commands (emms emms-browser emms-player-mpd-update-all emms-cache-set-from-mpd-all emms emms-pause emms-next emms-previous emms-stop + emms-random emms-add-directory-tree emms-play-playlist) :init (map! :leader (:prefix ("e" . "emms") - :desc "Browser" "b" #'emms-full-resync - :desc "Playlist" "m" #'emms-playlist-mode-go + :desc "Browser" "b" #'emms-browser + :desc "Emms" "e" #'emms :desc "Play/pause" "SPC" #'emms-pause :desc "Next" "n" #'emms-next :desc "Previous" "p" #'emms-previous @@ -257,12 +252,13 @@ (emms-all) -(require 'emms-player-mpd) -(setq emms-player-list '(emms-player-mpd) - emms-info-functions '(emms-info-mpd) +(require 'emms-player-xmms2) +(setq + emms-player-list '(emms-player-xmms2) -emms-player-mpd-server-name "localhost" -emms-player-mpd-server-port "6600" +emms-lyrics-scroll-p nil +emms-lyrics-display-on-minibuffer t +emms-lyrics-display-on-modeline nil emms-player-mpd-music-directory "~/Music" emms-source-file-default-directory (expand-file-name "~/Music/playlists/") @@ -271,14 +267,8 @@ emms-repeat-playlist t emms-cache-file (concat doom-cache-dir "emms-cache")) -(add-hook 'emms-playlist-cleared-hook #'emms-player-mpd-clear) - -(emms-player-mpd-connect) - (emms-mode-line-mode 1) -(emms-lyrics-toggle-display-on-minibuffer) - (emms-playing-time-mode 1) (map! :map emms-browser-mode-map @@ -346,11 +336,11 @@ emms-cache-file (concat doom-cache-dir "emms-cache")) (advice-add 'vc-jj-push :before #'my/vc-jj--advance-before-push) (setq my/vc-jj-advance-to "@-") -(defun my/vc-jj-checkin (files comment &optional _rev) - "Describe @ and start a fresh change." - (let ((default-directory (vc-jj-root (car files)))) - (vc-jj-modify-change-comment nil "@" comment) - (vc-jj--command-dispatched nil 0 nil "new" "--quiet"))) + (defun my/vc-jj-checkin (files comment &optional _rev) + "Describe @ and start a fresh change." + (let ((default-directory (vc-jj-root (car files)))) + (vc-jj-modify-change-comment nil "@" comment) + (vc-jj--command-dispatched nil 0 nil "new" "--quiet"))) (advice-add 'vc-jj-checkin :override #'my/vc-jj-checkin)) (after! vc-jj @@ -381,7 +371,7 @@ emms-cache-file (concat doom-cache-dir "emms-cache")) (advice-add 'vc-jj-push :around #'my/vc-jj--push-no-window) (advice-add 'vc-jj-push :after #'my/vc-jj--report-push) - (define-advice ansi-color-filter-region (:around (fn &rest args) my/vc-jj-writable) + (define-advice ansi-color-filter-region (:around (fn &rest args) my/vc-jj-writable) (let ((inhibit-read-only (or inhibit-read-only (string-prefix-p "*vc-jj" (buffer-name))))) (apply fn args)))) @@ -405,11 +395,11 @@ emms-cache-file (concat doom-cache-dir "emms-cache")) org-confirm-babel-evaluate nil) (org-babel-do-load-languages -'org-babel-load-languages -'((emacs-lisp . t) - (python . t) - (C . t) - (lisp . t)))) + 'org-babel-load-languages + '((emacs-lisp . t) + (python . t) + (C . t) + (lisp . t)))) (use-package! poly-org :hook (org-mode . poly-org-mode)) @@ -439,9 +429,9 @@ org-confirm-babel-evaluate nil) :if-new (file+head - (lambda () (concat (my/org-roam-short-id) ".org")) - "#+TITLE: %^{title|Untitled}\n#+FILETAGS: :%^{tags}:\n\n") ; title&tags -:unnarrowed t))) + (lambda () (concat (my/org-roam-short-id) ".org")) + "#+TITLE: %^{title|Untitled}\n#+FILETAGS: :%^{tags}:\n\n") ; title&tags + :unnarrowed t))) (cl-defmethod org-roam-node-file-stem ((node org-roam-node)) (file-name-base (org-roam-node-file node))) @@ -520,7 +510,7 @@ org-html-postamble nil)) (use-package! org-modern-indent :defer t -:hook (org-mode . org-modern-indent-mode)) + :hook (org-mode . org-modern-indent-mode)) (setq eww-search-prefix "https://ecosia.org/search?q=") @@ -657,12 +647,12 @@ org-html-postamble nil)) "o" 'evil-forward-char) (evil-define-key '(normal visual operator) 'global - "l" 'evil-backward-word-begin - "L" 'evil-backward-WORD-begin - "u" 'evil-forward-word-end - "U" 'evil-forward-WORD-end - "y" 'evil-forward-word-begin - "Y" 'evil-forward-WORD-begin) + "l" 'evil-backward-word-begin + "L" 'evil-backward-WORD-begin + "u" 'evil-forward-word-end + "U" 'evil-forward-WORD-end + "y" 'evil-forward-word-begin + "Y" 'evil-forward-WORD-begin) (with-eval-after-load 'evil-ex (define-key evil-ex-completion-map (kbd "C-l") 'left-word) @@ -681,12 +671,12 @@ org-html-postamble nil)) "W" 'evil-change-line) (evil-define-key 'normal 'global - "x" 'evil-delete-char - "c" 'evil-yank - "v" 'evil-paste-after - "X" 'evil-delete-line - "C" 'evil-yank-line - "V" 'evil-paste-before) + "x" 'evil-delete-char + "c" 'evil-yank + "v" 'evil-paste-after + "X" 'evil-delete-line + "C" 'evil-yank-line + "V" 'evil-paste-before) (evil-define-key 'visual 'global "x" 'evil-delete |
