98 lines
2.2 KiB
Nix
98 lines
2.2 KiB
Nix
{ pkgs, ... }:
|
||
{
|
||
# Universal CLI tools for all hosts
|
||
home.packages = with pkgs; [
|
||
# File navigation & viewing
|
||
eza
|
||
bat
|
||
ripgrep
|
||
fd
|
||
fzf
|
||
tree
|
||
wget # download files and recursive sites
|
||
|
||
# System info
|
||
htop
|
||
tldr
|
||
fastfetch
|
||
|
||
# Editor
|
||
micro
|
||
|
||
# Node.js ecosystem
|
||
nodejs # runtime for pi-coding-agent and other JS tools
|
||
pnpm # fast node package manager
|
||
|
||
# Secrets
|
||
(pass.withExtensions (ext: [ ext.pass-otp ]))
|
||
gpgme
|
||
gnupg
|
||
|
||
# Extras
|
||
ollama # CLI для LLM
|
||
delta # красивый git diff (synonym: git-delta)
|
||
alejandra # nix-форматтер
|
||
broot # tree с превью
|
||
trash-cli # rm с корзиной
|
||
texliveFull # LaTeX (~4GB, для математики)
|
||
gita # manage multiple git repos
|
||
];
|
||
|
||
# TODO: global npm/pnpm packages not managed by nix for now
|
||
# install manually: pnpm i -g @mariozechner/pi-coding-agent
|
||
|
||
# GPG agent is configured in home/pass.nix (only for pass)
|
||
|
||
# FZF fuzzy finder
|
||
programs.fzf = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
defaultCommand = "fd --type f --hidden --exclude .git";
|
||
defaultOptions = [
|
||
"--height 40%"
|
||
"--layout=reverse"
|
||
"--border"
|
||
];
|
||
};
|
||
|
||
# Zoxide - smarter cd
|
||
programs.zoxide = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
options = [ "--cmd cd" ];
|
||
};
|
||
|
||
# Atuin - encrypted shell history with sync
|
||
programs.atuin = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
settings = {
|
||
auto_sync = true;
|
||
sync_frequency = "5m";
|
||
search_mode = "fuzzy";
|
||
style = "compact";
|
||
show_preview = true;
|
||
exit_mode = "return-query";
|
||
};
|
||
};
|
||
|
||
# Bat - cat with syntax highlighting
|
||
programs.bat = {
|
||
enable = true;
|
||
config = {
|
||
theme = "Catppuccin Macchiato";
|
||
italic-text = "always";
|
||
style = "numbers,changes,header";
|
||
};
|
||
};
|
||
|
||
# Eza - modern ls replacement
|
||
programs.eza = {
|
||
enable = true;
|
||
icons = "auto";
|
||
git = true;
|
||
};
|
||
|
||
# Fastfetch - system info (using package only, no home-manager module)
|
||
# Config is in ~/.config/fastfetch/config.jsonc manually for now
|
||
}
|