Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate
This commit is contained in:
74
modules/user/emacs/default.nix
Normal file
74
modules/user/emacs/default.nix
Normal file
@@ -0,0 +1,74 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.userSettings.emacs;
|
||||
in {
|
||||
options = {
|
||||
userSettings.emacs = {
|
||||
enable = lib.mkEnableOption "Enable emacs";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
(pkgs.emacsWithPackagesFromUsePackage {
|
||||
config = ./init.el;
|
||||
package = pkgs.emacs-pgtk;
|
||||
alwaysEnsure = false;
|
||||
extraEmacsPackages = epkgs: with epkgs; [
|
||||
org-modern olivetti
|
||||
command-log-mode
|
||||
vertico corfu hotfuzz orderless
|
||||
evil evil-collection evil-snipe evil-owl evil-vimish-fold
|
||||
dashboard doom-themes doom-modeline
|
||||
nerd-icons nerd-icons-dired nerd-icons-corfu
|
||||
nerd-icons-ibuffer nerd-icons-completion
|
||||
yasnippet shackle
|
||||
projectile treemacs treemacs-projectile
|
||||
treemacs-evil treemacs-nerd-icons
|
||||
treesit-grammars.with-all-grammars
|
||||
git-timemachine wgrep
|
||||
magit magit-file-icons magit-todos
|
||||
undo-fu undo-fu-session
|
||||
org-roam org-node org-node-fakeroam
|
||||
vterm vterm-toggle sudo-edit
|
||||
direnv
|
||||
gdscript-mode
|
||||
nix-mode
|
||||
python python-mode
|
||||
lsp-mode flycheck lsp-ui lsp-treemacs
|
||||
# fix ultra-scroll
|
||||
(epkgs.callPackage (
|
||||
{ lib, fetchurl, trivialBuild }:
|
||||
|
||||
trivialBuild {
|
||||
pname = "ultra-scroll";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchGit {
|
||||
url = "https://github.com/jdtsmith/ultra-scroll.git";
|
||||
rev = "64ad7be02e11317576498dabb15c92cf31e2c04c";
|
||||
ref = "main";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "scroll Emacs like lightning";
|
||||
homepage = "https://github.com/jdtsmith/ultra-scroll";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
) {})
|
||||
];
|
||||
})
|
||||
fira-code
|
||||
nerd-fonts.fira-code
|
||||
nil
|
||||
];
|
||||
home.file.".config/emacs/init.el".source = ./init.el;
|
||||
home.file.".config/emacs/themes/doom-stylix-theme.el".source = config.lib.stylix.colors {
|
||||
template = builtins.readFile ./lib/doom-stylix-theme.el.mustache;
|
||||
extension = ".el";
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user