1
0
mirror of https://github.com/ellmau/nixos.git synced 2025-12-19 09:29:36 +01:00
nixos/modules/emacs/default.nix
Stefan Ellmauthaler 54327482e3
Redesign/flake (#4)
Redesign flake and update to 22.05
2022-06-10 21:32:48 +02:00

113 lines
2.6 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
defaultEl = ./default.el;
environment.systemPackages = [ pkgs.gdb ]; # use gdb for dap-mode
defaultConfig = pkgs.runCommand "default.el" { } ''
mkdir -p $out/share/emacs/site-lisp
cp ${defaultEl} $out/share/emacs/site-lisp/default.el
'';
emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages
(epkgs:
let
lpkgs = import ./packages.nix {
inherit config lib pkgs epkgs;
};
in
#[ (defaultConfig lpkgs) ] ++ (with pkgs; [
# aspell
# emacs-all-the-icons-fonts
# gnupg
# nixpkgs-fmt
#])
[(defaultConfig)] ++
[(with epkgs.elpaPackages; [
auctex
org
flymake
])]
++ (with epkgs.melpaStablePackages; [ ]) ++ (with epkgs.melpaPackages; [
ac-helm
academic-phrases
add-hooks
alert
all-the-icons
all-the-icons-dired
beacon
bln-mode
cargo-mode
company
company-auctex
company-bibtex
company-flx
company-quickhelp
company-reftex
cov
dap-mode
diminish
direnv
dockerfile-mode
docker-compose-mode
flycheck
free-keys
highlight-indentation
helm
#helm-bbdb
helm-company
helm-flx
helm-descbinds
helm-lsp
helm-projectile
helm-rg
json-mode
less-css-mode
lsp-mode
lsp-ui
magit
moe-theme
multiple-cursors
nix-mode
nixpkgs-fmt
org-bullets
org-roam
#org-roam-server
pasp-mode
pdf-tools
projectile
projectile-ripgrep
rustic
spacemacs-theme
solarized-theme
sparql-mode
sudo-edit
use-package
#vscode-dark-plus-theme
yaml-mode
yasnippet
#zenburn-theme
] ++ (with lpkgs; [
org-roam-ui
ligatures
])));
in
{
options.elss.programs.emacs.enable = mkEnableOption "Setup emacs package and install it";
config = mkIf config.elss.programs.emacs.enable {
services.emacs = {
enable = true;
defaultEditor = true;
package = emacsPackage;
};
};
#nixpkgs.overlays = [ (self: super: { emacsOrig = super.emacs; }) (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
#})) ];
#nixpkgs.overlays = [
# (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
# }))
#];
}