- 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).
99 lines
2.3 KiB
Nix
99 lines
2.3 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 # 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
|
||
}
|