initial config
This commit is contained in:
90
modules/user/packages.nix
Normal file
90
modules/user/packages.nix
Normal file
@@ -0,0 +1,90 @@
|
||||
# ==========================================
|
||||
# PACKAGES — User Applications
|
||||
# ==========================================
|
||||
# Spec: Codex, Claude Code, Gemini CLI, Helium, Cursor,
|
||||
# Antigravity, Lazydocker, Git, Gh, Alacritty,
|
||||
# Zoxide, Fzf, Bat, Eza, Fd, Impala, Bun, Nodejs,
|
||||
# Docker, Bitwarden, Beeper, Python, Spotify, Tailscale
|
||||
# ==========================================
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# ── AI Coding Tools ──────────────────────────────────
|
||||
unstable.claude-code # Claude Code CLI
|
||||
unstable.antigravity # Antigravity IDE
|
||||
# codex: install via `npm i -g @openai/codex` (not in nixpkgs)
|
||||
# gemini-cli: install via `npm i -g @google/gemini-cli` (not in nixpkgs)
|
||||
|
||||
# ── Terminals & Editors ──────────────────────────────
|
||||
alacritty # GPU-accelerated terminal
|
||||
code-cursor # Cursor IDE
|
||||
|
||||
# ── Browsers ─────────────────────────────────────────
|
||||
# Helium: add inputs.helium-browser flake package here
|
||||
# if the flake builds for your system, uncomment:
|
||||
# inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
|
||||
# ── CLI Essentials (omarchy-style) ───────────────────
|
||||
bat # cat with syntax highlighting
|
||||
eza # modern ls
|
||||
fd # modern find
|
||||
fzf # fuzzy finder
|
||||
zoxide # smart cd
|
||||
ripgrep # fast grep
|
||||
lazydocker # Docker TUI
|
||||
impala # TUI WiFi manager
|
||||
yazi # TUI file manager
|
||||
btop # system monitor
|
||||
fastfetch # system info
|
||||
tealdeer # tldr man pages
|
||||
|
||||
# ── Version Control ──────────────────────────────────
|
||||
git
|
||||
gh # GitHub CLI
|
||||
lazygit # Git TUI
|
||||
|
||||
# ── Development Runtimes ─────────────────────────────
|
||||
nodejs
|
||||
bun
|
||||
python3
|
||||
uv # fast Python package manager
|
||||
|
||||
# ── Containers ───────────────────────────────────────
|
||||
docker-compose
|
||||
|
||||
# ── Desktop Apps ─────────────────────────────────────
|
||||
bitwarden # password manager
|
||||
beeper # unified messaging
|
||||
spotify # music
|
||||
|
||||
# ── System Utilities ─────────────────────────────────
|
||||
wget
|
||||
curl
|
||||
unzip
|
||||
wl-clipboard
|
||||
cliphist
|
||||
wl-clip-persist
|
||||
|
||||
# ── Theming Dependencies ─────────────────────────────
|
||||
gnome-themes-extra
|
||||
adwaita-qt
|
||||
adwaita-qt6
|
||||
dconf
|
||||
];
|
||||
|
||||
# ── Post-activation: Install npm-only tools ────────────
|
||||
# Codex and Gemini CLI aren't in nixpkgs; install them
|
||||
# globally via npm after first `nixos-rebuild switch`.
|
||||
home.activation.installNpmTools = config.lib.dag.entryAfter [ "writeBoundary" ] ''
|
||||
export PATH="${pkgs.nodejs}/bin:$PATH"
|
||||
if ! command -v codex &> /dev/null; then
|
||||
echo "Installing @openai/codex via npm..."
|
||||
${pkgs.nodejs}/bin/npm i -g @openai/codex 2>/dev/null || true
|
||||
fi
|
||||
if ! command -v gemini &> /dev/null; then
|
||||
echo "Installing @google/gemini-cli via npm..."
|
||||
${pkgs.nodejs}/bin/npm i -g @google/gemini-cli 2>/dev/null || true
|
||||
fi
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user