From af1d3f759217428a3fccebddc3c254f4f90dbd5e Mon Sep 17 00:00:00 2001 From: caem Date: Sat, 5 Apr 2025 22:44:21 +0200 Subject: [PATCH] emacs: Install plugins from nix repositories Maybe I should also look in to removing melpa and ensure? I could maybe also remove elpa itself potentially? This way I could make sure that no extra packages are ever installed that are not directly managed through Nix. But then it would be quite annyoing to use my config for someone not using nix. For that purpose I could maybe look in to supporting nix on non-nixos again maybe? --- .../home/caem/development/emacs/default.nix | 26 ++++++++++++++----- .../emacs/emacs.d/core/repositories.el | 6 ----- .../emacs/emacs.d/modes/nix-mode.el | 3 +++ 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/modules/home/caem/development/emacs/default.nix b/modules/home/caem/development/emacs/default.nix index dbc80b9..7fb5087 100644 --- a/modules/home/caem/development/emacs/default.nix +++ b/modules/home/caem/development/emacs/default.nix @@ -1,20 +1,32 @@ { pkgs, config, ... }: let - # Has to be >= 29.1 due to treesitter - emacsPkg = "emacs30"; + emacs-package = pkgs.emacs30-pgtk; in { services.emacs = { enable = true; - package = pkgs."${emacsPkg}"; - defaultEditor = true; + package = emacs-package; + socketActivation.enable = true; }; programs.emacs = { enable = true; - package = (pkgs."${emacsPkg}-pgtk".pkgs.withPackages (epkgs: [ - epkgs.treesit-grammars.with-all-grammars - ])); + package = emacs-package; + extraPackages = epkgs: with epkgs; [ + treesit-grammars.with-all-grammars + vterm + paredit + nix-mode + meson-mode + rainbow-delimiters + darktooth-theme + smex + amx + # Why the fuck would you put a '+' in your package's name + (builtins.getAttr "ido-completing-read+" epkgs) + no-littering + treesit-auto + ]; }; home.file."${config.xdg.configHome}/emacs".source = ./emacs.d; diff --git a/modules/home/caem/development/emacs/emacs.d/core/repositories.el b/modules/home/caem/development/emacs/emacs.d/core/repositories.el index a0754ce..cb9566b 100644 --- a/modules/home/caem/development/emacs/emacs.d/core/repositories.el +++ b/modules/home/caem/development/emacs/emacs.d/core/repositories.el @@ -6,9 +6,3 @@ (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (package-initialize) - -;; Doesn't exactly fit in here but it's the earliest we can call this -(use-package benchmark-init - :ensure t - :config - (add-hook 'after-init-hook 'benchmark-init/deactivate)) diff --git a/modules/home/caem/development/emacs/emacs.d/modes/nix-mode.el b/modules/home/caem/development/emacs/emacs.d/modes/nix-mode.el index eda5df7..95b6bf0 100644 --- a/modules/home/caem/development/emacs/emacs.d/modes/nix-mode.el +++ b/modules/home/caem/development/emacs/emacs.d/modes/nix-mode.el @@ -1,5 +1,8 @@ (use-package nix-mode :ensure t :mode ("\\.nix\\'" "\\.nix.in\\'") + :hook + (nix-mode . (lambda () + (paredit-mode -1))) :init (global-nix-prettify-mode 1))