From c704b661ecdd6b6f175db40659844537363df7c1 Mon Sep 17 00:00:00 2001 From: Artur Manuel Date: Mon, 26 Aug 2024 20:14:34 +0100 Subject: [PATCH] refactor: create an emacs wrapper Why this is being done is just to include texliveTeTeX in my Emacs package. This is done because I want to be able to export PDFs without ever needing to remember to make a new devShell just for a document. --- package/default.nix | 105 ++++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/package/default.nix b/package/default.nix index 9e0b42a..e8ad13e 100644 --- a/package/default.nix +++ b/package/default.nix @@ -1,49 +1,60 @@ -{ emacsWithPackagesFromUsePackage, emacs29-pgtk, python3, texliveTeTeX }: -emacsWithPackagesFromUsePackage { +{ symlinkJoin, emacsWithPackagesFromUsePackage, emacs29-pgtk, python3, texliveFull, makeWrapper, lib }: +let + emacs-linux = emacsWithPackagesFromUsePackage { package = emacs29-pgtk; - config = ./config.org; - defaultInitFile = true; - alwaysEnsure = true; - alwaysTangle = true; - extraEmacsPackages = - e: (builtins.attrValues { - inherit (e) - nix-ts-mode - base16-theme - vertico - orderless - marginalia - embark - consult - embark-consult - consult-dir - doom-modeline - flycheck - which-key - lsp-mode - lsp-ui - lsp-pyright - treemacs - lsp-treemacs - consult-lsp - treemacs-icons-dired - treemacs-nerd-icons - nerd-icons - all-the-icons - projectile - treemacs-projectile - magit - treemacs-magit - rustic - haskell-mode - envrc - ccls - org-roam - ; - }) ++ [ - e.treesit-grammars.with-all-grammars - python3 - texliveTeTeX - ]; - override = _: prev: { use-package = prev.emacs; }; + config = ./config.org; + defaultInitFile = true; + alwaysEnsure = true; + alwaysTangle = true; + extraEmacsPackages = + e: (builtins.attrValues { + inherit (e) + nix-ts-mode + base16-theme + vertico + orderless + marginalia + embark + consult + embark-consult + consult-dir + doom-modeline + flycheck + which-key + lsp-mode + lsp-ui + lsp-pyright + treemacs + lsp-treemacs + consult-lsp + treemacs-icons-dired + treemacs-nerd-icons + nerd-icons + all-the-icons + projectile + treemacs-projectile + magit + treemacs-magit + rustic + haskell-mode + envrc + ccls + org-roam + ; + }) ++ [ + e.treesit-grammars.with-all-grammars + python3 + ]; + override = _: prev: { use-package = prev.emacs; }; + }; +in +symlinkJoin { + name = "emacs"; + paths = [ texliveFull emacs-linux ]; + buildInputs = [ makeWrapper ]; + postBuild = '' + mkdir -p $out/bin + wrapProgram $out/bin/emacs \ + --set PATH ${lib.makeBinPath [ texliveFull ]}:$PATH + ''; }