Files
nix-config/darwin/home.nix
2025-09-27 14:30:50 +02:00

197 lines
3.8 KiB
Nix

{
config,
pkgs,
lib,
darwinConfig,
...
}:
{
imports = [ ];
home.username = "dergrumpf";
home.homeDirectory = "/Users/dergrumpf";
home.stateVersion = "23.11";
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;
};
};
}