{ pkgs, ... }: { imports = [ ./sketchybar.nix ]; home.username = "dergrumpf"; home.homeDirectory = "/Users/dergrumpf"; home.stateVersion = "23.11"; home.file = { "Pictures/Avatar" = { source = ../avatar; recursive = true; }; }; home.file = { "Pictures/Wallpapers" = { source = ../wallpapers; recursive = true; }; }; home.file.".config/fastfetch/config.jsonc".source = ./config.jsonc; programs.home-manager.enable = true; home.packages = with pkgs; [ # Utilities coreutils direnv fd git ripgrep fzf zoxide starship trash-cli # Miscellaneous fastfetch btop wget curl nixfmt-rfc-style stylua black nodePackages.prettier rustfmt nodejs prettierd stylelint-lsp # Mason Binarys lua-language-server nil rust-analyzer python3Packages.python-lsp-server curl cargo yazi ]; home.sessionVariables = { EDITOR = "nvim"; VISUAL = "code"; PAGER = "less"; CLICOLOR = "1"; LSCOLORS = "ExFxBxDxCxegedabagacad"; TERM = "xterm-kitty"; }; programs.neovim = { enable = true; viAlias = true; vimAlias = true; defaultEditor = true; #extraPackages = with pkgs; [ ]; plugins = with pkgs.vimPlugins; [ nvim-treesitter nvim-lint catppuccin-nvim mason-nvim mason-lspconfig-nvim nvim-lspconfig nvim-cmp cmp-nvim-lsp cmp-buffer cmp-path cmp-cmdline luasnip lualine-nvim yazi-nvim alpha-nvim cheatsheet-nvim toggleterm-nvim # Add conform.nvim as a custom plugin (pkgs.vimUtils.buildVimPlugin { name = "conform-nvim"; src = pkgs.fetchFromGitHub { owner = "stevearc"; repo = "conform.nvim"; rev = "stable"; sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs="; }; }) ]; extraLuaConfig = builtins.readFile (./. + "/config.lua"); }; programs.fish = { enable = true; interactiveShellInit = '' function fish_greeting fastfetch end ''; plugins = [ { name = "forgit"; src = pkgs.fishPlugins.forgit.src; } ]; shellAliases = { ll = "ls -l"; la = "ls -la"; gs = "git status"; gp = "git push"; }; }; programs.kitty = { enable = true; themeFile = "Catppuccin-Mocha"; font.name = "FiraCode Nerd Font Mono"; settings = { confirm_os_window_close = 0; dynamic_background_opacity = true; enable_audio_bell = false; mouse_hide_wait = "-1.0"; window_padding_width = 10; background_opacity = "0.9"; # Ensure proper symbol rendering with Nerd Fonts symbol_map = "U+23FB-U+23FE U+2B58 U+E200-U+E2A9 U+E0A0-U+E0A3 U+E0B0-U+E0BF U+E0C0-U+E0C8 U+E0CC-U+E0CF U+E0D0-U+E0D2 U+E0D4 U+E700-U+E7C5 U+F000-U+F2E0 U+2665 U+26A1 U+F400-U+F4A8 U+F67C U+E000-U+E00A U+F300-U+F313 U+E5FA-U+E62B Symbols Nerd Font"; }; extraConfig = '' shell /run/current-system/sw/bin/fish ''; }; programs.direnv = { enable = true; nix-direnv.enable = true; }; programs.git = { enable = true; userName = "DerGrumpf"; userEmail = "p.keier@beyerstedt-it.de"; aliases = { co = "checkout"; ci = "commit"; st = "status"; br = "branch"; }; extraConfig = { init.defaultBranch = "main"; pull.rebase = true; }; }; programs.ssh = { enable = true; enableDefaultConfig = false; matchBlocks = { "example.com" = { user = "dergrumpf"; identityFile = "~/.ssh/id_ed25519"; }; }; }; programs.starship = { enable = true; enableFishIntegration = true; settings = { add_newline = true; format = "$directory$git_branch$git_status$cmd_duration$line_break$character"; }; }; services = { gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; }; }