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
;; TODO:
;; 1. Configure geiser. Take a look at guile-studio.
;; 2. Make use of guix: comments.
;;;
;;; 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
:custom
(blink-cursor-mode nil)
(browse-url-firefox-program "librewolf")
(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)))
(shell-file-name "/bin/sh") ;Workaround to use fish as login shell.
(word-wrap-by-category t)) ;CJK support.
;;;
@ -52,10 +42,45 @@
(use-package emacs
:custom
(modus-themes-italic-constructs t)
:config
(load-theme 'modus-operandi-tinted :no-confirm))
(blink-cursor-mode nil)
(browse-url-firefox-program "librewolf")
(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
:custom
(doom-modeline-icon nil)
@ -63,6 +88,7 @@
:hook
(after-init . doom-modeline-mode))
;;guix:emacs-helpful
(use-package helpful
:bind
(([remap describe-function] . helpful-callable)
@ -72,6 +98,7 @@
([remap describe-symbol] . helpful-symbol)
("C-c C-d" . helpful-at-point)))
;;guix:emacs-hl-todo
(use-package hl-todo
:custom
(hl-todo-highlight-punctuation ":")
@ -85,11 +112,13 @@
(regexp-search-ring-max 200)
(search-ring-max 200))
;;guix:emacs-mwim
(use-package mwim
:bind
(([remap move-beginning-of-line] . mwim-beginning)
([remap move-end-of-line] . mwim-end)))
;;guix:emacs-orderless
(use-package orderless
:custom
(completion-styles '(orderless basic))
@ -102,10 +131,12 @@
:hook
(after-init . show-paren-mode))
;;guix:emacs-rainbow-delimiters
(use-package rainbow-delimiters
:hook
(prog-mode . rainbow-delimiters-mode))
;;guix:emacs-vertico
(use-package vertico
:hook
(after-init . vertico-mode))
@ -131,19 +162,35 @@
;;; 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
:bind
("C-c e" . macrostep-expand))
;;guix:emacs-puni
(use-package puni
: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
;;;
;;guix:emacs-daemons
(use-package daemons
:custom
(daemons-list-fill-frame t))
@ -162,10 +209,12 @@
(dired-create-destination-dirs-on-trailing-dirsep t)
(dired-vc-rename-file t))
;;guix:emacs-envrc
(use-package envrc
:hook
(after-init . envrc-global-mode))
;;guix:emacs-magit
(use-package magit
:custom
(git-commit-cd-to-toplevel t)
@ -175,5 +224,6 @@
(:map project-prefix-map
("m" . magit-project-status)))
;;guix:emacs-forge
(use-package forge
:after (magit))