aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/remote-dev/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'remote-dev/home.nix')
-rw-r--r--remote-dev/home.nix35
1 files changed, 32 insertions, 3 deletions
diff --git a/remote-dev/home.nix b/remote-dev/home.nix
index a2b9392..184de6b 100644
--- a/remote-dev/home.nix
+++ b/remote-dev/home.nix
@@ -15,9 +15,19 @@ in
home.stateVersion = "25.05";
# ── Packages ────────────────────────────────────────────────────────────────
- # Mirrors the dev-tool subset of `meta/base.txt` on the Arch host. Tools that
- # only make sense on a workstation (procs/gdu/duf for sysadmin, lazygit
- # unused, node/yarn only needed for markdown-preview on GUI) are excluded.
+ # Policy: this profile carries leaf CLI tools plus editor/AI-agent
+ # runtimes (node, uv). It must NEVER carry anything the project build
+ # might invoke. Forbidden on PATH (would shadow Ubuntu's and break
+ # builds against the system sysroot/libc): cc, c++, gcc, g++, clang,
+ # clang++, ld, ld.lld, ar, nm, objcopy, make, cmake, ninja, meson,
+ # pkg-config, autoconf, automake, libtool, python, python3, pip,
+ # cargo, rustc, go. If a project needs a newer toolchain, put it in
+ # a project-local flake.nix + direnv `.envrc`, NOT here.
+ #
+ # Allowed runtimes (used only by Mason/editor/AI agents): node, npm,
+ # npx (via `nodejs`), uv, uvx (via `uv` — does NOT install a python3,
+ # manages its own interpreters under XDG). clang-tools is allowed
+ # because it ships only formatters/linters/clangd, no compiler driver.
home.packages = with pkgs; [
# Editor + multiplexer
neovim
@@ -30,6 +40,7 @@ in
fzf
sd
choose
+ zoxide
# Viewers
bat
@@ -66,6 +77,17 @@ in
gnupg
pass
+ # C/C++ source tooling (no compiler driver in PATH)
+ clang-tools
+
+ # Editor/AI agent runtimes — NOT for project builds (see policy above)
+ nodejs # Mason npm LSPs; system python3 stays at /usr/bin/python3
+ uv # Mason python LSPs in isolated venvs; brings `uv`/`uvx` only
+
+ # AI coding agents
+ claude-code
+ github-copilot-cli # NB: pkgs.copilot-cli is AWS Copilot, NOT this
+
# Zsh and plugins (sourced from $HOME/.nix-profile/share/... by the shared zshrc)
zsh
zsh-syntax-highlighting
@@ -90,8 +112,15 @@ in
"zsh/.zprofile".source = link "dot_config/zsh/dot_zprofile";
"ghostty".source = link "dot_config/ghostty"; # for terminfo refs only
"direnv/direnvrc".source = link "dot_config/direnv/direnvrc";
+ "git/config".source = link "dot_config/git/config";
+ "git/attributes".source = link "dot_config/git/attributes";
+ "git/ignore".source = link "dot_config/git/ignore";
};
+ # ~/.ssh/config from the dotfiles tree (read-only); keys + known_hosts
+ # stay machine-local on the VM.
+ home.file.".ssh/config".source = link "private_dot_ssh/config";
+
# ZDOTDIR redirect so login shells find ~/.config/zsh/.zprofile etc.
home.file.".zshenv".text = ''
export ZDOTDIR="$HOME/.config/zsh"