From 3cffd545255267a4a2f651e580a9ceee130f2f02 Mon Sep 17 00:00:00 2001 From: Emmet Date: Fri, 22 Mar 2024 13:43:56 -0500 Subject: [PATCH] Pinned doom emacs so system updates are quicker and more stable --- flake.lock | 16 ++++++++++++++++ flake.nix | 13 ++++++++++--- user/app/doom-emacs/config.el | 2 +- user/app/doom-emacs/doom.nix | 22 +++++++++++++--------- user/app/doom-emacs/doom.org | 24 ++++++++++++++---------- 5 files changed, 54 insertions(+), 23 deletions(-) diff --git a/flake.lock b/flake.lock index 480ad5e..86eb2c9 100644 --- a/flake.lock +++ b/flake.lock @@ -245,6 +245,21 @@ "type": "github" } }, + "emacs-pin-nixpkgs": { + "locked": { + "lastModified": 1707268954, + "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "type": "indirect" + } + }, "emacs-so-long": { "flake": false, "locked": { @@ -854,6 +869,7 @@ "blocklist-hosts": "blocklist-hosts", "eaf": "eaf", "eaf-browser": "eaf-browser", + "emacs-pin-nixpkgs": "emacs-pin-nixpkgs", "home-manager": "home-manager", "hyprland-plugins": "hyprland-plugins", "kdenlive-pin-nixpkgs": "kdenlive-pin-nixpkgs", diff --git a/flake.nix b/flake.nix index 6556510..8064182 100644 --- a/flake.nix +++ b/flake.nix @@ -1,9 +1,10 @@ { description = "Flake of LibrePhoenix"; - outputs = inputs@{ self, nixpkgs, nixpkgs-stable, kdenlive-pin-nixpkgs, home-manager, nix-doom-emacs, - nix-straight, stylix, blocklist-hosts, hyprland-plugins, rust-overlay, - org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, ... }: + outputs = inputs@{ self, nixpkgs, nixpkgs-stable, emacs-pin-nixpkgs, kdenlive-pin-nixpkgs, + home-manager, nix-doom-emacs, nix-straight, stylix, blocklist-hosts, + hyprland-plugins, rust-overlay, org-nursery, org-yaap, org-side-tree, + org-timeblock, phscroll, ... }: let # ---- SYSTEM SETTINGS ---- # systemSettings = { @@ -74,6 +75,10 @@ }; }; + pkgs-emacs = import emacs-pin-nixpkgs { + system = systemSettings.system; + }; + pkgs-kdenlive = import kdenlive-pin-nixpkgs { system = systemSettings.system; }; @@ -103,6 +108,7 @@ extraSpecialArgs = { # pass config variables from above inherit pkgs-stable; + inherit pkgs-emacs; inherit pkgs-kdenlive; inherit systemSettings; inherit userSettings; @@ -161,6 +167,7 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs-stable.url = "nixpkgs/nixos-23.11"; + emacs-pin-nixpkgs.url = "nixpkgs/f8e2ebd66d097614d51a56a755450d4ae1632df1"; kdenlive-pin-nixpkgs.url = "nixpkgs/cfec6d9203a461d9d698d8a60ef003cac6d0da94"; home-manager.url = "github:nix-community/home-manager/master"; diff --git a/user/app/doom-emacs/config.el b/user/app/doom-emacs/config.el index 6c40833..b43a161 100644 --- a/user/app/doom-emacs/config.el +++ b/user/app/doom-emacs/config.el @@ -1246,7 +1246,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)." "q" 'helpful-kill-buffers) ;;;------ helpful configuration ------;;; -(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.1") +(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8") (require 'mu4e) (require 'mu4e-contrib) (require 'mu4e-actions) diff --git a/user/app/doom-emacs/doom.nix b/user/app/doom-emacs/doom.nix index 2bb1cb7..6327dca 100644 --- a/user/app/doom-emacs/doom.nix +++ b/user/app/doom-emacs/doom.nix @@ -1,13 +1,19 @@ -{ config, lib, pkgs, pkgs-stable, userSettings, systemSettings, +{ config, lib, pkgs-emacs, pkgs-stable, userSettings, systemSettings, org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, ... }: let themePolarity = lib.removeSuffix "\n" (builtins.readFile (./. + "../../../../themes"+("/"+userSettings.theme)+"/polarity.txt")); dashboardLogo = ./. + "/nix-" + themePolarity + ".png"; in { + imports = [ + ../git/git.nix + ../../shell/sh.nix + ../../shell/cli-collection.nix + ]; + programs.doom-emacs = { enable = true; - emacsPackage = pkgs.emacs29-pgtk; + emacsPackage = pkgs-emacs.emacs29-pgtk; doomPrivateDir = ./.; # This block from https://github.com/znewman01/dotfiles/blob/be9f3a24c517a4ff345f213bf1cf7633713c9278/emacs/default.nix#L12-L34 # Only init/packages so we only rebuild when those change. @@ -18,7 +24,7 @@ in filter = path: type: builtins.elem (baseNameOf path) [ "init.el" "packages.el" ]; }; - in pkgs.linkFarm "doom-packages-dir" [ + in pkgs-emacs.linkFarm "doom-packages-dir" [ { name = "init.el"; path = "${filteredPath}/init.el"; @@ -29,7 +35,7 @@ in } { name = "config.el"; - path = pkgs.emptyFile; + path = pkgs-emacs.emptyFile; } ]; # End block @@ -40,18 +46,16 @@ in extension = ".el"; }; - home.packages = (with pkgs; [ + home.packages = (with pkgs-emacs; [ nil nixfmt - git file wmctrl jshon aria hledger hunspell hunspellDicts.en_US-large - pandoc - (pkgs.mu.override { emacs = emacs29-pgtk; }) + (pkgs-emacs.mu.override { emacs = emacs29-pgtk; }) emacsPackages.mu4e isync msmtp @@ -70,7 +74,7 @@ in services.mbsync = { enable = true; - package = pkgs.isync; + package = pkgs-stable.isync; frequency = "*:0/5"; }; diff --git a/user/app/doom-emacs/doom.org b/user/app/doom-emacs/doom.org index 8fd8669..61bda1d 100644 --- a/user/app/doom-emacs/doom.org +++ b/user/app/doom-emacs/doom.org @@ -1469,7 +1469,7 @@ I don't have this active right now since it's kinda weird with pgtk... ** mu4e Configuration #+BEGIN_SRC emacs-lisp :tangle config.el ;;;------ helpful configuration ------;;; -(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.1") +(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8") (require 'mu4e) (require 'mu4e-contrib) (require 'mu4e-actions) @@ -1934,16 +1934,22 @@ Any git package can be configured for a particular commit or branch: * Nix Integration In order to have Nix load my Doom Emacs configuration [[./doom.nix][doom.nix]], which I source in the =imports= block of my [[../../../profiles/work/home.nix][home.nix]]. #+BEGIN_SRC nix :tangle doom.nix -{ config, lib, pkgs, pkgs-stable, userSettings, systemSettings, +{ config, lib, pkgs-emacs, pkgs-stable, userSettings, systemSettings, org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, ... }: let themePolarity = lib.removeSuffix "\n" (builtins.readFile (./. + "../../../../themes"+("/"+userSettings.theme)+"/polarity.txt")); dashboardLogo = ./. + "/nix-" + themePolarity + ".png"; in { + imports = [ + ../git/git.nix + ../../shell/sh.nix + ../../shell/cli-collection.nix + ]; + programs.doom-emacs = { enable = true; - emacsPackage = pkgs.emacs29-pgtk; + emacsPackage = pkgs-emacs.emacs29-pgtk; doomPrivateDir = ./.; # This block from https://github.com/znewman01/dotfiles/blob/be9f3a24c517a4ff345f213bf1cf7633713c9278/emacs/default.nix#L12-L34 # Only init/packages so we only rebuild when those change. @@ -1954,7 +1960,7 @@ in filter = path: type: builtins.elem (baseNameOf path) [ "init.el" "packages.el" ]; }; - in pkgs.linkFarm "doom-packages-dir" [ + in pkgs-emacs.linkFarm "doom-packages-dir" [ { name = "init.el"; path = "${filteredPath}/init.el"; @@ -1965,7 +1971,7 @@ in } { name = "config.el"; - path = pkgs.emptyFile; + path = pkgs-emacs.emptyFile; } ]; # End block @@ -1976,18 +1982,16 @@ in extension = ".el"; }; - home.packages = (with pkgs; [ + home.packages = (with pkgs-emacs; [ nil nixfmt - git file wmctrl jshon aria hledger hunspell hunspellDicts.en_US-large - pandoc - (pkgs.mu.override { emacs = emacs29-pgtk; }) + (pkgs-emacs.mu.override { emacs = emacs29-pgtk; }) emacsPackages.mu4e isync msmtp @@ -2006,7 +2010,7 @@ in services.mbsync = { enable = true; - package = pkgs.isync; + package = pkgs-stable.isync; frequency = "*:0/5"; };