feat: refactor emacs package declaring
this is a ton better because: this makes the flake look cleaner this means I can declare multiple packages in the flake without repeating myself as much as i would have had to.
This commit is contained in:
parent
e0e44156e7
commit
95ef7816f0
4 changed files with 105 additions and 84 deletions
24
flake.nix
24
flake.nix
|
@ -11,13 +11,25 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = inputs:
|
outputs =
|
||||||
|
inputs:
|
||||||
inputs.parts.lib.mkFlake { inherit inputs; } {
|
inputs.parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = [
|
systems = [
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
];
|
];
|
||||||
|
|
||||||
perSystem = { pkgs, self', config, system, ... }: {
|
perSystem =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
self',
|
||||||
|
config,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (import ./package/mkEmacs.nix pkgs) mkEmacs;
|
||||||
|
in
|
||||||
|
{
|
||||||
_module.args.pkgs = import inputs.nixpkgs {
|
_module.args.pkgs = import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
overlays = [
|
overlays = [
|
||||||
|
@ -25,10 +37,12 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages.pankomacs = pkgs.callPackage ./package { };
|
packages = {
|
||||||
packages.default = self'.packages.pankomacs;
|
pankomacs = mkEmacs pkgs.emacs29-pgtk;
|
||||||
|
pankomacs-x11 = mkEmacs pkgs.emacs-gtk;
|
||||||
|
};
|
||||||
|
|
||||||
formatter = pkgs.nixpkgs-fmt;
|
formatter = pkgs.nixfmt-rfc-style;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -285,7 +285,10 @@ Enabling Emacs-LSP to use LSPs, I am very dry on syntax highlighters right now.
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
*** Rust
|
*** Rust
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package rustic)
|
(use-package rustic
|
||||||
|
:custom
|
||||||
|
(rustic-format-on-save t)
|
||||||
|
(rustic-cargo-use-last-stored-arguments t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
*** Haskell
|
*** Haskell
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
{ emacsWithPackagesFromUsePackage, fetchurl, emacs29-pgtk, python3 }:
|
|
||||||
emacsWithPackagesFromUsePackage {
|
|
||||||
package = emacs29-pgtk;
|
|
||||||
config = ./config.org;
|
|
||||||
defaultInitFile = true;
|
|
||||||
alwaysEnsure = true;
|
|
||||||
alwaysTangle = true;
|
|
||||||
extraEmacsPackages = e:
|
|
||||||
let
|
|
||||||
mkEmacsPackage =
|
|
||||||
pname:
|
|
||||||
src:
|
|
||||||
deps:
|
|
||||||
e.callPackage
|
|
||||||
({ trivialBuild }: trivialBuild {
|
|
||||||
inherit pname src;
|
|
||||||
version = "0.1.0";
|
|
||||||
buildInputs = deps;
|
|
||||||
propagatedUserEnvPkgs = deps;
|
|
||||||
})
|
|
||||||
{ inherit (e) trivialBuild; };
|
|
||||||
in
|
|
||||||
(builtins.attrValues {
|
|
||||||
inherit (e)
|
|
||||||
nix-mode
|
|
||||||
vertico
|
|
||||||
orderless
|
|
||||||
marginalia
|
|
||||||
embark
|
|
||||||
consult
|
|
||||||
embark-consult
|
|
||||||
consult-dir
|
|
||||||
doom-modeline
|
|
||||||
flycheck
|
|
||||||
which-key
|
|
||||||
lsp-mode
|
|
||||||
lsp-ui
|
|
||||||
lsp-pyright
|
|
||||||
treemacs
|
|
||||||
lsp-treemacs
|
|
||||||
consult-lsp
|
|
||||||
treemacs-icons-dired
|
|
||||||
treemacs-nerd-icons
|
|
||||||
nerd-icons
|
|
||||||
all-the-icons
|
|
||||||
projectile
|
|
||||||
treemacs-projectile
|
|
||||||
magit
|
|
||||||
treemacs-magit
|
|
||||||
rustic
|
|
||||||
haskell-mode
|
|
||||||
envrc
|
|
||||||
ccls
|
|
||||||
org-roam
|
|
||||||
spacious-padding
|
|
||||||
mood-line
|
|
||||||
ement
|
|
||||||
autothemer
|
|
||||||
;
|
|
||||||
|
|
||||||
treesit-grammars = e.treesit-grammars.with-all-grammars;
|
|
||||||
inherit python3;
|
|
||||||
oxocarbon = mkEmacsPackage "oxocarbon-theme"
|
|
||||||
(fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/konrad1977/emacs/main/themes/oxocarbon-theme.el";
|
|
||||||
hash = "sha256-jD4DYc7aePuAF3m323YAi7jzE6ZpsSWb/zdmEgjFCns=";
|
|
||||||
}) [ e.autothemer ];
|
|
||||||
});
|
|
||||||
override = _: prev: { use-package = prev.emacs; };
|
|
||||||
}
|
|
74
package/mkEmacs.nix
Normal file
74
package/mkEmacs.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
mkEmacsPackage =
|
||||||
|
epkgs: pname: version: src: deps:
|
||||||
|
epkgs.callPackage (
|
||||||
|
{ trivialBuild }:
|
||||||
|
trivialBuild {
|
||||||
|
inherit pname version src;
|
||||||
|
buildInputs = deps;
|
||||||
|
propagatedUserEnvPkgs = deps;
|
||||||
|
}
|
||||||
|
) { inherit (epkgs) trivialBuild; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
mkEmacs =
|
||||||
|
emacs:
|
||||||
|
pkgs.emacsWithPackagesFromUsePackage {
|
||||||
|
package = emacs;
|
||||||
|
defaultInitFile = true;
|
||||||
|
alwaysEnsure = true;
|
||||||
|
alwaysTangle = true;
|
||||||
|
config = ./config.org;
|
||||||
|
extraEmacsPackages =
|
||||||
|
e:
|
||||||
|
builtins.attrValues {
|
||||||
|
inherit (e)
|
||||||
|
nix-mode
|
||||||
|
vertico
|
||||||
|
orderless
|
||||||
|
marginalia
|
||||||
|
embark
|
||||||
|
consult
|
||||||
|
embark-consult
|
||||||
|
consult-dir
|
||||||
|
doom-modeline
|
||||||
|
flycheck
|
||||||
|
which-key
|
||||||
|
lsp-mode
|
||||||
|
lsp-ui
|
||||||
|
lsp-pyright
|
||||||
|
treemacs
|
||||||
|
lsp-treemacs
|
||||||
|
consult-lsp
|
||||||
|
treemacs-icons-dired
|
||||||
|
treemacs-nerd-icons
|
||||||
|
nerd-icons
|
||||||
|
all-the-icons
|
||||||
|
projectile
|
||||||
|
treemacs-projectile
|
||||||
|
magit
|
||||||
|
treemacs-magit
|
||||||
|
rustic
|
||||||
|
haskell-mode
|
||||||
|
envrc
|
||||||
|
ccls
|
||||||
|
org-roam
|
||||||
|
spacious-padding
|
||||||
|
mood-line
|
||||||
|
ement
|
||||||
|
autothemer
|
||||||
|
geiser-guile
|
||||||
|
;
|
||||||
|
|
||||||
|
treesit-grammars = e.treesit-grammars.with-all-grammars;
|
||||||
|
inherit (pkgs) python3;
|
||||||
|
|
||||||
|
oxocarbon-theme = mkEmacsPackage e "oxocarbon-theme" "0.1.0" (pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/konrad1977/emacs/main/themes/oxocarbon-theme.el";
|
||||||
|
hash = "sha256-jD4DYc7aePuAF3m323YAi7jzE6ZpsSWb/zdmEgjFCns=";
|
||||||
|
}) [ e.autothemer ];
|
||||||
|
};
|
||||||
|
override = _: prev: { use-package = prev.emacs; };
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue