{ email }: { pkgs, ... }: { home.file.".emacs.d/early-init.el".source = ../config/emacs/early-init.el; home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ../config/emacs/tree-sitter/libtree-sitter-swift.dylib; home.file.".emacs.d/snippets".source = ../config/emacs/snippets; home.file.".clojure/deps.edn".source = ../config/clojure/deps.edn; home.language = { base = "en_US.utf8"; numeric = "de_DE.utf8"; time = "de_DE.utf8"; measurement = "de_DE.utf8"; }; home.packages = with pkgs; [ bottom babashka cascadia-code clj-kondo cloc cmake coreutils curl fira-code gnupg htop imagemagick iosevka-comfy.comfy iosevka-comfy.comfy-motion-duo jq kubectl nixpkgs-fmt nodejs nodePackages.typescript-language-server nodePackages.vscode-json-languageserver noto-fonts nixd pass python312Packages.flake8 python312Packages.isort python312Packages.rope python312Packages.pyflakes python312Packages.python-lsp-server python312Packages.pyls-isort python312Packages.python-lsp-black python312Packages.pylsp-rope ripgrep tree wget ]; home.stateVersion = "24.11"; home.sessionVariables = { PAGER = "less"; CLICOLOR = 1; EDITOR = "emacs"; LOGSEQ_DIR = "~/Logseq/Me/"; }; programs = { direnv = { enable = true; enableZshIntegration = true; nix-direnv.enable = true; }; emacs = { enable = true; extraConfig = builtins.readFile ../config/emacs/init.el + builtins.readFile ../config/emacs/lisp/utils.el; extraPackages = epkgs: (with epkgs; [ ace-window apheleia avy cape cider clj-refactor clojure-mode (trivialBuild { pname = "Combobulate"; version = "master-09-26-2024"; src = pkgs.fetchFromGitHub { owner = "mickeynp"; repo = "combobulate"; rev = "416b9e2225100c44c36e05e4adcfc2ee4048cefa"; hash = "sha256-UPoWwJPe2Ctm4XV+dt82rS0HatjQ1WSpewF/z64DNe4="; }; }) consult (trivialBuild { pname = "copilot"; version = "master-12-28-2024"; src = pkgs.fetchFromGitHub { owner = "copilot-emacs"; repo = "copilot.el"; rev = "c5dfa99f05878db5e6a6a378dc7ed09f11e803d4"; hash = "sha256-FzI08AW7a7AleEM7kSQ8LsWsDYID8SW1SmSN6/mIB/A="; }; packageRequires = [ editorconfig dash f jsonrpc ]; }) corfu diff-hl dockerfile-mode ef-themes envrc exec-path-from-shell flycheck flycheck-clj-kondo flycheck-swiftlint (trivialBuild { pname = "gptel"; version = "master-09-29-2024"; src = pkgs.fetchFromGitHub { owner = "karthink"; repo = "gptel"; rev = "2b9398a7b3bb2a66f52a8d0b1fdc3f311b2c1a3d"; hash = "sha256-+CxSA9QmyKigbk8kB5N6kKZ/a5Tw0X4ym57AOoqYA4Y="; }; }) git-link graphql-mode helpful htmlize js2-mode json-mode ligature lsp-mode minions multiple-cursors nerd-icons nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer ob-restclient ob-swift olivetti orderless org org-modern ox-gfm ox-reveal pulsar rainbow-delimiters rainbow-mode restclient smartparens so-long swift-mode (trivialBuild { pname = "swift-ts-mode"; version = "main-07-05-2024"; src = pkgs.fetchFromGitHub { owner = "rechsteiner"; repo = "swift-ts-mode"; rev = "5e198d306bd4d49e4dddab39195fe99e1caf8892"; hash = "sha256-c7AAFuaDbufMpzJtJ2PbRRXFJmo1y4L50T0idzxrvao="; }; }) super-save terraform-mode treesit-auto yaml-mode vterm fontaine magit magit-todos marginalia modus-themes nix-mode vertico yasnippet ]); package = pkgs.emacs29; }; fzf = { enable = true; enableZshIntegration = true; }; git = { enable = true; userName = "Tobias Ostner"; userEmail = email; extraConfig = { core.editor = "emacsclient -c -a ''"; init.defaultBranch = "main"; pull.rebase = true; rebase.updateRefs = true; }; }; kitty = { enable = true; extraConfig = '' ${builtins.readFile ../config/kitty/kitty.conf} ${builtins.readFile ../config/kitty/dracula.conf} ''; }; starship = { enable = true; enableZshIntegration = true; settings = { gcloud.disabled = true; aws.disabled = true; hostname.style = "bold green"; }; }; zoxide = { enable = true; enableZshIntegration = true; }; zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; initExtra = builtins.readFile ../config/zsh/zshrc; syntaxHighlighting.enable = true; shellAliases = { ls = "ls --color=auto -F"; emacs = "emacsclient -c -a ''"; }; }; }; xdg.configFile."aerospace/aerospace.toml".text = builtins.readFile ../config/aerospace/aerospace.toml; xdg.configFile."ghostty/config".text = builtins.readFile ../config/ghostty/config; }