j emacs: use nix-community overlay (needs 20.03)
This commit is contained in:
parent
4153a45249
commit
0886027a4a
|
@ -1,6 +1,14 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
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;
|
orgAgendaView = import ./emacs-org-agenda.nix;
|
||||||
|
|
||||||
packageRepos = ''
|
packageRepos = ''
|
||||||
|
@ -47,6 +55,9 @@ let
|
||||||
|
|
||||||
magit = ''
|
magit = ''
|
||||||
(global-set-key (kbd "C-x g") 'magit-status) ; "Most Magit commands are commonly invoked from the status buffer"
|
(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 = ''
|
windowCosmetics = ''
|
||||||
|
@ -145,8 +156,6 @@ let
|
||||||
(global-set-key (kbd "<f8>") 'delete-other-windows)
|
(global-set-key (kbd "<f8>") 'delete-other-windows)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dotEmacs = pkgs.writeText "dot-emacs" ''
|
dotEmacs = pkgs.writeText "dot-emacs" ''
|
||||||
${packageRepos}
|
${packageRepos}
|
||||||
|
|
||||||
|
@ -164,9 +173,11 @@ let
|
||||||
${myFunctionKeys}
|
${myFunctionKeys}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
emacsWithCustomPackages = (pkgs.emacsPackagesNgGen pkgs.emacs).emacsWithPackages (epkgs: [
|
#emacsWithCustomPackages
|
||||||
|
emacsPkgs= epkgs: [
|
||||||
#testing
|
#testing
|
||||||
epkgs.melpaPackages.gitlab
|
epkgs.melpaPackages.gitlab
|
||||||
|
epkgs.melpaPackages.forge
|
||||||
|
|
||||||
# emacs convenience
|
# emacs convenience
|
||||||
epkgs.melpaPackages.ag
|
epkgs.melpaPackages.ag
|
||||||
|
@ -177,7 +188,7 @@ let
|
||||||
epkgs.melpaPackages.monokai-alt-theme
|
epkgs.melpaPackages.monokai-alt-theme
|
||||||
|
|
||||||
# development
|
# development
|
||||||
epkgs.melpaStablePackages.magit
|
epkgs.melpaPackages.magit
|
||||||
epkgs.melpaPackages.nix-mode
|
epkgs.melpaPackages.nix-mode
|
||||||
epkgs.melpaPackages.go-mode
|
epkgs.melpaPackages.go-mode
|
||||||
epkgs.melpaPackages.haskell-mode
|
epkgs.melpaPackages.haskell-mode
|
||||||
|
@ -196,20 +207,26 @@ let
|
||||||
epkgs.melpaPackages.org-mime
|
epkgs.melpaPackages.org-mime
|
||||||
|
|
||||||
epkgs.elpaPackages.which-key
|
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" ''
|
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" ''
|
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" ''
|
myEmacsClient = pkgs.writeDashBin "meclient" ''
|
||||||
exec ${emacsWithCustomPackages}/bin/emacsclient --create-frame
|
exec ${emacsWithOverlay}/bin/emacsclient --create-frame
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
myEmacs myEmacsWithDaemon myEmacsClient
|
myEmacs myEmacsWithDaemon myEmacsClient
|
||||||
|
|
Loading…
Reference in New Issue
Block a user