stockholm/jeschli/2configs/emacs.nix

119 lines
3.0 KiB
Nix
Raw Normal View History

2018-03-20 16:38:26 +00:00
{ config, pkgs, ... }:
let
pkgsWithOverlay = import <nixpkgs-unstable> {
overlays = [
(import (builtins.fetchTarball {
2020-03-28 17:54:51 +00:00
url = https://github.com/nix-community/emacs-overlay/archive/403c14c23be188b58c0b1bc197b428041d8a0cea.tar.gz;
}))
];
};
#emacsWithCustomPackages
emacsPkgs= epkgs: [
2019-11-14 14:34:49 +00:00
# testing lsp mode
epkgs.melpaPackages.lsp-ui
epkgs.melpaPackages.company-lsp
epkgs.melpaPackages.lsp-treemacs
epkgs.melpaPackages.helm-lsp
epkgs.melpaPackages.dap-mode
epkgs.melpaPackages.lsp-mode
# testing
2019-10-21 05:42:39 +00:00
epkgs.melpaPackages.web-mode
epkgs.melpaPackages.js2-mode
epkgs.melpaPackages.xref-js2
epkgs.melpaPackages.academic-phrases
2019-09-24 03:40:40 +00:00
epkgs.melpaPackages.gitlab
2019-10-21 05:42:39 +00:00
epkgs.melpaPackages.weechat
2019-09-24 03:40:40 +00:00
2020-02-11 16:52:46 +00:00
# helm
epkgs.melpaPackages.helm
epkgs.melpaPackages.helm-fuzzier
epkgs.melpaPackages.helm-ag
2019-09-24 03:40:40 +00:00
# emacs convenience
epkgs.melpaPackages.ag
epkgs.melpaPackages.company
2019-09-24 03:40:40 +00:00
epkgs.melpaPackages.direnv
2018-07-31 14:32:39 +00:00
epkgs.melpaPackages.evil
2019-09-24 03:40:40 +00:00
epkgs.melpaPackages.google-this
epkgs.melpaPackages.monokai-alt-theme
2019-11-16 03:10:53 +00:00
epkgs.melpaPackages.spacemacs-theme
2019-11-14 14:34:49 +00:00
epkgs.melpaPackages.zenburn-theme
2019-09-24 03:40:40 +00:00
# development
epkgs.melpaPackages.magit
2018-03-21 07:59:35 +00:00
epkgs.melpaPackages.nix-mode
2018-03-24 10:30:30 +00:00
epkgs.melpaPackages.go-mode
epkgs.melpaPackages.haskell-mode
2019-09-17 07:09:00 +00:00
# rust
epkgs.melpaPackages.rust-mode
2019-11-14 14:34:49 +00:00
# epkgs.melpaPackages.flycheck-rust
2019-09-17 07:09:00 +00:00
epkgs.melpaPackages.racer
2019-09-24 03:40:40 +00:00
# python
2019-09-11 21:00:00 +00:00
epkgs.melpaPackages.elpy
2020-03-30 06:18:10 +00:00
# org-mode
epkgs.melpaPackages.org-super-agenda
epkgs.melpaPackages.org-bullets
epkgs.melpaPackages.org-ql
2019-09-17 07:09:00 +00:00
epkgs.elpaPackages.bbdb
epkgs.orgPackages.org-plus-contrib
epkgs.melpaPackages.smex
epkgs.melpaPackages.org-mime
2019-11-14 14:34:49 +00:00
epkgs.melpaPackages.orgit
epkgs.elpaPackages.which-key
2020-02-11 16:52:46 +00:00
epkgs.exwm
epkgs.melpaPackages.desktop-environment
epkgs.melpaPackages.helm-exwm
];
2019-11-14 14:34:49 +00:00
emacsWithOverlay = pkgsWithOverlay.emacsWithPackagesFromUsePackage {
2020-02-11 16:52:46 +00:00
config = builtins.readFile ./elisp/init.el;
2019-11-14 14:34:49 +00:00
# Package is optional, defaults to pkgs.emacs
package = pkgsWithOverlay.emacsGit;
# Optionally provide extra packages not in the configuration file
extraEmacsPackages = emacsPkgs;
};
2018-03-20 19:16:12 +00:00
myEmacs = pkgs.writeDashBin "my-emacs" ''
2020-04-14 18:42:06 +00:00
exec ${emacsWithOverlay}/bin/emacs -q "$@"
2018-03-20 19:16:12 +00:00
'';
myEmacsWithDaemon = pkgs.writeDashBin "my-emacs-daemon" ''
2020-04-14 18:42:06 +00:00
exec ${emacsWithOverlay}/bin/emacs -q --daemon
'';
myEmacsClient = pkgs.writeDashBin "meclient" ''
exec ${emacsWithOverlay}/bin/emacsclient --create-frame
'';
2018-03-20 16:38:26 +00:00
in {
environment.systemPackages = [
2020-02-11 16:52:46 +00:00
myEmacs myEmacsWithDaemon myEmacsClient emacsWithOverlay
2018-03-20 16:38:26 +00:00
];
2020-02-11 16:52:46 +00:00
2020-03-30 06:18:46 +00:00
## EXWM Config
# services.xserver = {
# enable = true;
# xkbOptions = "caps:super";
# exportConfiguration = true;
#
# displayManager.slim.enable = true;
# windowManager.default = "exwm";
#
# # Set up the login session
# windowManager.session = [{
# name = "exwm";
# start = "${emacsWithOverlay}/bin/emacs -q -l " + builtins.toString ./elisp/init.el;
# }];
# };
2018-03-20 16:38:26 +00:00
}