From 0448f276eb2343bb8ed93d0a54bdb713890423f0 Mon Sep 17 00:00:00 2001 From: Henri Dohmen Date: Sun, 23 Nov 2025 13:30:43 +0100 Subject: [PATCH] emacs packages using nix --- desktop/services.nix | 28 +++++----- desktop/software/development.nix | 33 +++++++++++- dotfiles/emacs/init.el | 87 +++----------------------------- 3 files changed, 53 insertions(+), 95 deletions(-) diff --git a/desktop/services.nix b/desktop/services.nix index 0f93d36..2108de7 100644 --- a/desktop/services.nix +++ b/desktop/services.nix @@ -20,7 +20,6 @@ in openFirewall = true; }; udisks2.enable = true; - emacs.enable = true; }; home.services.protonmail-bridge = { @@ -31,18 +30,21 @@ in ]; }; - home.services.unison' = { - # TODO: parameterize - enable = true; - pairs = { - "docs".roots = [ - "/home/hd/Documents" - "ssh://roam.lan//home/hd/Documents" - ]; - "desktop".roots = [ - "/home/hd/Desktop" - "ssh://roam.lan//home/hd/Desktop" - ]; + home.services = { + emacs.enable = true; + unison' = { + # TODO: parameterize + enable = true; + pairs = { + "docs".roots = [ + "/home/hd/Documents" + "ssh://roam.lan//home/hd/Documents" + ]; + "desktop".roots = [ + "/home/hd/Desktop" + "ssh://roam.lan//home/hd/Desktop" + ]; + }; }; }; }; diff --git a/desktop/software/development.nix b/desktop/software/development.nix index 54baa08..64b1c1e 100644 --- a/desktop/software/development.nix +++ b/desktop/software/development.nix @@ -40,7 +40,38 @@ in }; programs.emacs = { enable = true; - extraPackages = epkgs: [ epkgs.agda2-mode ]; + extraPackages = + epkgs: with epkgs; [ + ace-window + agda2-mode + better-defaults + cmake-mode + company + consult + delight + doom-themes + editorconfig + exec-path-from-shell + fish-mode + haskell-mode + hl-todo + lsp-mode + magit + marginalia + markdown-mode + multiple-cursors + orderless + proof-general + pyvenv + rainbow-delimiters + restart-emacs + rust-mode + undo-tree + use-package + vertico + which-key + yaml-mode + ]; extraConfig = builtins.readFile ../../dotfiles/emacs/init.el; }; programs.vscode = { diff --git a/dotfiles/emacs/init.el b/dotfiles/emacs/init.el index 19952a9..49c8bc1 100644 --- a/dotfiles/emacs/init.el +++ b/dotfiles/emacs/init.el @@ -1,84 +1,16 @@ -;; .emacs - -;; Initialize straight.el -(defvar bootstrap-version) -(let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 6)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) - -;; GCMH - Do this at the beginning so we can maybe start up a bit -;; faster -(straight-use-package 'gcmh) -(gcmh-mode 1) - -;; use-package -(straight-use-package 'use-package) - -;; Packages -;; Major modes -(straight-use-package 'markdown-mode) -(straight-use-package 'rust-mode) -(straight-use-package 'haskell-mode) -(straight-use-package 'fish-mode) -(straight-use-package 'yaml-mode) -(straight-use-package 'cmake-mode) - -(define-minor-mode remove-trailing-whitespace-mode - "Minor mode to remove trailing whitespace on every save" - (add-hook 'before-save-hook 'delete-trailing-whitespace)) - -(add-hook 'prog-mode-hook 'remove-trailing-whitespace-mode) - -;; Other stuff -(straight-use-package 'better-defaults) -(straight-use-package 'delight) -(straight-use-package 'doom-themes) -(straight-use-package 'undo-tree) -(straight-use-package 'multiple-cursors) -(straight-use-package 'which-key) -(straight-use-package 'rainbow-delimiters) -(straight-use-package 'hl-todo) -(straight-use-package 'orderless) -(straight-use-package 'vertico) -(straight-use-package 'consult) -(straight-use-package 'marginalia) -(straight-use-package 'embark) -(straight-use-package 'embark-consult) -(straight-use-package 'company) -(straight-use-package 'lsp-mode) -(straight-use-package 'speed-type) -(straight-use-package 'magit) -(straight-use-package 'restart-emacs) -;; (straight-use-package 'mingus) -(straight-use-package 'ace-window) -;; (straight-use-package 'projectile) -;; (straight-use-package 'osm) -(straight-use-package 'editorconfig) -(straight-use-package 'exec-path-from-shell) -(straight-use-package 'pyvenv) -(straight-use-package 'ellama) -(straight-use-package 'proof-general) - ;; Emacs Configuration -(setq inhibit-splash-screen t) -(setq scroll-step 1) +(setopt inhibit-splash-screen t) +(setopt scroll-step 1) (recentf-mode 1) (global-auto-revert-mode 1) (put 'narrow-to-region 'disabled nil) (global-unset-key (kbd "C-z")) -(setq mac-command-modifier 'meta - mac-option-modifier nil) +(add-hook 'prog-mode-hook + (lambda () + (setopt show-trailing-whitespace t))) ;; (set-face-attribute 'default nil :height 140) -(setq use-package-compute-statistics t) +(setopt use-package-compute-statistics t) (use-package display-line-numbers-mode :hook (prog-mode text-mode conf-mode)) @@ -86,9 +18,6 @@ (use-package hl-line-mode :hook (prog-mode text-mode conf-mode)) -(use-package gcmh - :delight) - (use-package exec-path-from-shell :config (when (memq window-system '(mac ns)) @@ -154,8 +83,4 @@ (editorconfig-mode 1) :delight) -(use-package embark - :bind (("C-M-x" . embark-act))) - (electric-indent-mode -1) -(remove-hook 'before-save-hook 'delete-trailing-whitespace)