{ config, lib, pkgs, ... }: with config.lib.file; let emacsWithPackages = (pkgs.emacsPackagesFor pkgs.emacs29).emacsWithPackages; aspell = (pkgs.aspellWithDicts (d: [d.en])); in { home.packages = with pkgs; let basePackages = [ (emacsWithPackages (epkgs: [ epkgs.melpaPackages.jinx ])) zstd emacs-lsp-booster aspell ]; # Macs need coreutils for dired to work macPackages = basePackages ++ [ coreutils ]; in if pkgs.stdenv.hostPlatform.isDarwin then macPackages else basePackages; xdg.configFile = { "emacs".source = mkOutOfStoreSymlink "${config.home.homeDirectory}/.dotfiles/emacs"; }; # The aspell wrapper created by aspellWithDicts only wraps the # binary, not the library, so we need to write a config file that # tells it where to find things for libenchant to work. See: # https://discourse.nixos.org/t/aspell-dictionaries-are-not-available-to-enchant/39254 home.file.".aspell.conf".text = '' dict-dir ${aspell}/lib/aspell ''; }