Compare commits

...

10 Commits

Author SHA1 Message Date
Hilton Chain
9d7be1f81c
examples: emacs: Add fontconfig into the manifest.
To provide XDG_DATA_DIRS search path.

* modules/rosenthal/examples/emacs/manifest.tmpl: Add fontconfig.
2026-02-16 15:44:43 +08:00
Hilton Chain
e712df7088
examples: emacs: Adjust interface.
* modules/rosenthal/examples/emacs/init-interface.el (emacs): Enable scroll
bar, tool bar and tooltip.
Remove explicit enabling of menu bar.
2026-02-16 15:32:09 +08:00
Hilton Chain
3a4e97642b
examples: emacs: Set emacs-corfu keymap via use-package keyword ‘:bind’.
* modules/rosenthal/examples/emacs/init-interface.el (corfu): Move keymap
setup to ‘:bind’.
2026-02-16 15:22:16 +08:00
Hilton Chain
ec978c44fa
examples: emacs: Fix manifest.
Guile treats .scm extensions as modules.

* modules/rosenthal/examples/emacs/manifest.scm: Rename to...
* modules/rosenthal/examples/emacs/manifest.tmpl: ...this new file.
* modules/rosenthal/examples/emacs/install.sh: Adjust accordingly.
2026-02-16 14:09:23 +08:00
Hilton Chain
9c89821d25
examples: emacs: Remove --dry-run from install.sh.
This is a follow-up to commit c83606a8c7.

* modules/rosenthal/examples/emacs/install.sh: Remove --dry-run.
2026-02-16 14:01:47 +08:00
Hilton Chain
7e6e089e45
examples: emacs: Add emacs-evil.
* modules/rosenthal/examples/emacs/manifest.scm: Add emacs-evil.
* modules/rosenthal/examples/emacs/init.el (initial-scratch-message): Mention
it.
* modules/rosenthal/examples/guix/config.tmpl (%my-home) [packages]: Adjust
accordingly.
2026-02-16 13:59:39 +08:00
Hilton Chain
9d90607a02
examples: emacs: Disable cua-mode by default.
* modules/rosenthal/examples/emacs/init-editing.el (emacs): Disable ‘cua-mode’.
* modules/rosenthal/examples/emacs/init.el: Add it to initial-scratch-message.
2026-02-16 13:59:26 +08:00
Hilton Chain
83edc24958
examples: emacs: Add more packages.
* modules/rosenthal/examples/emacs/manifest.scm: Add emacs-edit-indirect,
emacs-fish-mode, emacs-json-mode, emacs-markdown-mode and emacs-nftables-mode.
* modules/rosenthal/examples/guix/config.tmpl (%my-home) [packages]: Adjust
accordingly.
2026-02-16 13:58:49 +08:00
Hilton Chain
725aaa9044
examples: emacs: Remove emacs-daemons.
* modules/rosenthal/examples/emacs/manifest.scm: Remove emacs-daemons.
* modules/rosenthal/examples/emacs/init-miscellaneous.el (daemons): Remove.
* modules/rosenthal/examples/guix/config.tmpl (%my-home) [packages]: Adjust
accordingly.
2026-02-16 13:57:51 +08:00
Hilton Chain
c83606a8c7
examples: emacs: Add manifest.scm.
* modules/rosenthal/examples/emacs/manifest.scm: New file.
* modules/rosenthal/examples/emacs/init-editing.el,
* modules/rosenthal/examples/emacs/init-fonts.el,
* modules/rosenthal/examples/emacs/init-interface.el,
* modules/rosenthal/examples/emacs/init-miscellaneous.el,
* modules/rosenthal/examples/emacs/init.el,
* modules/rosenthal/examples/emacs/install.sh: Adjust accordingly.
2026-02-16 13:47:14 +08:00
8 changed files with 58 additions and 49 deletions

View File

@ -11,22 +11,17 @@
(setopt electric-indent-inhibit t) (setopt electric-indent-inhibit t)
:hook :hook
(before-save . delete-trailing-whitespace) (before-save . delete-trailing-whitespace)
;; Use Ctrl-C/X/Z for copy, cut, paste.
(after-init . cua-mode)
;; Automatic parenthesis pairing. ;; Automatic parenthesis pairing.
(after-init . electric-pair-mode)) (after-init . electric-pair-mode))
;; Check syntax on the fly. ;; Check syntax on the fly.
;;guix:emacs-flycheck
(use-package flycheck (use-package flycheck
:hook :hook
(after-init . global-flycheck-mode)) (after-init . global-flycheck-mode))
;;guix:emacs-flycheck-guile
(use-package flycheck-guile (use-package flycheck-guile
:after (flycheck geiser-guile)) :after (flycheck geiser-guile))
;;guix:emacs-geiser
(use-package geiser (use-package geiser
:custom :custom
(geiser-autodoc-identifier-format "%s → %s") (geiser-autodoc-identifier-format "%s → %s")
@ -55,7 +50,6 @@
(mouse-set-point event) (mouse-set-point event)
(popup-menu (context-menu))))) (popup-menu (context-menu)))))
;;guix:emacs-geiser-guile
(use-package geiser-guile (use-package geiser-guile
:after (geiser) :after (geiser)
:custom :custom
@ -76,12 +70,10 @@
"/run/current-system/profile/share/guile/site/3.0"))) "/run/current-system/profile/share/guile/site/3.0")))
(add-to-list 'geiser-guile-load-path path t))) (add-to-list 'geiser-guile-load-path path t)))
;;guix:emacs-macrostep
(use-package macrostep (use-package macrostep
:bind :bind
("C-c e" . macrostep-expand)) ("C-c e" . macrostep-expand))
;;guix:emacs-macrostep-geiser
(use-package macrostep-geiser (use-package macrostep-geiser
:after (geiser-mode) :after (geiser-mode)
:hook :hook
@ -92,7 +84,6 @@
:hook :hook
(geiser-repl-mode . macrostep-geiser-setup)) (geiser-repl-mode . macrostep-geiser-setup))
;;guix:emacs-puni
(use-package puni (use-package puni
:hook :hook
((eval-expression-minibuffer-setup nxml-mode prog-mode sgml-mode tex-mode) ((eval-expression-minibuffer-setup nxml-mode prog-mode sgml-mode tex-mode)

View File

@ -2,10 +2,6 @@
;; https://github.com/nykma/nema/blob/develop/my-sample/font.el ;; https://github.com/nykma/nema/blob/develop/my-sample/font.el
;;guix:font-adobe-source-serif
;;guix:font-google-noto-emoji
;;guix:font-sarasa-gothic
;;guix:font-victor-mono
(defvar nema--font-size 12 "Font size") (defvar nema--font-size 12 "Font size")
(defvar nema-fonts '((sans . "sans") (defvar nema-fonts '((sans . "sans")
(serif . "serif") (serif . "serif")

View File

@ -30,27 +30,21 @@
:custom :custom
(fringe-mode 0) (fringe-mode 0)
(modus-themes-italic-constructs t) (modus-themes-italic-constructs t)
(scroll-bar-mode nil)
(tool-bar-mode nil)
(tooltip-mode nil)
:config :config
(load-theme 'modus-operandi-tinted :no-confirm) (load-theme 'modus-operandi-tinted :no-confirm))
:hook
(after-init . menu-bar-mode))
;;guix:emacs-corfu
(use-package corfu (use-package corfu
:custom :custom
;; Auto-completion. ;; Auto-completion.
(corfu-auto t) (corfu-auto t)
(corfu-auto-delay 0.3) (corfu-auto-delay 0.3)
:config
;; Free the `RET' key for less intrusive behavior.
(keymap-unset corfu-map "RET")
:hook :hook
(after-init . global-corfu-mode)) (after-init . global-corfu-mode)
:bind
;; Free the `RET' key for less intrusive behavior.
(:map corfu-map
("RET" . nil)))
;;guix:emacs-doom-modeline
(use-package doom-modeline (use-package doom-modeline
:custom :custom
(doom-modeline-icon nil) (doom-modeline-icon nil)
@ -58,7 +52,6 @@
: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)
@ -68,7 +61,6 @@
([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 ":")
@ -82,13 +74,11 @@
(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))
@ -101,12 +91,10 @@
: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))

View File

@ -1,10 +1,5 @@
;;; -*- lexical-binding: t -*- ;;; -*- lexical-binding: t -*-
;;guix:emacs-daemons
(use-package daemons
:custom
(daemons-list-fill-frame t))
(use-package dired (use-package dired
:custom :custom
(dired-listing-switches (dired-listing-switches
@ -18,12 +13,10 @@
(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))
@ -35,6 +28,5 @@
(: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))

View File

@ -6,13 +6,11 @@
(load custom-file)) (load custom-file))
;; Tweak garbage collection strategy. ;; Tweak garbage collection strategy.
;;guix:emacs-gcmh
(use-package gcmh (use-package gcmh
:config :config
(gcmh-mode 1)) (gcmh-mode 1))
;; Set default storage locations for various packages. ;; Set default storage locations for various packages.
;;guix:emacs-no-littering
(use-package no-littering (use-package no-littering
:config :config
(no-littering-theme-backups)) (no-littering-theme-backups))
@ -34,7 +32,11 @@
(progn (progn
(setopt initial-scratch-message (setopt initial-scratch-message
";;; Type your Guile program here and evaluate it.\n\n") "\
;;; Type your Guile program here and evaluate it.
;;; `M-x cua-mode' to use Ctrl-C/X/Z for copy, cut, paste.
;;; `M-x evil-mode' for Vim-like experience.
\n")
(scheme-mode) (scheme-mode)
(geiser-repl-import-module "(gnu)") (geiser-repl-import-module "(gnu)")
(geiser-repl-import-module "(nonguix)") (geiser-repl-import-module "(nonguix)")

View File

@ -1,7 +1,4 @@
#!/bin/sh #!/bin/sh
dir="$(dirname "$(realpath "$0")")"
grep --recursive --no-filename '^;;guix:' . | [[ ! -e ~/.config/emacs/init.el ]] && cp --recursive "$dir/." ~/.config/emacs
sed --regexp-extended 's/^;;guix:(.*)/"\1"/g' | guix package --install --manifest="$dir/manifest.tmpl"
xargs guix install emacs-pgtk
[[ ! -e ~/.config/emacs/init.el ]] && cp --recursive . ~/.config/emacs

View File

@ -0,0 +1,38 @@
;;; -*- mode: scheme -*-
(use-modules (gnu packages))
(specifications->manifest
'("emacs-pgtk"
"emacs-corfu"
"emacs-doom-modeline"
"emacs-edit-indirect" ;for emacs-markdown-mode.
"emacs-envrc"
"emacs-evil"
"emacs-fish-mode"
"emacs-flycheck"
"emacs-flycheck-guile"
"emacs-forge"
"emacs-gcmh"
"emacs-geiser"
"emacs-geiser-guile"
"emacs-helpful"
"emacs-hl-todo"
"emacs-json-mode"
"emacs-macrostep"
"emacs-macrostep-geiser"
"emacs-magit"
"emacs-markdown-mode"
"emacs-mwim"
"emacs-nftables-mode"
"emacs-no-littering"
"emacs-orderless"
"emacs-puni"
"emacs-rainbow-delimiters"
"emacs-vertico"
"fontconfig"
"font-adobe-source-serif"
"font-google-noto-emoji"
"font-sarasa-gothic"
"font-victor-mono"
))

View File

@ -45,9 +45,11 @@
"neovim" "neovim"
"emacs-corfu" "emacs-corfu"
"emacs-daemons"
"emacs-doom-modeline" "emacs-doom-modeline"
"emacs-edit-indirect" ;for emacs-markdown-mode.
"emacs-envrc" "emacs-envrc"
"emacs-evil"
"emacs-fish-mode"
"emacs-flycheck" "emacs-flycheck"
"emacs-flycheck-guile" "emacs-flycheck-guile"
"emacs-forge" "emacs-forge"
@ -56,10 +58,13 @@
"emacs-geiser-guile" "emacs-geiser-guile"
"emacs-helpful" "emacs-helpful"
"emacs-hl-todo" "emacs-hl-todo"
"emacs-json-mode"
"emacs-macrostep" "emacs-macrostep"
"emacs-macrostep-geiser" "emacs-macrostep-geiser"
"emacs-magit" "emacs-magit"
"emacs-markdown-mode"
"emacs-mwim" "emacs-mwim"
"emacs-nftables-mode"
"emacs-no-littering" "emacs-no-littering"
"emacs-orderless" "emacs-orderless"
"emacs-puni" "emacs-puni"