parent
87b886bfb0
commit
911cc18e65
3 changed files with 186 additions and 4 deletions
|
@ -1,10 +1,49 @@
|
|||
{
|
||||
lib,
|
||||
age,
|
||||
fleetFlake,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
emacs = fleetFlake.packages.${pkgs.system}.emacs;
|
||||
in
|
||||
{
|
||||
ccrEmacs.enable = true;
|
||||
home.sessionVariables.EDITOR = lib.mkForce "emacsclient";
|
||||
systemd.user.services.emacs.Service.EnvironmentFile = age.secrets.chatgpt-token.path;
|
||||
home.sessionVariables.EDITOR = lib.mkForce "emacsclient -c";
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = emacs;
|
||||
};
|
||||
services.emacs = {
|
||||
enable = true;
|
||||
client.enable = true;
|
||||
defaultEditor = true;
|
||||
socketActivation.enable = false;
|
||||
startWithUserSession = true;
|
||||
package = emacs;
|
||||
};
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
binutils
|
||||
delta
|
||||
(ripgrep.override { withPCRE2 = true; })
|
||||
gnutls
|
||||
fd
|
||||
hunspell
|
||||
python3
|
||||
imagemagick
|
||||
ghostscript_headless
|
||||
mupdf-headless
|
||||
poppler_utils
|
||||
ffmpegthumbnailer
|
||||
mediainfo
|
||||
unzipNLS
|
||||
nodejs_20
|
||||
pkgs.qadwaitadecorations
|
||||
pkgs.kdePackages.qtwayland
|
||||
]
|
||||
++ (with hunspellDicts; [
|
||||
en_US-large
|
||||
it_IT
|
||||
]);
|
||||
}
|
||||
|
|
35
packages/emacs/default.nix
Normal file
35
packages/emacs/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
pkgs' = pkgs.extend (
|
||||
lib.composeManyExtensions [
|
||||
inputs.emacs-overlay.overlays.package
|
||||
inputs.emacs-overlay.overlays.emacs
|
||||
]
|
||||
);
|
||||
all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues;
|
||||
treesitGrammars = pkgs'.runCommand "treesit-grammars" { } ''
|
||||
mkdir $out
|
||||
for f in ${all-grammars}/*
|
||||
do
|
||||
cp $f $out/"libtree-sitter-$(basename $f)"
|
||||
done
|
||||
'';
|
||||
emacsWithoutPackages = pkgs'.emacs-git.override {
|
||||
withSQLite3 = true;
|
||||
withWebP = true;
|
||||
withPgtk = true;
|
||||
};
|
||||
emacs = (pkgs'.emacsPackagesFor emacsWithoutPackages).emacsWithPackages (
|
||||
import ./packages.nix pkgs'
|
||||
);
|
||||
in
|
||||
emacs.overrideAttrs {
|
||||
passthru = {
|
||||
inherit treesitGrammars;
|
||||
};
|
||||
}
|
108
packages/emacs/packages.nix
Normal file
108
packages/emacs/packages.nix
Normal file
|
@ -0,0 +1,108 @@
|
|||
pkgs: epkgs:
|
||||
let
|
||||
inherit (epkgs) melpaPackages nongnuPackages elpaPackages;
|
||||
|
||||
# *Attrset* containig extra emacs packages from flake 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))
|
||||
(with melpaPackages; [
|
||||
meow
|
||||
meow-tree-sitter
|
||||
dracula-theme
|
||||
nord-theme
|
||||
catppuccin-theme
|
||||
modus-themes
|
||||
# solaire-mode
|
||||
nerd-icons
|
||||
nerd-icons-completion
|
||||
nerd-icons-ibuffer
|
||||
nerd-icons-dired
|
||||
ligature
|
||||
treemacs-nerd-icons
|
||||
eshell-syntax-highlighting
|
||||
fish-completion # fish completion for eshell
|
||||
eshell-prompt-extras
|
||||
eshell-atuin
|
||||
eshell-command-not-found
|
||||
clipetty
|
||||
sideline
|
||||
consult-eglot
|
||||
# sideline-flymake
|
||||
rainbow-delimiters
|
||||
vertico
|
||||
marginalia
|
||||
consult
|
||||
orderless
|
||||
embark
|
||||
embark-consult
|
||||
magit
|
||||
magit-delta
|
||||
magit-todos
|
||||
difftastic
|
||||
with-editor
|
||||
diff-hl
|
||||
corfu
|
||||
cape
|
||||
which-key
|
||||
nix-mode
|
||||
nix-ts-mode
|
||||
agenix
|
||||
zig-mode
|
||||
unisonlang-mode
|
||||
purescript-mode
|
||||
dhall-mode
|
||||
envrc
|
||||
inheritenv
|
||||
popper
|
||||
paredit
|
||||
yaml-mode
|
||||
hl-todo
|
||||
markdown-mode
|
||||
haskell-mode
|
||||
terraform-mode
|
||||
diredfl
|
||||
org-modern
|
||||
org-roam
|
||||
org-roam-ql
|
||||
visual-fill-column
|
||||
consult-org-roam
|
||||
pass
|
||||
password-store-otp
|
||||
eldoc-box
|
||||
go-translate
|
||||
notmuch
|
||||
consult-notmuch
|
||||
poly-org
|
||||
casual-calc
|
||||
gptel
|
||||
agenix
|
||||
solidity-mode
|
||||
# org-re-reveal # FIXME very not nice hash mismatch when building
|
||||
# gptel # TODO uncomment when there will be a new release including GPT-4o
|
||||
])
|
||||
++ (with elpaPackages; [
|
||||
delight
|
||||
kind-icon
|
||||
ef-themes
|
||||
indent-bars
|
||||
])
|
||||
++ (with nongnuPackages; [
|
||||
eat
|
||||
corfu-terminal
|
||||
haskell-ts-mode
|
||||
]);
|
||||
in
|
||||
mainPackages
|
||||
# ++ (builtins.attrValues extraPackages)
|
||||
# Playing with EAF
|
||||
++ [
|
||||
# Disabled because pymupdf was broken
|
||||
# (pkgs.callPackage ./eaf.nix {
|
||||
# inherit (epkgs) melpaBuild;
|
||||
# inherit (melpaPackages) ctable deferred epc s;
|
||||
# })
|
||||
]
|
Loading…
Add table
Reference in a new issue