diff --git a/README.org b/README.org index 7d4c99aa..537ee445 100644 --- a/README.org +++ b/README.org @@ -102,7 +102,7 @@ nix-darwin, nix-homebrew, Home Manager, agenix, and the shared package list in Common workflow: #+begin_src sh -cd ~/dotfiles/nix-darwin +cd /srv/dotfiles/nix-darwin just switch #+end_src diff --git a/dotfiles/agents/skills/disk-space-cleanup/SKILL.md b/dotfiles/agents/skills/disk-space-cleanup/SKILL.md index 0c710bfa..c165a04e 100644 --- a/dotfiles/agents/skills/disk-space-cleanup/SKILL.md +++ b/dotfiles/agents/skills/disk-space-cleanup/SKILL.md @@ -77,13 +77,13 @@ Do not start with a blind `find ~ -name target` or with hard-coded roots that ma Inventory the biggest candidates: ```bash -python /home/imalison/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py list --min-size 500M --limit 30 +python /srv/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py list --min-size 500M --limit 30 ``` Focus on stale targets only: ```bash -python /home/imalison/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py list --min-size 1G --older-than 14 --output tsv +python /srv/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py list --min-size 1G --older-than 14 --output tsv ``` Use `cargo-sweep` when the repo is still active and you want age/toolchain-aware cleanup inside a workspace: @@ -98,13 +98,13 @@ nix run nixpkgs#cargo-sweep -- sweep -r -i Use direct `target/` deletion when inventory shows a discrete stale directory, especially for inactive repos or project-local worktrees. The helper only deletes explicit paths named `target` that are beneath configured roots and a Cargo project: ```bash -python /home/imalison/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py delete /abs/path/to/target -python /home/imalison/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py delete /abs/path/to/target --yes +python /srv/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py delete /abs/path/to/target +python /srv/dotfiles/dotfiles/agents/skills/disk-space-cleanup/scripts/rust_target_dirs.py delete /abs/path/to/target --yes ``` Recommended sequence: -1. Run `rust_target_dirs.py list` to see the largest `target/` directories across `~/Projects`, `~/org`, `~/dotfiles`, and other configured roots. +1. Run `rust_target_dirs.py list` to see the largest `target/` directories across `~/Projects`, `~/org`, `/srv/dotfiles`, and other configured roots. 2. For active repos, prefer `cargo-sweep` from the workspace root. 3. For inactive repos, abandoned branches, and `.worktrees/*/target`, prefer guarded direct deletion of the explicit `target/` directory. 4. Re-run the list command after each deletion round to show reclaimed space. @@ -116,7 +116,7 @@ Machine-specific note: - `cargo-sweep sweep -i/--installed` can fail when `rustup toolchain list` contains stale toolchains whose `rustc` no longer exists. On this machine, `1.68.2-x86_64-unknown-linux-gnu` caused `failed to determine fingerprint ... 'rustc': No such file or directory`. - `/home/imalison/Projects/codex/codex-rs/target` can be dominated by current-looking `target/debug/incremental` data that `cargo-sweep sweep -a` and `--maxsize` report as not removable. If it is stale and space pressure is high, use the guarded `rust_target_dirs.py delete ... --yes` workflow for that explicit target directory. - `/home/imalison/Projects/hypr-workspace-history/target` is a small non-Cargo false positive; the guarded delete workflow correctly rejects it because there is no Cargo project above the directory. -- `nixos/imalison.nix` defines a daily user timer, `cargo-sweep-rust-targets.timer`, that runs `cargo-sweep sweep -r --hidden --maxsize 15GB` across `/home/imalison/Projects`, `/home/imalison/org`, and `/home/imalison/dotfiles`. +- `nixos/imalison.nix` defines a daily user timer, `cargo-sweep-rust-targets.timer`, that runs `cargo-sweep sweep -r --hidden --maxsize 15GB` across `/home/imalison/Projects`, `/home/imalison/org`, and `/srv/dotfiles`. ## Step 4: Investigation with `ncdu` and `du` @@ -202,7 +202,7 @@ nix-store --gc --print-roots | rg '(ghc|rust)' Resolve why a path is retained: ```bash -/home/imalison/dotfiles/dotfiles/lib/functions/find_store_path_gc_roots /nix/store/ +/srv/dotfiles/dotfiles/lib/functions/find_store_path_gc_roots /nix/store/ nix why-depends ``` @@ -211,7 +211,7 @@ Common retention pattern on this machine: - Many `.direnv/flake-profile-*` symlinks under `~/Projects` and worktrees keep `nix-shell-env`/`ghc-shell-*` roots alive. - Old taffybar constellation repos under `~/Projects` can pin large Haskell closures through `.direnv` and `result` symlinks. Deleting `gtk-sni-tray`, `status-notifier-item`, `dbus-menu`, `dbus-hslogger`, and `gtk-strut` and then rerunning `nix-collect-garbage -d` reclaimed about 11G of store data in one validated run. - `find_store_path_gc_roots` is especially useful for proving GHC retention: many large `ghc-9.10.3-with-packages` paths are unique per project, while the base `ghc-9.10.3` and docs paths are shared. -- NixOS system generations and a repo-root `nixos/result` symlink can pin multiple Android Studio and Android SDK versions. Check `/nix/var/nix/profiles/system-*-link`, `/run/current-system`, `/run/booted-system`, and `~/dotfiles/nixos/result` before assuming Android paths are pinned by project shells. +- NixOS system generations and a repo-root `nixos/result` symlink can pin multiple Android Studio and Android SDK versions. Check `/nix/var/nix/profiles/system-*-link`, `/run/current-system`, `/run/booted-system`, and `/srv/dotfiles/nixos/result` before assuming Android paths are pinned by project shells. - `~/Projects/railbird-mobile/.direnv/flake-profile-*` can pin large Android SDK system images. Removing stale direnv profiles there is a more targeted first step than deleting Android store paths directly. - 2026-05-27 Railbird GHC audit: the Railbird backend flake did not explicitly reference Haskell, but its dev shell had derivation-time GHC edges through `inputs.secrets.devShells.${system}.default -> agenix -> shellcheck -> ShellCheck -> ghc` and through `shell-packages.nix`'s `rdma-core -> pandoc-cli -> ghc`. Railbird Mobile had similar non-app-code GHC edges through `inputs.secrets`/`agenix` and `nixGLIntel -> shellcheck`. The `railbird/gql` and `railbird-mobile/src/gql` shells did not show GHC edges in their derivation graphs, only Rust/Cargo build tooling from packages such as `just`. - For a repeatable `/nix/store` `ncdu` snapshot without driving the TUI, export and inspect it: diff --git a/dotfiles/agents/skills/disk-space-cleanup/references/rust-target-roots.txt b/dotfiles/agents/skills/disk-space-cleanup/references/rust-target-roots.txt index ab809381..dc167f3b 100644 --- a/dotfiles/agents/skills/disk-space-cleanup/references/rust-target-roots.txt +++ b/dotfiles/agents/skills/disk-space-cleanup/references/rust-target-roots.txt @@ -3,4 +3,4 @@ /home/imalison/Projects /home/imalison/org -/home/imalison/dotfiles +/srv/dotfiles diff --git a/dotfiles/agents/skills/org-agenda-api-production/SKILL.md b/dotfiles/agents/skills/org-agenda-api-production/SKILL.md index 327b408b..c396de86 100644 --- a/dotfiles/agents/skills/org-agenda-api-production/SKILL.md +++ b/dotfiles/agents/skills/org-agenda-api-production/SKILL.md @@ -20,10 +20,10 @@ Username is currently `imalison`. ## Quick Access with just -This repo includes a `justfile` under `~/dotfiles/org-agenda-api` with pre-configured commands: +This repo includes a `justfile` under `/srv/dotfiles/org-agenda-api` with pre-configured commands: ```bash -cd ~/dotfiles/org-agenda-api +cd /srv/dotfiles/org-agenda-api just health just get-all-todos just get-todays-agenda diff --git a/dotfiles/agents/skills/taffybar-nixos-flake-chain/SKILL.md b/dotfiles/agents/skills/taffybar-nixos-flake-chain/SKILL.md index 95f31ce7..b7220c83 100644 --- a/dotfiles/agents/skills/taffybar-nixos-flake-chain/SKILL.md +++ b/dotfiles/agents/skills/taffybar-nixos-flake-chain/SKILL.md @@ -46,7 +46,7 @@ cd ~/.config/taffybar/taffybar && nix flake update cd ~/.config/taffybar && nix flake update taffybar # Top: -cd ~/dotfiles/nixos && nix flake update imalison-taffybar +cd /srv/dotfiles/nixos && nix flake update imalison-taffybar ``` Not every change requires touching all three layers. Think about which flake.lock files actually contain stale references: @@ -58,7 +58,7 @@ Not every change requires touching all three layers. Think about which flake.loc ## Rebuilding ```bash -cd ~/dotfiles/nixos && just switch +cd /srv/dotfiles/nixos && just switch ``` If taffybar seems stale after a rebuild, check whether the flake.lock at each layer actually points at the expected revision — a missed cascade step is the usual cause. diff --git a/nixos/home-manager.nix b/nixos/home-manager.nix index 0302f9ab..59fbbbba 100644 --- a/nixos/home-manager.nix +++ b/nixos/home-manager.nix @@ -306,7 +306,7 @@ in { enable = true; enableDefaultConfig = false; extraConfig = '' - Include /home/imalison/config/dotfiles/ssh/config + Include /srv/dotfiles/ssh/config ''; settings = { "*" = {