about summary refs log tree commit diff
path: root/users/tazjin/emacs/default.nix
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@tvl.su>2023-08-29T12·43+0300
committerclbot <clbot@tvl.fyi>2023-08-29T14·07+0000
commite5f7fe430d582c96b911b79dad03fad7c2d6aa9e (patch)
tree16528afb6d7aabedac82244ef8f3556ed23f13c9 /users/tazjin/emacs/default.nix
parentd6bce3f83d2c1052c38ecba1445bbc10a9f03123 (diff)
refactor(tazjin/gio-list-apps): refactor into dynamic Emacs module r/6534
Instead of producing a binary that gets called by Emacs, with
input/output serialisation, use a dynamic Emacs module that lets Emacs
more-or-less directly call the relevant GTK functions.

I'm doing this mostly as an experiment. Might be interesting to end up
with a dynamic module that I can dump some experimental code into that
improves my workflows.

To do this, I've exposed the emacs binary used by my Emacs
configuration in an additional `passthru` field. This ensures that the
module is linked against the right version of Emacs.

Change-Id: I1426994fe3455ed1b2a685c5a09705e29fa40950
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9163
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'users/tazjin/emacs/default.nix')
-rw-r--r--users/tazjin/emacs/default.nix10
1 files changed, 9 insertions, 1 deletions
diff --git a/users/tazjin/emacs/default.nix b/users/tazjin/emacs/default.nix
index e9acf57da1dc..022d78ff4b85 100644
--- a/users/tazjin/emacs/default.nix
+++ b/users/tazjin/emacs/default.nix
@@ -13,7 +13,6 @@ pkgs.makeOverridable
 
     # $PATH for binaries that need to be available to Emacs
     emacsBinPath = lib.makeBinPath [
-      depot.users.tazjin.gio-list-apps
       (currentTelega pkgs.emacsPackages)
       pkgs.libwebp # for dwebp, required by telega
     ];
@@ -100,6 +99,9 @@ pkgs.makeOverridable
       tvlPackages.rcirc
       tvlPackages.term-switcher
       tvlPackages.tvl
+
+      # Dynamic/native modules
+      depot.users.tazjin.gio-list-apps
     ])));
 
     # Tired of telega.el runtime breakages through tdlib
@@ -138,6 +140,12 @@ pkgs.makeOverridable
     '').overrideAttrs
       (_: {
         passthru = {
+          # Expose original Emacs used for my configuration.
+          inherit emacs;
+
+          # Expose the pure emacs with all packages.
+          emacsWithPackages = tazjinsEmacs f;
+
           # Call overrideEmacs with a function (pkgs -> pkgs) to modify the
           # packages that should be included in this Emacs distribution.
           overrideEmacs = f': self l f';