about summary refs log tree commit diff
path: root/users/tazjin/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'users/tazjin/emacs')
-rw-r--r--users/tazjin/emacs/config/functions.el9
-rw-r--r--users/tazjin/emacs/default.nix10
2 files changed, 12 insertions, 7 deletions
diff --git a/users/tazjin/emacs/config/functions.el b/users/tazjin/emacs/config/functions.el
index df36c7eb882c..3739d25122ef 100644
--- a/users/tazjin/emacs/config/functions.el
+++ b/users/tazjin/emacs/config/functions.el
@@ -2,6 +2,8 @@
 (require 'dash)
 (require 'map)
 
+(require 'gio-list-apps) ;; native module!
+
 (defun goto-line-with-feedback ()
   "Show line numbers temporarily, while prompting for the line number input"
   (interactive)
@@ -336,12 +338,7 @@ names, instead of only their names (which might change)."
   "Use `//users/tazjin/gio-list-apps' to retrieve a list of
 installed (and visible) XDG apps, and let users launch them."
   (interactive)
-  (let* ((apps-json (s-lines (s-trim (shell-command-to-string "gio-list-apps"))))
-         (apps (seq-map (lambda (app)
-                          (let ((parsed (json-parse-string app :object-type 'alist)))
-                            (cons (cdr (assoc 'name parsed))
-                                  (cdr (assoc 'commandline parsed)))))
-                        apps-json))
+  (let* ((apps (taz-list-xdg-apps))
 
          ;; Display the command that will be run as an annotation
          (completion-extra-properties
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';