examples: Update emacs/init.el.

* modules/rosenthal/examples/emacs/init.el: Update.
This commit is contained in:
Hilton Chain 2025-06-24 15:12:30 +08:00
parent dc28ffd633
commit 072e07c4ea
No known key found for this signature in database
GPG Key ID: ACC66D09CA528292

View File

@ -3,47 +3,37 @@
;;; ;;;
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;; TODO:
;; 1. Configure geiser. Take a look at guile-studio.
;; 2. Make use of guix: comments.
;;; ;;;
;;; Init ;;; Init
;;; ;;;
(setopt custom-file (locate-user-emacs-file "custom.el"))
(if (not (file-exists-p custom-file))
(make-empty-file custom-file)
(load custom-file))
(load-file (locate-user-emacs-file "fonts.el"))
;; Tweak garbage collection strategy.
;;guix:emacs-gcmh
(use-package gcmh
:config
(gcmh-mode 1))
;; Set default storage locations for various packages.
;;guix:emacs-no-littering
(use-package no-littering
:config
(no-littering-theme-backups))
(use-package emacs (use-package emacs
:custom :custom
(blink-cursor-mode nil) (shell-file-name "/bin/sh") ;Workaround to use fish as login shell.
(browse-url-firefox-program "librewolf") (word-wrap-by-category t)) ;CJK support.
(completion-ignore-case t)
(enable-recursive-minibuffers t)
(fringe-mode 0)
(global-completion-preview-mode t)
(indent-tabs-mode nil)
(pixel-scroll-precision-mode t)
(read-buffer-completion-ignore-case t)
(read-extended-command-predicate 'command-completion-default-include-p)
(read-file-name-completion-ignore-case t)
(scroll-bar-mode nil)
(shell-file-name "/bin/sh")
(tool-bar-mode nil)
(tooltip-mode nil)
(word-wrap-by-category t)
(modus-themes-italic-constructs t)
:init
(setopt custom-file (locate-user-emacs-file "custom.el"))
(if (not (file-exists-p custom-file))
(make-empty-file custom-file)
(load custom-file))
(gcmh-mode 1)
(no-littering-theme-backups)
(load-file (locate-user-emacs-file "fonts.el"))
:config
(setopt electric-indent-inhibit t)
:hook
((after-init . electric-pair-mode)
(after-init . menu-bar-mode)
(after-init . minibuffer-depth-indicate-mode)
(after-init . savehist-mode)
(before-save . delete-trailing-whitespace)
(prog-mode . display-fill-column-indicator-mode))
:bind (([remap list-buffers] . switch-to-buffer)))
;;; ;;;
@ -52,10 +42,45 @@
(use-package emacs (use-package emacs
:custom :custom
(modus-themes-italic-constructs t) (blink-cursor-mode nil)
:config (browse-url-firefox-program "librewolf")
(load-theme 'modus-operandi-tinted :no-confirm)) (enable-recursive-minibuffers t)
;; Scrolling enhancement.
(pixel-scroll-precision-mode t)
;; Exclude unavailable completions.
(read-extended-command-predicate 'command-completion-default-include-p)
;; Case-insensitive completion.
(completion-ignore-case t)
(read-buffer-completion-ignore-case t)
(read-file-name-completion-ignore-case t)
:bind
([remap list-buffers] . switch-to-buffer)
:hook
;; Indicatior for recursive minibuffers.
(after-init . minibuffer-depth-indicate-mode)
;; Save minibuffer history.
(after-init . savehist-mode)
;; Indicator for `fill-column'.
(prog-mode . display-fill-column-indicator-mode))
;; Theming
(use-package emacs
:custom
(fringe-mode 0)
(modus-themes-italic-constructs t)
(scroll-bar-mode nil)
(tool-bar-mode nil)
(tooltip-mode nil)
:config
(load-theme 'modus-operandi-tinted :no-confirm)
:hook
(after-init . menu-bar-mode))
(use-package completion-preview
:custom
(global-completion-preview-mode t))
;;guix:emacs-doom-modeline
(use-package doom-modeline (use-package doom-modeline
:custom :custom
(doom-modeline-icon nil) (doom-modeline-icon nil)
@ -63,6 +88,7 @@
:hook :hook
(after-init . doom-modeline-mode)) (after-init . doom-modeline-mode))
;;guix:emacs-helpful
(use-package helpful (use-package helpful
:bind :bind
(([remap describe-function] . helpful-callable) (([remap describe-function] . helpful-callable)
@ -72,6 +98,7 @@
([remap describe-symbol] . helpful-symbol) ([remap describe-symbol] . helpful-symbol)
("C-c C-d" . helpful-at-point))) ("C-c C-d" . helpful-at-point)))
;;guix:emacs-hl-todo
(use-package hl-todo (use-package hl-todo
:custom :custom
(hl-todo-highlight-punctuation ":") (hl-todo-highlight-punctuation ":")
@ -85,11 +112,13 @@
(regexp-search-ring-max 200) (regexp-search-ring-max 200)
(search-ring-max 200)) (search-ring-max 200))
;;guix:emacs-mwim
(use-package mwim (use-package mwim
:bind :bind
(([remap move-beginning-of-line] . mwim-beginning) (([remap move-beginning-of-line] . mwim-beginning)
([remap move-end-of-line] . mwim-end))) ([remap move-end-of-line] . mwim-end)))
;;guix:emacs-orderless
(use-package orderless (use-package orderless
:custom :custom
(completion-styles '(orderless basic)) (completion-styles '(orderless basic))
@ -102,10 +131,12 @@
:hook :hook
(after-init . show-paren-mode)) (after-init . show-paren-mode))
;;guix:emacs-rainbow-delimiters
(use-package rainbow-delimiters (use-package rainbow-delimiters
:hook :hook
(prog-mode . rainbow-delimiters-mode)) (prog-mode . rainbow-delimiters-mode))
;;guix:emacs-vertico
(use-package vertico (use-package vertico
:hook :hook
(after-init . vertico-mode)) (after-init . vertico-mode))
@ -131,19 +162,35 @@
;;; Editing ;;; Editing
;;; ;;;
(use-package emacs
:custom
;; Disable tab indentation.
(indent-tabs-mode nil)
:config
;; Avoid re-indenting current line after entering RET.
(setopt electric-indent-inhibit t)
:hook
(before-save . delete-trailing-whitespace)
;; Automatic parenthesis pairing.
(after-init . electric-pair-mode))
;;guix:emacs-macrostep
(use-package macrostep (use-package macrostep
:bind :bind
("C-c e" . macrostep-expand)) ("C-c e" . macrostep-expand))
;;guix:emacs-puni
(use-package puni (use-package puni
:hook :hook
((eval-expression-minibuffer-setup nxml-mode prog-mode sgml-mode tex-mode) . puni-mode)) ((eval-expression-minibuffer-setup nxml-mode prog-mode sgml-mode tex-mode)
. puni-mode))
;;; ;;;
;;; Miscellaneous ;;; Miscellaneous
;;; ;;;
;;guix:emacs-daemons
(use-package daemons (use-package daemons
:custom :custom
(daemons-list-fill-frame t)) (daemons-list-fill-frame t))
@ -162,10 +209,12 @@
(dired-create-destination-dirs-on-trailing-dirsep t) (dired-create-destination-dirs-on-trailing-dirsep t)
(dired-vc-rename-file t)) (dired-vc-rename-file t))
;;guix:emacs-envrc
(use-package envrc (use-package envrc
:hook :hook
(after-init . envrc-global-mode)) (after-init . envrc-global-mode))
;;guix:emacs-magit
(use-package magit (use-package magit
:custom :custom
(git-commit-cd-to-toplevel t) (git-commit-cd-to-toplevel t)
@ -175,5 +224,6 @@
(:map project-prefix-map (:map project-prefix-map
("m" . magit-project-status))) ("m" . magit-project-status)))
;;guix:emacs-forge
(use-package forge (use-package forge
:after (magit)) :after (magit))