diff --git a/dot_config/emacs/early-init.el.tmpl b/dot_config/emacs/early-init.el.tmpl index 8e52283..4a575c5 100644 --- a/dot_config/emacs/early-init.el.tmpl +++ b/dot_config/emacs/early-init.el.tmpl @@ -31,6 +31,22 @@ ;;; Code: +;; Relocate emacs-user-directory to XDG_DATA_HOME +(setq user-emacs-directory + (expand-file-name "emacs/" (or (getenv "XDG_DATA_HOME") "~/.local/share/"))) + +;; Set cache directory +(setq xdg_cache_home + (expand-file-name "emacs/" (or (getenv "XDG_CACHE_HOME") "~/.cache/"))) +(unless (file-directory-p xdg_cache_home) + (make-directory xdg_cache_home)) + +;; Move eln-cache to XDG_CACHE_HOME +(when (fboundp 'startup-redirect-eln-cache) + (if (< emacs-major-version 29) + (push (expand-file-name "eln-cache/" xdg_cache_home) native-comp-eln-load-path) + (startup-redirect-eln-cache (expand-file-name "eln-cache/" xdg_cache_home)))) + ;; Disable package.el (setq package-enable-at-startup nil) @@ -75,25 +91,9 @@ {{- end }} ;; Some GUI options -(push '(tool-bar-lines . 0) default-frame-alist) (push '(menu-bar-lines . 0) default-frame-alist) +(push '(tool-bar-lines . 0) default-frame-alist) (push '(vertical-scroll-bars) default-frame-alist) -;; Relocate emacs-user-directory to XDG_DATA_HOME -(setq user-emacs-directory - (expand-file-name "emacs/" (or (getenv "XDG_DATA_HOME") "~/.local/share/"))) - -;; Set cache directory -(setq xdg_cache_home - (expand-file-name "emacs/" (or (getenv "XDG_CACHE_HOME") "~/.cache/"))) -(unless (file-directory-p xdg_cache_home) - (make-directory xdg_cache_home)) - -;; Move eln-cache to XDG_CACHE_HOME -(when (fboundp 'startup-redirect-eln-cache) - (if (< emacs-major-version 29) - (push (expand-file-name "eln-cache/" xdg_cache_home) native-comp-eln-load-path) - (startup-redirect-eln-cache (expand-file-name "eln-cache/" xdg_cache_home)))) - (provide 'early-init) ;;; early-init.el ends here diff --git a/dot_config/emacs/init.el b/dot_config/emacs/init.el index c5c709e..f9a9848 100644 --- a/dot_config/emacs/init.el +++ b/dot_config/emacs/init.el @@ -10,7 +10,7 @@ ;;; Commentary: -;; My personal Emacs configuration. +;; My Emacs initialization file. ;;; License: @@ -39,6 +39,7 @@ (float-time (time-subtract (current-time) before-init-time))) gcs-done))) + ;;; Initialize elpaca (defvar elpaca-installer-version 0.6) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) @@ -88,6 +89,9 @@ (use-package emacs :elpaca nil :init + ;; Initial mode + (setq initial-major-mode 'fundamental-mode) + ;;; Vertico ;; Add prompt to `completing-read-multiple' (defun crm-indicator (args) @@ -124,7 +128,7 @@ scroll-conservatively 1000 scroll-preserve-screen-position t) (when (fboundp 'pixel-scroll-precision-mode) - (pixel-scroll-precision-mode t)) + (pixel-scroll-precision-mode)) ;; Cursor (setq-default cursor-type 'bar @@ -169,6 +173,8 @@ :elpaca nil :config (let ((auto_save_directory (concat xdg_cache_home "auto-save-list/"))) + (unless (file-directory-p auto_save_directory) + (make-directory auto_save_directory)) (setq backup-directory-alist `((".*" . ,auto_save_directory)) auto-save-file-name-transforms `((".*" ,auto_save_directory t)))) (setq backup-by-copying t @@ -183,7 +189,9 @@ :elpaca nil :defer 3 :hook - (((git-commit-mode markdown-mode) . flyspell-mode) + (((git-commit-mode + markdown-mode + text-mode) . flyspell-mode) (lsp-mode . flyspell-prog-mode))) (use-package mwheel @@ -262,7 +270,7 @@ (moody_inactive (face-attribute 'mode-line-inactive :background))) (set-face-attribute 'mode-line nil :overline moody_line) (set-face-attribute 'mode-line-inactive nil :overline moody_line) - (set-face-attribute 'mode-line-inactive nil :underline moody_line) + (set-face-attribute 'mode-line-inactive nil :underline moody_inactive) (set-face-attribute 'mode-line nil :box nil) (set-face-attribute 'mode-line-inactive nil :box nil) (set-face-attribute 'mode-line-inactive nil :background moody_inactive)) @@ -573,6 +581,7 @@ :hook (((c-ts-mode c++-ts-mode + csharp-ts-mode go-ts-mode python-ts-mode zig-mode) . lsp) @@ -601,7 +610,8 @@ ([remap xref-find-apropos] . consult-lsp-symbols))) (use-package lsp-treemacs - :after (lsp-mode treemacs)) + :after (lsp-mode treemacs) + :config (lsp-treemacs-sync-mode)) ;; Debugging (use-package dap-mode @@ -684,10 +694,16 @@ :custom (web-mode-attribute-indent-offset 2) (web-mode-code-indent-offset 2) - (web-mode-enable-front-matter-block t) + (web-mode-css-indent-offset 2) (web-mode-markup-indent-offset 2) + (web-mode-enable-front-matter-block t) + (web-mode-engines-alist '(("blade" . "\\.blade\\.") + ("razor" . "\\.cshtml\\'"))) :mode - ((("\\.astro\\'" "\\.html?\\'") . web-mode))) + ((("\\.astro\\'" + "\\.cshtml\\'" + "\\.html?\\'" + "\\.razor\\'") . web-mode))) ;; Zig (use-package zig-mode