nix-config/home/cli.nix
mikl 411a8ba689 heather/common: passwordless sudo for mikl + fix deprecated options
- common/default.nix: add mikl to wheel + security.sudo.wheelNeedsPassword=false.
  Without this, root is unreachable on a fresh NixOS-yc image (no root password,
  no rescue channel) — nixos-rebuild switch is impossible. Mirrors the
  NOPASSWD:ALL that old YC boxes got via cloud-config user-data.
- home/server.nix: programs.git.extraConfig -> .settings, programs.git.delta
  -> programs.delta with enableGitIntegration=true (deprecated warnings).
- image.nix: boot.loader.grub.timeout -> boot.loader.timeout (renamed option).
2026-07-11 22:55:00 +03:00

99 lines
2.3 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ 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 # read-only в nix store не подходит для pi (npm install ломается)
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
ffmpeg_7 # видео-конвертация (remux/перекодирование)
];
# 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
}