{ config, lib, pkgs, ... }: { config = lib.mkIf (config.jfrikker.enable && config.jfrikker.desktop.enable) { programs.emacs = { enable = true; extraPackages = epkgs: with epkgs; [ ace-window age apheleia avy buffer-terminator cape catppuccin-theme (epkgs.trivialBuild { pname = "claude-code"; version = "0.4.5"; src = pkgs.fetchFromGitHub { owner = "stevemolitor"; repo = "claude-code.el"; rev = "03199df8b3a1e9cd4857f0851f7a912ba524aff3"; sha256 = "sha256-5QJrWIu4EgnHcOqMwlrs2JBBx7aI9OaSJswesr6Apfk="; }; packageRequires = [ epkgs.inheritenv ]; }) consult consult-eglot consult-gh corfu diff-hl doom-modeline eat edit-indirect embark embark-consult envrc forge free-keys git-timemachine god-mode graphql-ts-mode haskell-ts-mode jenkinsfile-mode jq-mode ligature (lispy.overrideAttrs { packageRequires = [ ace-window iedit swiper zoutline hydra ]; ignoreCompilationError = true; }) ledger-mode lua-mode magit marginalia mixed-pitch nix-mode orderless org-modern org-present org-roam pnpm-mode popper prisma-ts-mode rust-mode sly sly-macrostep sql-indent string-inflection tree-sitter (treesit-grammars.with-grammars (g: [ g.tree-sitter-bash g.tree-sitter-commonlisp g.tree-sitter-css g.tree-sitter-dockerfile g.tree-sitter-dot g.tree-sitter-elisp g.tree-sitter-graphql g.tree-sitter-gitcommit g.tree-sitter-gitignore g.tree-sitter-haskell g.tree-sitter-html g.tree-sitter-java g.tree-sitter-javascript g.tree-sitter-jq g.tree-sitter-json g.tree-sitter-json5 g.tree-sitter-just g.tree-sitter-ledger g.tree-sitter-llvm g.tree-sitter-make g.tree-sitter-nginx g.tree-sitter-nix g.tree-sitter-org g.tree-sitter-php g.tree-sitter-prisma g.tree-sitter-python g.tree-sitter-rust g.tree-sitter-rust-format-args g.tree-sitter-scss g.tree-sitter-sql g.tree-sitter-toml g.tree-sitter-tsx g.tree-sitter-typescript g.tree-sitter-xml g.tree-sitter-yaml ])) verb vertico visual-fill-column yaml-pro ]; extraConfig = '' (defvar my-base-font-size ${if pkgs.stdenv.isDarwin then "130" else "100"}) (require 'catppuccin-theme) (setopt catppuccin-flavor 'frappe) (load-theme 'catppuccin :no-confirm) ;; (set-face-attribute 'default nil :font "JetBrainsMono Nerd Font" :height 130) ;; (set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font" :height 130) (set-face-attribute 'default nil :font "Iosevka Term SS14" :height my-base-font-size) (set-face-attribute 'fixed-pitch nil :font "Iosevka Term SS14" :height my-base-font-size) (set-face-attribute 'variable-pitch nil :font "Iosevka Etoile" :height my-base-font-size) '' + builtins.readFile ./emacs.el; }; }; }