Files
NixOS/modules/dev/emacs/common.nix
2026-03-18 15:58:19 -06:00

64 lines
1.2 KiB
Nix

{
lib,
pkgs,
stylixEnabled,
emacsExtraConfig,
emacsExtraPackages,
}:
let
clipboardPackages =
if pkgs.stdenv.isDarwin then
builtins.attrValues {
inherit (pkgs) pngpaste;
}
else
builtins.attrValues {
inherit (pkgs)
xclip
wl-clipboard-rs
;
};
linuxWindowPackages = lib.optionals pkgs.stdenv.isLinux (
builtins.attrValues {
inherit (pkgs.xorg) xwininfo;
inherit (pkgs) xdotool;
}
);
in
{
packages =
linuxWindowPackages
++ clipboardPackages
++ builtins.attrValues {
inherit (pkgs)
fd
fzf
ripgrep
tree-sitter
graphviz
tetex
languagetool
yaml-language-server
markdownlint-cli
;
inherit (pkgs.nodePackages)
vscode-json-languageserver
prettier
;
};
extraPackages =
epkgs:
let
extra = emacsExtraPackages epkgs;
themes = lib.optional stylixEnabled [
(epkgs.trivialBuild {
pname = "stylix-theme";
src = pkgs.writeText "stylix-theme.el" emacsExtraConfig;
version = "0.1.0";
packageRequires = extra;
})
];
in
extra ++ themes;
}