From ce3b9c3b9767195592dee64c960821b5a0accba6 Mon Sep 17 00:00:00 2001 From: Miran Bastaja Date: Mon, 16 Sep 2024 10:06:28 +0200 Subject: Use NUR repo for configuring emacs Not perfect yet, still requires me to add the emacs overlay here, but better than having it in-tree. Quicker to hack on it beacause the eval time of the other repo is faster. --- share/cfg/emacs.nix | 2 +- share/overlay.nix | 19 ------ share/system/client-common.nix | 10 +++- share/xpkgs/emacs/default.nix | 12 ---- share/xpkgs/emacs/emacs.el | 127 ----------------------------------------- 5 files changed, 10 insertions(+), 160 deletions(-) delete mode 100644 share/overlay.nix delete mode 100644 share/xpkgs/emacs/default.nix delete mode 100644 share/xpkgs/emacs/emacs.el (limited to 'share') diff --git a/share/cfg/emacs.nix b/share/cfg/emacs.nix index 5e329f8..d0d3e38 100644 --- a/share/cfg/emacs.nix +++ b/share/cfg/emacs.nix @@ -1,7 +1,7 @@ { pkgs, ... }: { services.emacs = { - package = pkgs.sorremacs; + package = pkgs.nur.repos.sorre.sorremacs; client.enable = true; startWithUserSession = true; }; diff --git a/share/overlay.nix b/share/overlay.nix deleted file mode 100644 index 00dc6a5..0000000 --- a/share/overlay.nix +++ /dev/null @@ -1,19 +0,0 @@ -final: prev: -let - writeShellScriptBinAndSymlink = - name: text: - prev.symlinkJoin { - name = name; - paths = [ - prev."${name}" - (prev.writeShellScriptBin name text) - ]; - }; -in -{ - wget = writeShellScriptBinAndSymlink "wget" '' - wget --hsts-file="$XDG_DATA_HOME/wget-hsts" - ''; - - sorremacs = prev.callPackage ./xpkgs/emacs { }; -} diff --git a/share/system/client-common.nix b/share/system/client-common.nix index 2a49d42..c598d94 100644 --- a/share/system/client-common.nix +++ b/share/system/client-common.nix @@ -13,7 +13,15 @@ overlays = [ inputs.rust-overlay.overlays.default inputs.emacs-overlay.overlays.default - (import ../overlay.nix) + (final: prev: { + nur = import inputs.nur { + nurpkgs = prev; + pkgs = prev; + repoOverrides = { + sorre = import inputs.sorrepkgs { pkgs = prev; }; + }; + }; + }) ]; config = { allowUnfree = true; diff --git a/share/xpkgs/emacs/default.nix b/share/xpkgs/emacs/default.nix deleted file mode 100644 index eea70f5..0000000 --- a/share/xpkgs/emacs/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ emacsWithPackagesFromUsePackage, ... }: -emacsWithPackagesFromUsePackage { - config = ./emacs.el; - defaultInitFile = true; - alwaysEnsure = true; - alwaysTangle = true; - - # Optionally provide extra packages not in the configuration file. - extraEmacsPackages = epkgs: [ - epkgs.cask - ]; -} diff --git a/share/xpkgs/emacs/emacs.el b/share/xpkgs/emacs/emacs.el deleted file mode 100644 index 383a76a..0000000 --- a/share/xpkgs/emacs/emacs.el +++ /dev/null @@ -1,127 +0,0 @@ -;; -*- coding: utf-8 -*- - -;;; For performance -(setq gc-cons-threshold 100000000) -(setq read-process-output-max (* 1024 1024)) ;; 1mb - -(add-hook 'after-init-hook #'(lambda () - ;; restore after startup - (setq gc-cons-threshold 800000))) - -;;; Disable menu-bar, tool-bar, and scroll-bar. -(if (fboundp 'menu-bar-mode) - (menu-bar-mode -1)) -(if (fboundp 'tool-bar-mode) - (tool-bar-mode -1)) -(if (fboundp 'scroll-bar-mode) - (scroll-bar-mode -1)) - -;;; Fix this bug: -;;; https://www.reddit.com/r/emacs/comments/cueoug/the_failed_to_download_gnu_archive_is_a_pretty/ -(when (version< emacs-version "26.3") - (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")) - -(setq-default cursor-type 'bar) ; Line-style cursor similar to other text editors -(setq inhibit-startup-screen t) ; Disable startup screen -(setq initial-scratch-message "") ; Make *scratch* buffer blank -(setq-default frame-title-format '("%b")) ; Make window title the buffer name -(setq ring-bell-function 'ignore) ; Disable bell sound -(fset 'yes-or-no-p 'y-or-n-p) ; y-or-n-p makes answering questions faster -(show-paren-mode 1) ; Show closing parens by default -(setq linum-format "%4d ") ; Line number format -(delete-selection-mode 1) ; Selected text will be overwritten when you start typing -(global-auto-revert-mode t) ; Auto-update buffer if file has changed on disk - -;; Show line numbers in programming modes -(add-hook 'prog-mode-hook - (if (or - ; If linum-mode doesn't exist... - (not (fboundp 'linum-mode)) - ; ...or Emacs has display-line-numbers-mode capability - (and (fboundp 'display-line-numbers-mode) (display-graphic-p))) - ; ...then use display-line-numbers-mode! - 'display-line-numbers-mode - ; Otherwise, use linum-mode - 'linum-mode)) - -(global-display-line-numbers-mode) - -;; Define the whitespace style. -(setq-default whitespace-style - '(face spaces tabs newline space-mark tab-mark newline-mark)) - -(setq-default whitespace-display-mappings - ;; all numbers are unicode codepoint in decimal - '( - ;; 32 is SPACE, 183 is MIDDLE DOT · - (space-mark 32 [183]) - ;; 10 is LINE FEED, 182 isPILCROW SIGN ¶ - (newline-mark 10 [182 10]) - ;; 9 is tab, 182 isPILCROW SIGN ¶ - (tab-mark 9 [9655 9]))) - -;; Set whitespace actions. -(setq-default whitespace-action - '(cleanup auto-cleanup)) - -;;; Put Emacs auto-save and backup files to /tmp/ or C:/Temp/ -(defconst emacs-tmp-dir (expand-file-name (format "emacs%d" (user-uid)) temporary-file-directory)) -(setq - backup-by-copying t ; Avoid symlinks - delete-old-versions t - kept-new-versions 6 - kept-old-versions 2 - version-control t - auto-save-list-file-prefix emacs-tmp-dir - auto-save-file-name-transforms `((".*" ,emacs-tmp-dir t)) ; Change autosave dir to tmp - backup-directory-alist `((".*" . ,emacs-tmp-dir))) - -;;; Lockfiles unfortunately cause more pain than benefit -(setq create-lockfiles nil) - -;;; Load wheatgrass as the default theme if one is not loaded already - -(if (not custom-enabled-themes) - (load-theme 'wheatgrass t)) - -(defun reload-config () - (interactive) - (load-file (expand-file-name "init.el" user-emacs-directory))) - -;; Make a single ESC quit the current action -(global-set-key (kbd "") 'keyboard-escape-quit) - -;; Autopairs -(add-hook 'prog-mode-hook - (lambda () - (electric-pair-mode 1))) - -;; Org mode config -(setq-default org-startup-indented t) - -;; Emacs lisp mode config -(add-hook 'emacs-lisp-mode-hook - (lambda () - ;; Use spaces, not tabs - (setq indent-tabs-mode nil))) - -;; Theme -(use-package doom-themes - :config - (setq doom-themes-enable-bold t - doom-themes enable-italic t) - (load-theme 'doom-one t) - - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config)) - -;; Which key mode because I'm forgetful -(use-package which-key - :config - (which-key-mode)) - -;;; --- Various major modes --- ;;; -(use-package nix-mode - :mode "\\.nix\\'") -- cgit v1.3.1