diff --git a/flake.nix b/flake.nix index 7855ad3..2ce132b 100644 --- a/flake.nix +++ b/flake.nix @@ -11,24 +11,38 @@ inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = inputs: + outputs = + inputs: inputs.parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" ]; - perSystem = { pkgs, self', config, system, ... }: { - _module.args.pkgs = import inputs.nixpkgs { - inherit system; - overlays = [ - (import inputs.emacs) - ]; + perSystem = + { + pkgs, + self', + config, + system, + ... + }: + let + inherit (import ./package/mkEmacs.nix pkgs) mkEmacs; + in + { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ + (import inputs.emacs) + ]; + }; + + packages = { + pankomacs = mkEmacs pkgs.emacs29-pgtk; + pankomacs-x11 = mkEmacs pkgs.emacs-gtk; + }; + + formatter = pkgs.nixfmt-rfc-style; }; - - packages.pankomacs = pkgs.callPackage ./package { }; - packages.default = self'.packages.pankomacs; - - formatter = pkgs.nixpkgs-fmt; - }; }; } diff --git a/package/config.org b/package/config.org index 1fa7d96..430015a 100644 --- a/package/config.org +++ b/package/config.org @@ -285,7 +285,10 @@ Enabling Emacs-LSP to use LSPs, I am very dry on syntax highlighters right now. #+END_SRC *** Rust #+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 *** Haskell #+BEGIN_SRC emacs-lisp diff --git a/package/default.nix b/package/default.nix deleted file mode 100644 index 02cfd7c..0000000 --- a/package/default.nix +++ /dev/null @@ -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; }; -} diff --git a/package/mkEmacs.nix b/package/mkEmacs.nix new file mode 100644 index 0000000..7d56aea --- /dev/null +++ b/package/mkEmacs.nix @@ -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; }; + }; +}