From e0644a069de6c3e1eb066208245608b2ffb64b95 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Thu, 23 Jan 2025 01:52:37 -0500 Subject: [PATCH] Add support for non-graphical emacs. --- nix/configuration/roles/emacs/default.nix | 46 +++++++++++++++-------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/nix/configuration/roles/emacs/default.nix b/nix/configuration/roles/emacs/default.nix index 93fb2dc..ce89404 100644 --- a/nix/configuration/roles/emacs/default.nix +++ b/nix/configuration/roles/emacs/default.nix @@ -63,9 +63,9 @@ in lib.mkMerge [ { environment.systemPackages = with pkgs; [ - emacs29-pgtk - (plainmacs emacs29-pgtk) - (e_shorthand emacs29-pgtk) + my_emacs + (plainmacs my_emacs) + (e_shorthand my_emacs) ]; environment.persistence."/state" = lib.mkIf (!config.me.buildingIso) { @@ -84,35 +84,49 @@ in }; }; - environment.variables.EDITOR = "${pkgs.emacs29-pgtk}/bin/plainmacs"; + environment.variables.EDITOR = "${pkgs.my_emacs}/bin/plainmacs"; } + (lib.mkIf (config.me.graphical) { + nixpkgs.overlays = [ + (final: prev: { + my_emacs = final.emacs29-pgtk; + }) + ]; + }) + (lib.mkIf (!config.me.graphical) { + nixpkgs.overlays = [ + (final: prev: { + my_emacs = final.emacs-nox; + }) + ]; + }) (lib.mkIf (config.me.emacs_flavor == "full") { nixpkgs.overlays = [ (final: prev: { - emacs29-pgtk = pkgs.buildEnv { - name = prev.emacs29-pgtk.name; + my_emacs = pkgs.buildEnv { + name = prev.my_emacs.name; paths = with prev; [ - emacs29-pgtk + my_emacs ]; extraOutputsToInstall = [ "man" "doc" "info" ]; - buildInputs = [ pkgs.makeWrapper ]; + buildInputs = [ final.makeWrapper ]; postBuild = '' wrapProgram $out/bin/emacs --prefix PATH : ${ lib.makeBinPath [ - (pkgs.aspellWithDicts ( + (final.aspellWithDicts ( dicts: with dicts; [ en en-computers ] )) - pkgs.nixd # nix language server - pkgs.nixfmt-rfc-style # auto-formatting nix files through nixd - pkgs.clang # To compile tree-sitter grammars - pkgs.shellcheck + final.nixd # nix language server + final.nixfmt-rfc-style # auto-formatting nix files through nixd + final.clang # To compile tree-sitter grammars + final.shellcheck ] } ''; @@ -132,10 +146,10 @@ in (lib.mkIf (config.me.emacs_flavor == "plainmacs") { nixpkgs.overlays = [ (final: prev: { - emacs29-pgtk = pkgs.buildEnv { - name = prev.emacs29-pgtk.name; + my_emacs = pkgs.buildEnv { + name = prev.my_emacs.name; paths = with prev; [ - emacs29-pgtk + my_emacs ]; extraOutputsToInstall = [ "man"