diff options
author | lassulus <lassulus@lassul.us> | 2019-10-14 17:02:20 +0200 |
---|---|---|
committer | lassulus <lassulus@lassul.us> | 2019-10-14 17:02:20 +0200 |
commit | a707ca0e2e3c1ffcc09647cac9a9d9357f85314a (patch) | |
tree | 88e6286eb4f90500d4571aa5dbbd2a36b49a8bf0 /jeschli/2configs/emacs.nix | |
parent | 9722a91761b7fd68704c1c69be7df2952d4f4a41 (diff) | |
parent | 7d5a58cd02e85abdf53c7cebaf295ff8a175e61e (diff) |
Merge remote-tracking branch 'enklave/master' into 19.0919.09
Diffstat (limited to 'jeschli/2configs/emacs.nix')
-rw-r--r-- | jeschli/2configs/emacs.nix | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index bc9cfdb4b..d243017f1 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -1,6 +1,14 @@ { config, pkgs, ... }: let + pkgsWithOverlay = import <nixpkgs-unstable> { + overlays = [ + (import (builtins.fetchTarball { + url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz; + })) + ]; + }; + orgAgendaView = import ./emacs-org-agenda.nix; packageRepos = '' @@ -47,6 +55,9 @@ let magit = '' (global-set-key (kbd "C-x g") 'magit-status) ; "Most Magit commands are commonly invoked from the status buffer" + + (with-eval-after-load 'magit + (require 'forge)) ''; windowCosmetics = '' @@ -145,8 +156,6 @@ let (global-set-key (kbd "<f8>") 'delete-other-windows) ''; - - dotEmacs = pkgs.writeText "dot-emacs" '' ${packageRepos} @@ -164,9 +173,11 @@ let ${myFunctionKeys} ''; - emacsWithCustomPackages = (pkgs.emacsPackagesNgGen pkgs.emacs).emacsWithPackages (epkgs: [ + #emacsWithCustomPackages + emacsPkgs= epkgs: [ #testing epkgs.melpaPackages.gitlab + epkgs.melpaPackages.forge # emacs convenience epkgs.melpaPackages.ag @@ -177,7 +188,7 @@ let epkgs.melpaPackages.monokai-alt-theme # development - epkgs.melpaStablePackages.magit + epkgs.melpaPackages.magit epkgs.melpaPackages.nix-mode epkgs.melpaPackages.go-mode epkgs.melpaPackages.haskell-mode @@ -196,20 +207,26 @@ let epkgs.melpaPackages.org-mime epkgs.elpaPackages.which-key - ]); + ]; +emacsWithOverlay = (pkgsWithOverlay.emacsWithPackagesFromUsePackage { + config = builtins.readFile dotEmacs; # builtins.readFile ./emacs.el; + # Package is optional, defaults to pkgs.emacs + package = pkgsWithOverlay.emacsGit; + # Optionally provide extra packages not in the configuration file + extraEmacsPackages = emacsPkgs; + }); myEmacs = pkgs.writeDashBin "my-emacs" '' - exec ${emacsWithCustomPackages}/bin/emacs -q -l ${dotEmacs} "$@" + exec ${emacsWithOverlay}/bin/emacs -q -l ${dotEmacs} "$@" ''; myEmacsWithDaemon = pkgs.writeDashBin "my-emacs-daemon" '' - exec ${emacsWithCustomPackages}/bin/emacs -q -l ${dotEmacs} --daemon + exec ${emacsWithOverlay}/bin/emacs -q -l ${dotEmacs} --daemon ''; myEmacsClient = pkgs.writeDashBin "meclient" '' - exec ${emacsWithCustomPackages}/bin/emacsclient --create-frame + exec ${emacsWithOverlay}/bin/emacsclient --create-frame ''; - in { environment.systemPackages = [ myEmacs myEmacsWithDaemon myEmacsClient |