aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2023-07-14 00:54:48 -0700
committerGravatar Tom Willemse2023-07-14 00:54:48 -0700
commitb144e84ea5b013fdd161287d4d5a6eb12f02e53b (patch)
treecdb428cd1b5049a77caafd8f192dd2f394e805d1
parent5aa1d0c0e8069bdce3ff938948bfaeeb1e10c834 (diff)
downloadnew-dotfiles-b144e84ea5b013fdd161287d4d5a6eb12f02e53b.tar.gz
new-dotfiles-b144e84ea5b013fdd161287d4d5a6eb12f02e53b.zip
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.
-rw-r--r--oni/home/config/rincewind.scm19
-rw-r--r--oni/home/services/emacs.scm17
-rw-r--r--oni/home/services/emacs/init.el5
-rw-r--r--oni/packages/emacs-config.scm18
4 files changed, 46 insertions, 13 deletions
diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm
index d095fb1..6643360 100644
--- a/oni/home/config/rincewind.scm
+++ b/oni/home/config/rincewind.scm
@@ -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)
diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm
index 6f9ec3e..137da8a 100644
--- a/oni/home/services/emacs.scm
+++ b/oni/home/services/emacs.scm
@@ -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
diff --git a/oni/home/services/emacs/init.el b/oni/home/services/emacs/init.el
index 87fb81c..b628c81 100644
--- a/oni/home/services/emacs/init.el
+++ b/oni/home/services/emacs/init.el
@@ -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
diff --git a/oni/packages/emacs-config.scm b/oni/packages/emacs-config.scm
index deb83ff..68c7384 100644
--- a/oni/packages/emacs-config.scm
+++ b/oni/packages/emacs-config.scm
@@ -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.")))