Automatically add prefixed flake inputs as emacs packages
This commit is contained in:
parent
570734c9f0
commit
044db098ce
4 changed files with 166 additions and 333 deletions
packages
|
@ -14,13 +14,14 @@
|
|||
}: 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;
|
||||
agenix-el-source = inputs.agenix-el;
|
||||
extra-package-inputs = lib.mapAttrs' (inputName: input: {
|
||||
name = builtins.head (builtins.match "extra-package-(.*)" inputName);
|
||||
value = input;
|
||||
}) (lib.filterAttrs (inputName: _: ! builtins.isNull (builtins.match "extra-package-.*" inputName)) inputs);
|
||||
|
||||
# Some tree-sitter grammars in nixpksg are built with a too new ABI
|
||||
# https://github.com/NixOS/nixpkgs/issues/209114
|
||||
# tree-sitter-grammars =
|
||||
# super.tree-sitter-grammars
|
||||
# // {
|
||||
|
@ -44,19 +45,9 @@
|
|||
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";
|
||||
});
|
||||
ccrEmacsWithoutPackages = inputs'.emacs-overlay.packages.emacs-unstable.override {
|
||||
withPgtk = true;
|
||||
};
|
||||
ccrEmacs = let
|
||||
emacs =
|
||||
(emacsPackagesFor self'.packages.ccrEmacsWithoutPackages).emacsWithPackages
|
||||
|
|
|
@ -1,65 +1,77 @@
|
|||
pkgs: epkgs:
|
||||
with epkgs; [
|
||||
meow
|
||||
dracula-theme
|
||||
solaire-mode
|
||||
nerd-icons
|
||||
nerd-icons-completion
|
||||
nerd-icons-ibuffer
|
||||
nerd-icons-dired
|
||||
treemacs-nerd-icons
|
||||
eat
|
||||
eshell-syntax-highlighting
|
||||
esh-autosuggest
|
||||
clipetty
|
||||
sideline
|
||||
sideline-flymake
|
||||
rainbow-delimiters
|
||||
delight
|
||||
vertico
|
||||
marginalia
|
||||
consult
|
||||
orderless
|
||||
embark
|
||||
embark-consult
|
||||
magit
|
||||
magit-delta
|
||||
magit-todos
|
||||
diff-hl
|
||||
corfu
|
||||
corfu-terminal
|
||||
kind-icon
|
||||
cape
|
||||
which-key
|
||||
# nix-mode
|
||||
(nix-ts-mode.overrideAttrs (_: {
|
||||
src = pkgs.nix-ts-mode-source;
|
||||
}))
|
||||
unisonlang-mode
|
||||
purescript-mode
|
||||
dhall-mode
|
||||
envrc
|
||||
inheritenv
|
||||
popper
|
||||
paredit
|
||||
yaml-mode
|
||||
hl-todo
|
||||
markdown-mode
|
||||
haskell-mode
|
||||
terraform-mode
|
||||
diredfl
|
||||
(pkgs.callPackage ./indent-bars.nix {
|
||||
src = pkgs.indent-bars-source;
|
||||
inherit (epkgs) trivialBuild compat;
|
||||
})
|
||||
(pkgs.callPackage ./combobulate.nix {
|
||||
src = pkgs.combobulate-source;
|
||||
inherit (epkgs) trivialBuild;
|
||||
})
|
||||
org-roam
|
||||
consult-org-roam
|
||||
(pkgs.callPackage ./agenix-el.nix {
|
||||
src = pkgs.agenix-el-source;
|
||||
inherit (epkgs) trivialBuild;
|
||||
})
|
||||
]
|
||||
with epkgs; let
|
||||
inherit (pkgs) lib;
|
||||
|
||||
depsPerPackage = {
|
||||
indent-bars = [compat];
|
||||
};
|
||||
|
||||
# *Attrset* containig extra emacs packages from flake inputs
|
||||
extraPackages = lib.mapAttrs (inputName: input: let
|
||||
deps = depsPerPackage.${inputName} or [];
|
||||
in
|
||||
trivialBuild {
|
||||
pname = inputName;
|
||||
src = input.outPath;
|
||||
version = input.shortRev;
|
||||
propagatedUserEnvPkgs = deps;
|
||||
buildInputs = deps;
|
||||
})
|
||||
pkgs.extra-package-inputs;
|
||||
|
||||
# *List* containing emacs packages from (M)ELPA
|
||||
mainPackages =
|
||||
builtins.filter
|
||||
# if an extra package has the same name then give precedence to it
|
||||
(package: ! builtins.elem package.pname (builtins.attrNames extraPackages))
|
||||
[
|
||||
meow
|
||||
dracula-theme
|
||||
solaire-mode
|
||||
nerd-icons
|
||||
nerd-icons-completion
|
||||
nerd-icons-ibuffer
|
||||
nerd-icons-dired
|
||||
treemacs-nerd-icons
|
||||
eat
|
||||
eshell-syntax-highlighting
|
||||
esh-autosuggest
|
||||
clipetty
|
||||
sideline
|
||||
sideline-flymake
|
||||
rainbow-delimiters
|
||||
delight
|
||||
vertico
|
||||
marginalia
|
||||
consult
|
||||
orderless
|
||||
embark
|
||||
embark-consult
|
||||
magit
|
||||
magit-delta
|
||||
magit-todos
|
||||
diff-hl
|
||||
corfu
|
||||
corfu-terminal
|
||||
kind-icon
|
||||
cape
|
||||
which-key
|
||||
# nix-mode
|
||||
unisonlang-mode
|
||||
purescript-mode
|
||||
dhall-mode
|
||||
envrc
|
||||
inheritenv
|
||||
popper
|
||||
paredit
|
||||
yaml-mode
|
||||
hl-todo
|
||||
markdown-mode
|
||||
haskell-mode
|
||||
terraform-mode
|
||||
diredfl
|
||||
org-roam
|
||||
consult-org-roam
|
||||
];
|
||||
in
|
||||
mainPackages ++ (builtins.attrValues extraPackages)
|
||||
|
|
Reference in a new issue