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 9bdb9fe8d2
Xmonad (#9)
* XMonad base config
* Polybar
* development environment for emacs

* flake bump
Flake lock file updates:

• Added input 'flake-utils':
    'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11)
• Added input 'flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Added input 'flake-utils-plus':
    'github:gytis-ivaskevicius/flake-utils-plus/2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a' (2022-07-07)
• Added input 'flake-utils-plus/flake-utils':
    'github:numtide/flake-utils/3cecb5b042f7f209c56ffd8371b2711a290ec797' (2022-02-07)
• Added input 'nixpkgs':
    'github:NixOS/nixpkgs/7629f9b0680d87c7775f3261bee746da5dac76d1' (2023-05-08)
• Added input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/897876e4c484f1e8f92009fd11b7d988a121a4e7' (2023-05-06)
2023-05-09 15:17:19 +02:00

119 lines
3.1 KiB
Nix

{
config,
lib,
pkgs,
...
}:
with lib; let
defaultEl = ./default.el;
environment.systemPackages = [pkgs.gdb]; # use gdb for dap-mode
localsettings = pkgs.writeText "local-settings.el" ''
(defconst elss/paths/cpptools "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools")
(defconst elss/paths/cpptools-program "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7")
(provide 'local-settings)
'';
defaultConfig = pkgs.runCommand "default.el" {} ''
mkdir -p $out/share/emacs/site-lisp
cp ${defaultEl} $out/share/emacs/site-lisp/default.el
cp ${localsettings} $out/share/emacs/site-lisp/local-settings.el
'';
emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: let
lpkgs = import ./packages.nix {inherit config lib pkgs epkgs;};
#[ (defaultConfig lpkgs) ] ++ (with pkgs; [
# aspell
# emacs-all-the-icons-fonts
# gnupg
# nixpkgs-fmt
#])
in
[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
apheleia
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
haskell-mode
highlight-indentation
helm
#helm-bbdb
helm-company
helm-flx
helm-descbinds
helm-lsp
helm-projectile
helm-rg
json-mode
less-css-mode
lsp-haskell
lsp-mode
lsp-ui
magit
markdown-mode
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;
# }))
#];
}