Add ‘emacs-oni-hy’

I just added a configuration for programming in Hy. This is the first step for
moving more of my Emacs configuration into guix home. Instead of adding the
autoload for ‘oni-hy’ in the ‘oni-core’ package, I've added it directly to my
Guix configuration. In the future I'll want to change this so that each package
gets its own configuration and also extends my Emacs configuration so that it
automatically adds these autoloads when I add a package.
This commit is contained in:
Tom Willemse 2023-07-14 00:54:48 -07:00
parent 5aa1d0c0e8
commit b144e84ea5
4 changed files with 46 additions and 13 deletions

View file

@ -40,6 +40,9 @@
#:select (channel
make-channel-introduction
openpgp-fingerprint))
#:use-module ((guix gexp)
#:select (local-file
mixed-text-file))
#:use-module ((guix packages)
#:select (package-name))
#:use-module ((guix transformations)
@ -107,7 +110,8 @@
emacs-oni-common-lisp
emacs-oni-gui
emacs-oni-magit
emacs-oni-notmuch))
emacs-oni-notmuch
emacs-oni-hy))
#:use-module ((oni packages hlwm-run-or-raise)
#:select (hlwm-run-or-raise))
#:use-module ((oni packages inbox-size)
@ -215,6 +219,7 @@
emacs-oni-gui
emacs-oni-magit
emacs-oni-notmuch
emacs-oni-hy
gforth
recutils
emacs-rec-mode
@ -280,7 +285,17 @@
(service home-emacs-service-type
(home-emacs-configuration
(package emacs-next)))
(package emacs-next)
(configurations
(list
(local-file "../services/emacs/init.el")
(mixed-text-file
"init.el"
"(with-eval-after-load 'hy-mode (require 'oni-hy))\n"
"(setq custom-file \"~/.config/emacs/custom.el\")\n"
"(load custom-file)\n"
"(provide 'init)\n"
";;; init.el ends here\n")))))
(service home-flameshot-service-type)

View file

@ -1,7 +1,9 @@
(define-module (oni home services emacs)
#:use-module ((gnu services configuration)
#:select (serialize-package
define-configuration))
define-configuration
text-config?
serialize-text-config))
#:use-module ((gnu packages emacs)
#:select (emacs))
#:use-module ((gnu home services)
@ -15,7 +17,8 @@
#:use-module ((guix gexp)
#:select (gexp
file-append
local-file))
local-file
mixed-text-file))
#:use-module ((guix packages)
#:select (package?))
@ -25,7 +28,10 @@
(define-configuration home-emacs-configuration
(package
(package emacs)
"Package to use for setting Emacs"))
"Package to use for setting Emacs")
(configurations
(text-config '())
"A list of other configuration files to autoload"))
(define (add-emacs-packages config)
(list (home-emacs-configuration-package config)))
@ -44,7 +50,10 @@
(stop #~(make-kill-destructor)))))
(define (home-emacs-config-files config)
`((".emacs.d/init.el" ,(local-file "emacs/init.el"))))
`((".emacs.d/init.el"
,(mixed-text-file
"init.el"
(serialize-text-config config (home-emacs-configuration-configurations config))))))
(define home-emacs-service-type
(service-type

View file

@ -50,8 +50,3 @@
(with-eval-after-load 'electric
(add-hook 'electric-quote-inhibit-functions #'oni-in-word-p))
(setq custom-file "~/.config/emacs/custom.el")
(load custom-file)
(provide 'init)
;;; init.el ends here

View file

@ -13,7 +13,7 @@
#:use-module (oni packages go))
(define-public emacs-oni-config
(let ((commit "e38bb344e4196aa2a1488e9611d1ccecdeb5acd6")
(let ((commit "23ff70c4ef428bf554b4448c860e9b61c2db84f4")
(revision "0"))
(package
(name "emacs-oni-config")
@ -26,7 +26,7 @@
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "15c7iyx8hisb07dpk6wi1dh8alirz0v7srca986a427b2h6002f1"))))
(base32 "04i2xham1zwip85zrx76f1mvkaicnkfyw1bp98wx999igg1vlivx"))))
(build-system emacs-build-system)
(home-page "https://code.ryuslash.org/ryuslash/emacs-config")
(synopsis "My Emacs configuration")
@ -601,3 +601,17 @@ Emacs")))
emacs-ol-notmuch))
(synopsis "My notmuch configuration for Emacs.")
(description "This package provides my configuration for notmuch.")))
(define-public emacs-oni-hy
(package
(inherit emacs-oni-config)
(name "emacs-oni-hy")
(arguments
'(#:include '("oni-hy\\.el$")))
(propagated-inputs
(list emacs-hy-mode
emacs-oni-paredit
emacs-oni-yasnippet
emacs-rainbow-delimiters))
(synopsis "My Hy configuration")
(description "This package provides my configuration for Hy.")))