parent
87b886bfb0
commit
911cc18e65
3 changed files with 186 additions and 4 deletions
|
@ -1,10 +1,49 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
age,
|
fleetFlake,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
emacs = fleetFlake.packages.${pkgs.system}.emacs;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
ccrEmacs.enable = true;
|
home.sessionVariables.EDITOR = lib.mkForce "emacsclient -c";
|
||||||
home.sessionVariables.EDITOR = lib.mkForce "emacsclient";
|
programs.emacs = {
|
||||||
systemd.user.services.emacs.Service.EnvironmentFile = age.secrets.chatgpt-token.path;
|
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