2024-08-12 23:29:44 -04:00
|
|
|
{pkgs, ...}:
|
|
|
|
with pkgs;
|
|
|
|
emacsWithPackagesFromUsePackage {
|
|
|
|
config = ./init.el;
|
2024-08-13 00:56:54 -04:00
|
|
|
package =
|
|
|
|
if pkgs.stdenv.isDarwin
|
|
|
|
then
|
|
|
|
emacs29-pgtk.overrideAttrs (old: {
|
|
|
|
patches =
|
|
|
|
(old.patches or [])
|
|
|
|
++ [
|
|
|
|
# Fix OS window role (needed for window managers like yabai)
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch";
|
|
|
|
sha256 = "0c41rgpi19vr9ai740g09lka3nkjk48ppqyqdnncjrkfgvm2710z";
|
|
|
|
})
|
|
|
|
# Use poll instead of select to get file descriptors
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-29/poll.patch";
|
|
|
|
sha256 = "0j26n6yma4n5wh4klikza6bjnzrmz6zihgcsdx36pn3vbfnaqbh5";
|
|
|
|
})
|
|
|
|
# Enable rounded window with no decoration
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-29/round-undecorated-frame.patch";
|
|
|
|
sha256 = "0x187xvjakm2730d1wcqbz2sny07238mabh5d97fah4qal7zhlbl";
|
|
|
|
})
|
|
|
|
# Make Emacs aware of OS-level light/dark mode
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/system-appearance.patch";
|
|
|
|
sha256 = "14ndp2fqqc95s70fwhpxq58y8qqj4gzvvffp77snm2xk76c1bvnn";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
})
|
|
|
|
else pkgs.emacs29-pgtk;
|
2024-08-12 23:29:44 -04:00
|
|
|
|
|
|
|
defaultInitFile = true;
|
|
|
|
|
|
|
|
alwaysEnsure = true;
|
|
|
|
alwaysTangle = true;
|
|
|
|
|
2024-08-13 00:54:31 -04:00
|
|
|
extraEmacsPackages = epkgs:
|
|
|
|
with epkgs; [
|
|
|
|
treemacs
|
|
|
|
treemacs-evil
|
|
|
|
];
|
|
|
|
|
2024-08-12 23:29:44 -04:00
|
|
|
override = epkgs:
|
|
|
|
epkgs
|
|
|
|
// {
|
|
|
|
sideline-eglot = callPackage ./extraPackages/sideline-eglot.nix {
|
|
|
|
inherit (pkgs) fetchFromGitHub;
|
|
|
|
inherit (epkgs) trivialBuild sideline;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|