From 38cb4125ac2eff3417d4d0a927625ca9229252c8 Mon Sep 17 00:00:00 2001 From: willemml Date: Thu, 6 Apr 2023 12:33:51 -0700 Subject: [PATCH] use emacs-29 branch, remove company-quickhelp and disable company-files --- flake-parts/overlays.nix | 7 + flake.lock | 18 ++ flake.nix | 2 + .../user/willem/programs/emacs/default.nix | 192 +++++++++--------- .../user/willem/programs/emacs/init.el | 5 - 5 files changed, 123 insertions(+), 101 deletions(-) diff --git a/flake-parts/overlays.nix b/flake-parts/overlays.nix index 89ad9df..c442d25 100644 --- a/flake-parts/overlays.nix +++ b/flake-parts/overlays.nix @@ -6,6 +6,13 @@ }: { flake.overlays = { default = import ../packages; + emacs29 = final: prev: { + emacs29 = prev.emacsGit.overrideAttrs (old: { + name = "emacs29"; + version = "29.0-${inputs.emacs-src.shortRev}"; + src = inputs.emacs-src; + }); + }; emacs-overlay = inputs.emacs-overlay.overlays.default; fenix = inputs.fenix.overlays.default; rycee-firefox-addons = final: prev: {rycee-firefox-addons = inputs.rycee-firefox-addons.outputs.packages.${prev.system};}; diff --git a/flake.lock b/flake.lock index c3efd80..8269c19 100644 --- a/flake.lock +++ b/flake.lock @@ -41,6 +41,23 @@ "type": "github" } }, + "emacs-src": { + "flake": false, + "locked": { + "lastModified": 1680780971, + "narHash": "sha256-c5aLVyuT8bK3bJfQSi+HNQGSJyWSvp7X+tr0bX3syZ4=", + "ref": "emacs-29", + "rev": "305246d9726bbe05a65ad3836880138db5c01dfa", + "revCount": 164964, + "type": "git", + "url": "https://git.savannah.gnu.org/git/emacs.git" + }, + "original": { + "ref": "emacs-29", + "type": "git", + "url": "https://git.savannah.gnu.org/git/emacs.git" + } + }, "fenix": { "inputs": { "nixpkgs": "nixpkgs", @@ -312,6 +329,7 @@ "inputs": { "darwin": "darwin", "emacs-overlay": "emacs-overlay", + "emacs-src": "emacs-src", "fenix": "fenix", "flake-parts": "flake-parts", "home-manager": "home-manager", diff --git a/flake.nix b/flake.nix index 6b769d4..6a65e24 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,8 @@ darwin.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.url = "github:nix-community/emacs-overlay"; emacs-overlay.inputs.nixpkgs.follows = "nixpkgs"; + emacs-src.url = "git+https://git.savannah.gnu.org/git/emacs.git?ref=emacs-29"; + emacs-src.flake = false; fenix.url = "github:nix-community/fenix"; flake-parts.url = "github:hercules-ci/flake-parts"; home-manager.url = "github:nix-community/home-manager"; diff --git a/home-manager/modules/profiles/user/willem/programs/emacs/default.nix b/home-manager/modules/profiles/user/willem/programs/emacs/default.nix index 821cf90..34403d0 100644 --- a/home-manager/modules/profiles/user/willem/programs/emacs/default.nix +++ b/home-manager/modules/profiles/user/willem/programs/emacs/default.nix @@ -3,107 +3,107 @@ pkgs, ... }: let + emacsPackage = + (pkgs.emacsPackagesFor pkgs.emacs29).emacsWithPackages + (epkgs: + (with epkgs; let + org-auctex = epkgs.trivialBuild { + pname = "org-auctex"; + version = "e1271557b9f36ca94cabcbac816748e7d0dc989c"; + + buildInputs = [epkgs.auctex]; + + src = pkgs.fetchFromGitHub { + owner = "karthink"; + repo = "org-auctex"; + rev = "e1271557b9f36ca94cabcbac816748e7d0dc989c"; + sha256 = "sha256-cMAhwybnq5HA1wOaUqDPML3nnh5m1iwEETTPWqPbAvw="; + }; + }; + mu4e-accounts = epkgs.trivialBuild { + pname = "mu4e-accounts"; + version = "0.1"; + buildInputs = [pkgs.mu]; + src = let + smtpConfig = name: ( + let + account = config.accounts.email.accounts.${name}; + port = builtins.toString account.smtp.port; + host = account.smtp.host; + in '' + ("${name}" + (mu4e-drafts-folder "/${name}/${account.folders.drafts}") + (mu4e-sent-folder "/${name}/${account.folders.sent}") + (mu4e-trash-folder "/${name}/${account.folders.trash}") + ; (mu4e-maildir-shortcuts + ; '( (:maildir "/${name}/${account.folders.inbox}" :key ?i) + ; (:maildir "/${name}/${account.folders.sent}" :key ?s) + ; (:maildir "/${name}/${account.folders.drafts}" :key ?d) + ; (:maildir "/${name}/${account.folders.trash}" :key ?t))) + (smtpmail-default-smtp-server "${host}") + (smtpmail-smtp-server "${host}") + (smtpmail-smtp-service ${port} ) + (smtpmail-smtp-user "${account.userName}") + (user-mail-address "${account.address}")) + '' + ); + smtpAccountStrings = pkgs.lib.forEach (builtins.attrNames config.accounts.email.accounts) (account: " ${(smtpConfig account)} "); + smtpAccounts = "'( ${pkgs.lib.concatStrings smtpAccountStrings} )"; + in + pkgs.writeText "mu4e-accounts.el" '' + (defvar my-mu4e-account-alist ${smtpAccounts} ) + (provide 'mu4e-accounts) + ''; + }; + in [ + all-the-icons + all-the-icons-dired + arduino-mode + async + auctex + calibredb + cdlatex + citeproc + company + counsel + editorconfig + edit-indirect + format-all + gnuplot + graphviz-dot-mode + htmlize + ivy + ivy-bibtex + magit + meow + mu4e-accounts + nix-mode + nix-update + org + org-auctex + org-contrib + org-download + org-modern + pdf-tools + plantuml-mode + rustic + separedit + solarized-theme + swiper + yasnippet + ]) + ++ (with pkgs; [ + gnuplot + mu + plantuml + sqlite + ])); emacsConfig = pkgs.emacsWithPackagesFromUsePackage { config = ./init.el; defaultInitFile = true; - package = - (pkgs.emacsPackagesFor pkgs.emacsGit).emacsWithPackages - (epkgs: - (with epkgs; let - org-auctex = epkgs.trivialBuild { - pname = "org-auctex"; - version = "e1271557b9f36ca94cabcbac816748e7d0dc989c"; - - buildInputs = [epkgs.auctex]; - - src = pkgs.fetchFromGitHub { - owner = "karthink"; - repo = "org-auctex"; - rev = "e1271557b9f36ca94cabcbac816748e7d0dc989c"; - sha256 = "sha256-cMAhwybnq5HA1wOaUqDPML3nnh5m1iwEETTPWqPbAvw="; - }; - }; - mu4e-accounts = epkgs.trivialBuild { - pname = "mu4e-accounts"; - version = "0.1"; - buildInputs = [pkgs.mu]; - src = let - smtpConfig = name: ( - let - account = config.accounts.email.accounts.${name}; - port = builtins.toString account.smtp.port; - host = account.smtp.host; - in '' - ("${name}" - (mu4e-drafts-folder "/${name}/${account.folders.drafts}") - (mu4e-sent-folder "/${name}/${account.folders.sent}") - (mu4e-trash-folder "/${name}/${account.folders.trash}") - ; (mu4e-maildir-shortcuts - ; '( (:maildir "/${name}/${account.folders.inbox}" :key ?i) - ; (:maildir "/${name}/${account.folders.sent}" :key ?s) - ; (:maildir "/${name}/${account.folders.drafts}" :key ?d) - ; (:maildir "/${name}/${account.folders.trash}" :key ?t))) - (smtpmail-default-smtp-server "${host}") - (smtpmail-smtp-server "${host}") - (smtpmail-smtp-service ${port} ) - (smtpmail-smtp-user "${account.userName}") - (user-mail-address "${account.address}")) - '' - ); - smtpAccountStrings = pkgs.lib.forEach (builtins.attrNames config.accounts.email.accounts) (account: " ${(smtpConfig account)} "); - smtpAccounts = "'( ${pkgs.lib.concatStrings smtpAccountStrings} )"; - in - pkgs.writeText "mu4e-accounts.el" '' - (defvar my-mu4e-account-alist ${smtpAccounts} ) - (provide 'mu4e-accounts) - ''; - }; - in [ - all-the-icons - all-the-icons-dired - arduino-mode - async - auctex - calibredb - cdlatex - citeproc - company - company-quickhelp - counsel - editorconfig - edit-indirect - format-all - gnuplot - graphviz-dot-mode - htmlize - ivy - ivy-bibtex - magit - meow - mu4e-accounts - nix-mode - nix-update - org - org-auctex - org-contrib - org-download - org-modern - pdf-tools - plantuml-mode - rustic - separedit - solarized-theme - swiper - yasnippet - ]) - ++ (with pkgs; [ - gnuplot - mu - plantuml - sqlite - ])); + package = emacsPackage; }; in { home.file.".emacs.d/early-init.el".source = ./early-init.el; diff --git a/home-manager/modules/profiles/user/willem/programs/emacs/init.el b/home-manager/modules/profiles/user/willem/programs/emacs/init.el index 440678f..a07253c 100644 --- a/home-manager/modules/profiles/user/willem/programs/emacs/init.el +++ b/home-manager/modules/profiles/user/willem/programs/emacs/init.el @@ -65,7 +65,6 @@ (require 'cdlatex) (require 'citeproc) (require 'company) -(require 'company-quickhelp) (require 'counsel) (require 'edit-indirect) (require 'editorconfig) @@ -135,8 +134,6 @@ (setq company-tooltip-offset-display 'lines) ;; Display text icon of type in company popup -(company-quickhelp-mode) - (global-set-key "\C-s" 'swiper) (global-set-key (kbd "C-c C-r") 'ivy-resume) (global-set-key (kbd "") 'ivy-resume) @@ -157,8 +154,6 @@ (editorconfig-mode 1) -(add-hook 'eglot-connect-hook 'company-mode) - (global-set-key (kbd "C-c C-y") 'format-all-buffer) (setq-default format-all-formatters format-all-default-formatters)