78 lines
2.2 KiB
Nix
78 lines
2.2 KiB
Nix
{inputs, ...}: {
|
|
imports = [
|
|
inputs.flake-parts.flakeModules.easyOverlay
|
|
];
|
|
perSystem = {
|
|
config,
|
|
self',
|
|
inputs',
|
|
pkgs,
|
|
final,
|
|
lib,
|
|
system,
|
|
...
|
|
}: let
|
|
inherit (inputs.emacs-overlay.overlays.default pkgs pkgs) emacsPackagesFor;
|
|
in {
|
|
# Some tree-sitter grammars in nixpksg are built with a too new ABI
|
|
# https://github.com/NixOS/nixpkgs/issues/209114
|
|
_module.args.pkgs = inputs.nixpkgs.legacyPackages.${system}.extend (self: super: {
|
|
indent-bars-source = inputs.indent-bars;
|
|
nix-ts-mode-source = inputs.nix-ts-mode;
|
|
combobulate-source = inputs.combobulate;
|
|
# tree-sitter-grammars =
|
|
# super.tree-sitter-grammars
|
|
# // {
|
|
# tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs (_: {
|
|
# nativeBuildInputs = [self.nodejs self.tree-sitter];
|
|
# configurePhase = ''
|
|
# tree-sitter generate --abi 13 src/grammar.json
|
|
# '';
|
|
# });
|
|
# };
|
|
});
|
|
|
|
packages = {
|
|
treesitGrammars = let
|
|
all-grammars = pkgs.tree-sitter.withPlugins builtins.attrValues;
|
|
in
|
|
pkgs.runCommand "treesit-grammars" {} ''
|
|
mkdir $out
|
|
for f in ${all-grammars}/*
|
|
do
|
|
cp $f $out/"libtree-sitter-$(basename $f)"
|
|
done
|
|
'';
|
|
ccrEmacsWithoutPackages =
|
|
(inputs'.emacs-overlay.packages.emacs-unstable.override {
|
|
withPgtk = true;
|
|
# withNS = false;
|
|
# withX = false;
|
|
# withGTK2 = false;
|
|
# withGTK3 = false;
|
|
# withWebP = false;
|
|
})
|
|
.overrideAttrs (old: {
|
|
name = "ccr-emacs";
|
|
version = "29";
|
|
});
|
|
ccrEmacs = let
|
|
emacs =
|
|
(emacsPackagesFor self'.packages.ccrEmacsWithoutPackages).emacsWithPackages
|
|
(import ./packages.nix pkgs);
|
|
in
|
|
pkgs.runCommand "emacs" {} ''
|
|
cp -r ${emacs} emacs
|
|
chmod 700 -R emacs
|
|
mkdir emacs/share/emacs
|
|
cp -r emacs $out
|
|
'';
|
|
default = self'.packages.ccrEmacs;
|
|
};
|
|
|
|
apps = {
|
|
ccrEmacs.program = "${self'.packages.ccrEmacs}/bin/emacs";
|
|
default = config.apps.ccrEmacs;
|
|
};
|
|
};
|
|
}
|