diff options
Diffstat (limited to 'user')
-rw-r--r-- | user/modules/emacs.nix | 133 | ||||
-rw-r--r-- | user/packages/emacs.nix | 127 |
2 files changed, 122 insertions, 138 deletions
diff --git a/user/modules/emacs.nix b/user/modules/emacs.nix index 7c5a5b7d..eef2e4e8 100644 --- a/user/modules/emacs.nix +++ b/user/modules/emacs.nix @@ -1,18 +1,16 @@ { config, pkgs, lib, ... }: let - pkgsUnstable = if pkgs.stdenv.isDarwin then import <nixpkgs-unstable> {} else import <nixos-unstable> {}; - emacsPackage = import ../packages/emacs.nix { - pkgs = pkgs.unstable; - emacs = pkgs.unstable.emacs; - }; + inherit (pkgs) stdenv; + + pkgsUnstable = if stdenv.isDarwin then import <nixpkgs-unstable> {} else import <nixos-unstable> {}; editorScript = pkgs.writeScriptBin "edit" '' #!${pkgs.runtimeShell} if [ -z "$1" ]; then - exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs + exec ${config.programs.emacs.finalPackage}/bin/emacsclient --create-frame --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs else - exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@" + exec ${config.programs.emacs.finalPackage}/bin/emacsclient --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs "$@" fi ''; desktopApplicationFile = pkgs.writeTextFile { @@ -35,13 +33,126 @@ let }; in { + programs.emacs = { + enable = true; + extraPackages = epkgs: (with epkgs; [ + ace-link + all-the-icons + almost-mono-themes + add-node-modules-path + ag + all-the-icons + amx + auto-async-byte-compile + avy + basic-theme + bash-completion + caddyfile-mode + company + company-web + company-tabnine + counsel + counsel-projectile + crux + docker-compose-mode + dockerfile-mode + editorconfig + eink-theme + eldoc-box + emmet-mode + esh-autosuggest + esh-buf-stack + esh-help + eshell-fringe-status + eshell-toggle + eshell-up + evil + evil-collection + evil-commentary + evil-magit + evil-mu4e + evil-org + evil-quickscope + evil-space + evil-surround + eyebrowse + feature-mode + fish-completion + flycheck + flymake-diagnostic-at-point + general + git-gutter-fringe + git-messenger + git-timemachine + gitattributes-mode + gitconfig-mode + gitignore-mode + gitlab-ci-mode + gitlab-ci-mode-flycheck + goto-chg + haskell-mode + helpful + ivy-hydra + jinja2-mode + js2-mode + json-mode + k8s-mode + # kubernetes + # kubernetes-evil + ledger-mode + lsp-mode + lsp-ui + lsp-haskell + lsp-treemacs + magit + markdown-mode + minions + monotropic-theme + moody + nginx-mode + nix-mode + nix-update + org-journal + paredit + php-mode + posframe + prettier-js + projectile + projectile-ripgrep + quickrun + rainbow-mode + relative-buffers + restclient + ripgrep + rjsx-mode + scss-mode + spacemacs-theme + swiper + toml-mode + typescript-mode + undo-tree + use-package + web-mode + wgrep-ag + ws-butler + which-key + yaml-mode + ] ++ lib.optionals stdenv.isDarwin [ + exec-path-from-shell + ns-auto-titlebar + ] ++ lib.optionals (!stdenv.isDarwin) [ + pkgs.mu + ]); + }; home.packages = [ - emacsPackage editorScript ]; - nixpkgs.config.packageOverrides = { - myEmacs = emacsPackage; - }; + nixpkgs.overlays = [ + (self: super: { + emacsPackagesNgGen = pkgsUnstable.emacsPackagesNgGen; + emacs = pkgsUnstable.emacs; + }) + ]; home.sessionVariables = { EDITOR = "${editorScript}/bin/edit"; }; diff --git a/user/packages/emacs.nix b/user/packages/emacs.nix deleted file mode 100644 index 3644f520..00000000 --- a/user/packages/emacs.nix +++ /dev/null @@ -1,127 +0,0 @@ -{ - pkgs ? import <nixpkgs-unstable> {}, - emacs ? pkgs.emacs -}: - -let - myEmacs = pkgs.lib.overrideDerivation (emacs) (attrs: { - postInstall = attrs.postInstall + '' - rm $out/share/applications/emacs.desktop - ''; - }); - stdenv = pkgs.stdenv; - - emacsWithPackages = (pkgs.emacsPackagesNgGen myEmacs).emacsWithPackages; -in - emacsWithPackages (epkgs: (with epkgs; [ - ace-link - all-the-icons - almost-mono-themes - add-node-modules-path - ag - all-the-icons - amx - auto-async-byte-compile - avy - basic-theme - bash-completion - caddyfile-mode - company - company-web - company-tabnine - counsel - counsel-projectile - crux - docker-compose-mode - dockerfile-mode - editorconfig - eink-theme - eldoc-box - emmet-mode - esh-autosuggest - esh-buf-stack - esh-help - eshell-fringe-status - eshell-toggle - eshell-up - evil - evil-collection - evil-commentary - evil-magit - evil-mu4e - evil-org - evil-quickscope - evil-space - evil-surround - eyebrowse - feature-mode - fish-completion - flycheck - flymake-diagnostic-at-point - general - git-gutter-fringe - git-messenger - git-timemachine - gitattributes-mode - gitconfig-mode - gitignore-mode - gitlab-ci-mode - gitlab-ci-mode-flycheck - goto-chg - haskell-mode - helpful - ivy-hydra - jinja2-mode - js2-mode - json-mode - k8s-mode - # kubernetes - # kubernetes-evil - ledger-mode - lsp-mode - lsp-ui - lsp-haskell - lsp-treemacs - magit - markdown-mode - minions - monotropic-theme - moody - nginx-mode - nix-mode - nix-update - org-journal - paredit - php-mode - posframe - prettier-js - projectile - projectile-ripgrep - quickrun - relative-buffers - restclient - ripgrep - rjsx-mode - scss-mode - spacemacs-theme - swiper - toml-mode - typescript-mode - undo-tree - use-package - web-mode - wgrep-ag - ws-butler - which-key - yaml-mode - ] ++ (if stdenv.isDarwin then [ - exec-path-from-shell - ns-auto-titlebar - ] else [ - ])) ++ (with epkgs.elpaPackages; [ - rainbow-mode - ]) ++ (if !stdenv.isDarwin then [ - # From main packages set - - pkgs.mu - ] else [])) |