Files
nix-macos/common/home.nix
2025-10-28 11:24:20 +01:00

125 lines
2.0 KiB
Nix

{
pkgs,
...
}:
{
home.stateVersion = "25.11";
home.packages = with pkgs; [
# Base
tmux
git
git-lfs
git-crypt
gnutar
gnupg
htop
btop
rclone
rename
tree
wget
rsync
yq
delta
kubectl
croc
asciinema_3
grex
# Rust utils
bat
eza
fd
ripgrep
ripgrep-all
zoxide
uutils-coreutils-noprefix
dust
yazi
starship
# TUI
lazydocker
lazygit
k9s
# Editor
neovim
fzf
# Fonts
nerd-fonts.jetbrains-mono
];
fonts.fontconfig.enable = true;
home = {
sessionVariables = {
EDITOR = "nvim";
};
shellAliases = {
# Rust re-maps
l = "eza -a1lh";
ls = "eza";
cat = "bat";
cd = "z";
# QOL
dc = "docker compose";
rsync = "rsync -az --info=progress2";
t = "tmux new-session -A -s main";
e = "nvim";
g = "lazygit";
d = "lazydocker";
k = "kubectl";
};
};
programs = {
home-manager.enable = true;
direnv.enable = true;
zoxide.enable = true;
fish = {
enable = true;
interactiveShellInit = ''
if type -q starship
starship init fish | source
end
if type -q fnm
fnm env --use-on-cd | source
end
if type -q nvs
nvs env --source | source
end
'';
};
bash = {
enable = true;
};
tmux = {
enable = true;
clock24 = true;
mouse = true;
extraConfig = ''
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# switch panes using jkhl
bind h select-pane -L
bind l select-pane -R
bind j select-pane -U
bind k select-pane -D
'';
shell = "${pkgs.fish}/bin/fish";
terminal = "tmux-256color";
};
};
}