From e26ae266b940821d0485bb47078aa210beeb0d67 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sun, 9 Aug 2026 14:51:46 -0400 Subject: [PATCH] config(fish): add full fish config from live home; portable clipboard + env guards Keep starship prompt (omp migration rejected). cpy/pst aliases branch on wl-copy vs pbcopy; functions use the aliases. BROWSER/CHROME_EXECUTABLE guarded on binary existence. auto-Niri.fish and cp-appid.fish are linux-only (gated in .chezmoiignore). Co-Authored-By: Claude Fable 5 --- .beads/interactions.jsonl | 3 + .beads/issues.jsonl | 6 +- .chezmoidata/packages.yaml | 6 +- MIGRATION-NOTES.md | 5 +- dot_config/fish/conf.d/10-env.fish | 4 +- dot_config/fish/conf.d/20-aliases.fish | 21 +++-- dot_config/fish/fish_variables | 114 ----------------------- dot_config/fish/functions/clip-last.fish | 2 +- dot_config/fish/functions/mdcp.fish | 4 +- dot_config/starship.toml | 102 ++++++++++++++++++++ 10 files changed, 131 insertions(+), 136 deletions(-) delete mode 100644 dot_config/fish/fish_variables create mode 100644 dot_config/starship.toml diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl index e536bfa..ccaca4f 100644 --- a/.beads/interactions.jsonl +++ b/.beads/interactions.jsonl @@ -3,3 +3,6 @@ {"id":"int-6bf2e4e2","kind":"field_change","created_at":"2026-08-09T18:45:27.838098287Z","actor":"Prad Nukala","issue_id":"chezmoi-byc","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} {"id":"int-f4aa6fe4","kind":"field_change","created_at":"2026-08-09T18:45:27.978881011Z","actor":"Prad Nukala","issue_id":"chezmoi-1a0","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} {"id":"int-2daf66f4","kind":"field_change","created_at":"2026-08-09T18:47:05.649584079Z","actor":"Prad Nukala","issue_id":"chezmoi-byc","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Closed"}} +{"id":"int-b7da815a","kind":"field_change","created_at":"2026-08-09T18:48:13.663074277Z","actor":"Prad Nukala","issue_id":"chezmoi-1a0","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"secrets.fish age-encrypted; plaintext purged from git history and remote force-pushed; noctalia/plugins excluded (live ghp_ token); gh hosts.yml excluded; npmrc deferred; rotation recommended"}} +{"id":"int-bbcf4500","kind":"field_change","created_at":"2026-08-09T18:49:28.483381629Z","actor":"Prad Nukala","issue_id":"chezmoi-uw2","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} +{"id":"int-aca22d17","kind":"field_change","created_at":"2026-08-09T18:51:25.617630581Z","actor":"Prad Nukala","issue_id":"chezmoi-fde","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"starship.toml added from live; packages updated"}} diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index cff01f8..2a184c2 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1,4 +1,4 @@ -{"_type":"issue","id":"chezmoi-1a0","title":"Secrets audit: grep all candidate content for tokens before any chezmoi add","description":"Grep sk-, ghp_, glpat-, Bearer, token, key = across all files destined for repo. secrets.fish goes to age-encrypted encrypted_ path (key ~/.config/chezmoi/key.txt, manual distribution, document in README). Claude: never .credentials.json.","status":"in_progress","priority":1,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:41:50Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:45:28Z","started_at":"2026-08-09T18:45:28Z","dependency_count":0,"dependent_count":3,"comment_count":0} +{"_type":"issue","id":"chezmoi-1a0","title":"Secrets audit: grep all candidate content for tokens before any chezmoi add","description":"Grep sk-, ghp_, glpat-, Bearer, token, key = across all files destined for repo. secrets.fish goes to age-encrypted encrypted_ path (key ~/.config/chezmoi/key.txt, manual distribution, document in README). Claude: never .credentials.json.","status":"closed","priority":1,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:41:50Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:48:14Z","started_at":"2026-08-09T18:45:28Z","closed_at":"2026-08-09T18:48:14Z","close_reason":"secrets.fish age-encrypted; plaintext purged from git history and remote force-pushed; noctalia/plugins excluded (live ghp_ token); gh hosts.yml excluded; npmrc deferred; rotation recommended","dependency_count":0,"dependent_count":3,"comment_count":0} {"_type":"issue","id":"chezmoi-byc","title":"Gating skeleton: .chezmoi.toml.tmpl + .chezmoiignore.tmpl + packages.yaml skeleton","description":"promptOnce name/email/role (desktop|laptop|mac|server); chezmoiignore gates linux-only trees on darwin and vice versa; .chezmoidata/packages.yaml skeleton {arch:{pacman,aur},darwin:{brew,cask},shared:{gh_extensions,go,cargo}}. Machinery before content.","status":"closed","priority":1,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:41:50Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:47:06Z","started_at":"2026-08-09T18:45:28Z","closed_at":"2026-08-09T18:47:06Z","close_reason":"Closed","dependency_count":0,"dependent_count":13,"comment_count":0} {"_type":"issue","id":"chezmoi-rnv","title":"Inventory: disposition table for all dotstate synced paths","description":"Parse .dotstate-profiles.toml (Noctalia/Inir/Rogz/Vertical-Rogz_AppleStudio). Every synced path gets decision: universal / arch-gated / defer / drop / secret. Output table in MIGRATION-NOTES.md. Blocks all content.","status":"closed","priority":1,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:41:50Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:45:28Z","started_at":"2026-08-09T18:44:23Z","closed_at":"2026-08-09T18:45:28Z","close_reason":"Closed","dependency_count":0,"dependent_count":13,"comment_count":0} {"_type":"issue","id":"chezmoi-42m","title":"Validation: Arch fresh bring-up in container","description":"docker run archlinux: bootstrap one-liner, packages install, chezmoi doctor clean, niri validate, fish -n all files, nvim --headless +Lazy! sync, tmux -f cfg new -d; kill-server, gh extension list matches manifest. Plus live machine chezmoi diff ~ empty.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:17Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:17Z","dependencies":[{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-21v","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-4sj","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-9sg","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-a2k","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-exq","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-fde","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-hou","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-iu2","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-sd9","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-utl","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-uw2","type":"blocks","created_at":"2026-08-09T14:42:57Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-x7f","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-42m","depends_on_id":"chezmoi-xi5","type":"blocks","created_at":"2026-08-09T14:42:58Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":13,"dependent_count":1,"comment_count":0} @@ -10,10 +10,10 @@ {"_type":"issue","id":"chezmoi-4sj","title":"lazydocker: static config from live","description":"~/.config/lazydocker (not in dotstate).","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-a2k","title":"claude: settings, commands, agents, hooks, skills only","description":"~/.claude: settings.json, commands/, hooks/, skills/, CLAUDE.md. Never credentials/history/projects/sessions.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-exq","title":"git: dot_gitconfig.tmpl with templated email/signing key","description":"~/.gitconfig from live; email + signing key from chezmoi data.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-fde","title":"oh-my-posh: theme + fish init, port starship customizations","description":"~/.config/oh-my-posh. Port ~/.config/starship.toml customizations into omp theme; drop starship from apply set; record decision in MIGRATION-NOTES.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-fde","title":"starship: prompt config, universal","description":"Keep starship (user decision — omp dropped). dot_config/starship.toml from live; starship in packages.yaml both OSes. Noctalia palette block is auto-generated on linux — noctalia rewrites it in place; acceptable drift, noted.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:51:26Z","closed_at":"2026-08-09T18:51:26Z","close_reason":"starship.toml added from live; packages updated","dependencies":[{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-x7f","title":"lazygit: static config","description":"~/.config/lazygit. Already partially in repo — reconcile.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-hou","title":"yazi: config, opener rules OS-branched","description":"~/.config/yazi. open vs xdg-open template branch.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-sd9","title":"nvim: AstroNvim config, static","description":"chezmoi add ~/.config/nvim as-is, no templating. Exclude lazy-lock churn decision noted.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-sd9","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-sd9","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-utl","title":"kitty: live config, OS-branch fonts/paths if needed","description":"~/.config/kitty. Keybinds shared.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-uw2","title":"fish: config, conf.d, functions, completions, bindings","description":"Live ~/.config/fish (Rogz storage superset; Noctalia canonical, deltas to MIGRATION-NOTES). OS-branch clipboard/open/package paths. secrets.fish excluded (own issue). fish -n all files.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-uw2","title":"fish: config, conf.d, functions, completions, bindings","description":"Live ~/.config/fish (Rogz storage superset; Noctalia canonical, deltas to MIGRATION-NOTES). OS-branch clipboard/open/package paths. secrets.fish excluded (own issue). fish -n all files.","status":"in_progress","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:49:28Z","started_at":"2026-08-09T18:49:28Z","dependencies":[{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-xi5","title":"tmux: config from live, strip vertical geometry","description":"~/.config/tmux (tmux.conf symlink from Vertical-Rogz_AppleStudio). Verify live, gate vertical-display-specific bits if present. Plugins dir decision.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-xi5","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-xi5","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} diff --git a/.chezmoidata/packages.yaml b/.chezmoidata/packages.yaml index 73c4399..dac2066 100644 --- a/.chezmoidata/packages.yaml +++ b/.chezmoidata/packages.yaml @@ -41,8 +41,8 @@ packages: - glow - atuin - wget - aur: - - oh-my-posh-bin + - starship + aur: [] desktop: # linux desktop layer (role desktop|laptop) pacman: @@ -80,7 +80,7 @@ packages: - gum - glow - atuin - - oh-my-posh + - starship cask: - kitty shared: diff --git a/MIGRATION-NOTES.md b/MIGRATION-NOTES.md index 916088d..fd6289a 100644 --- a/MIGRATION-NOTES.md +++ b/MIGRATION-NOTES.md @@ -15,7 +15,7 @@ Live `~/.config` entries were symlinks into dotstate storage; content copied wit | `.config/yazi` | Noctalia | **universal** | Opener rules OS-branched (`xdg-open` vs `open`); `plugins/`, `flavors/` stay unmanaged (package-managed by `ya pack`) | | `.config/lazygit` | Noctalia | **universal** | Static | | `.gitconfig` | all | **universal** | Templated: email/name from chezmoi data. Live (simpler) wins; Noctalia extras (sonr.org credential helper, coderabbit machineId, safe.directory) are machine-state — dropped | -| `.config/starship.toml` | Noctalia, Inir, Rogz | **drop** | Replaced by oh-my-posh (see decision below) | +| `.config/starship.toml` | Noctalia, Inir, Rogz | **universal** | Kept (user decision; omp migration rejected). Noctalia auto-regenerates the palette block in place on linux — acceptable drift | | `.config/niri` | Noctalia, Inir, Rogz | **arch-gated** | `config.d/` split preserved via `exact_` dir | | `.config/noctalia` | Noctalia, Rogz, Vertical | **arch-gated** | Live symlink points at Vertical storage (active profile) — live wins | | `.config/niri-dynamic-workspaces` | Inir, Rogz | **arch-gated** | Single `config.toml`, part of niri stack | @@ -51,13 +51,12 @@ Live `~/.config` entries were symlinks into dotstate storage; content copied wit | `.config/lazydocker` | universal | | | `.config/gh/config.yml` | universal | `hosts.yml` **excluded** — contains OAuth token (secret) | | gh extensions | universal | Declarative list in `packages.yaml` (`shared.gh_extensions`): clean-branches, commit, dash, notify | -| `.config/oh-my-posh/` | universal | See starship→omp decision | | `.claude/` subset | universal | `settings.json`, `CLAUDE.md`, `commands/`, `hooks/`, `skills/` only. Never `.credentials.json`, `history.jsonl`, `projects/`, `sessions/`, caches | | `.ssh/config` | universal | `private_dot_ssh/config`, mode 0600 | ## Decisions -- **starship → oh-my-posh**: dotstate ships `starship.toml`; requirement is omp. Starship customizations (catppuccin-style palette, git status verbosity, language modules, transient prompt) ported into `~/.config/oh-my-posh/prad.omp.json`. Fish init switched from `starship init fish` to `oh-my-posh init fish`. `starship.toml` dropped from apply set. Transient prompt: omp equivalent enabled in theme. +- **starship stays**: the migration plan called for porting starship → oh-my-posh; user rejected this during pass 1. `starship.toml` ships as universal, fish keeps `starship init fish` + transient prompt. oh-my-posh is not installed and not managed. - **Terminal**: kitty only in pass 1. foot/alacritty configs exist in dotstate but nothing live references them. - **Rogz vs Noctalia**: live machine *is* Rogz-backed for fish/niri/gitconfig; Noctalia storage was stale for every diverging path inspected (fish conf.d subset, older kitty.conf, gitconfig with dead credential helpers). Pass 1 content = live. Noctalia-only artifacts worth revisiting: `kitty/koda-{dark,light}.conf` themes, `fish/conf.d/deno.fish` (folded in). - **Inir / Vertical-Rogz_AppleStudio / CachyOS**: deferred entirely (except tmux.conf, claimed above). Future `.role` values. diff --git a/dot_config/fish/conf.d/10-env.fish b/dot_config/fish/conf.d/10-env.fish index 9e7ea21..055f52a 100644 --- a/dot_config/fish/conf.d/10-env.fish +++ b/dot_config/fish/conf.d/10-env.fish @@ -19,8 +19,8 @@ set -gx CODE_ROOT $HOME/Developer set -gx GITEA_LOGIN code.sonr.org set -gx GITLAB_HOST git.sonr.org -set -gx BROWSER /usr/bin/brave-origin-nightly -set -gx CHROME_EXECUTABLE /usr/bin/chromium +test -x /usr/bin/brave-origin-nightly; and set -gx BROWSER /usr/bin/brave-origin-nightly +test -x /usr/bin/chromium; and set -gx CHROME_EXECUTABLE /usr/bin/chromium # Puppeteer / CDP tools — chrome-headless-shell via @puppeteer/browsers, # symlinked from ~/.config/chrome-headless-shell// into ~/.local/bin. # NOTE: omp's browser tool prefers detected system Chrome over this env var; diff --git a/dot_config/fish/conf.d/20-aliases.fish b/dot_config/fish/conf.d/20-aliases.fish index 7d64706..ddf96be 100644 --- a/dot_config/fish/conf.d/20-aliases.fish +++ b/dot_config/fish/conf.d/20-aliases.fish @@ -13,20 +13,25 @@ alias e.t 'nvim ~/.config/tmux/tmux.conf' alias hx 'helix' # Quick directory jumps -alias cdc 'cd /home/prad/.config && yazi' -alias cdd 'cd /home/prad/Developer && yazi' -alias cdk 'cd /home/prad/Documents/Knowledge && obsidian' -alias cdl 'cd /home/prad/.local && yazi' -alias cds 'cd /home/prad/.local/share/services && ls' -alias cdw 'cd /home/prad/Downloads && yazi' +alias cdc 'cd ~/.config && yazi' +alias cdd 'cd ~/Developer && yazi' +alias cdk 'cd ~/Documents/Knowledge && obsidian' +alias cdl 'cd ~/.local && yazi' +alias cds 'cd ~/.local/share/services && ls' +alias cdw 'cd ~/Downloads && yazi' # Tools alias dd lazydocker alias gg lazygit alias ff 'exec fish' alias npx bunx -alias cpy wl-copy -alias pst wl-paste +if command -v wl-copy >/dev/null 2>&1 + alias cpy wl-copy + alias pst wl-paste +else if command -v pbcopy >/dev/null 2>&1 + alias cpy pbcopy + alias pst pbpaste +end alias sm 'sudo micro' # q exits the shell; if this shell was spawned from yazi's own `q` bind # (`shell "$SHELL" --block`), also tell that yazi to quit so exiting diff --git a/dot_config/fish/fish_variables b/dot_config/fish/fish_variables deleted file mode 100644 index 6df8e97..0000000 --- a/dot_config/fish/fish_variables +++ /dev/null @@ -1,114 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR --export SHARP_IGNORE_GLOBAL_LIBVIPS:1 -SETUVAR VIRTUAL_ENV_DISABLE_PROMPT:true -SETUVAR __done_min_cmd_duration:10000 -SETUVAR __done_notification_urgency_level:low -SETUVAR __fish_initialized:4300 -SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:\x7e/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_list\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e\x7e/\x2econfig/fish/functions/nvm\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e\x7e/\x2econfig/fish/completions/nvm\x2efish -SETUVAR _fisher_plugins:jorgebucaran/nvm\x2efish -SETUVAR _fisher_upgraded_to_4_4:\x1d -SETUVAR fish_color_autosuggestion:7b8496 -SETUVAR fish_color_cancel:ff6e5e -SETUVAR fish_color_command:5ef1ff -SETUVAR fish_color_comment:7b8496 -SETUVAR fish_color_cwd:ffbd5e -SETUVAR fish_color_cwd_root:\x1d -SETUVAR fish_color_end:bd5eff -SETUVAR fish_color_error:ff6e5e -SETUVAR fish_color_escape:ffaecf -SETUVAR fish_color_gray:7b8496 -SETUVAR fish_color_history_current:\x1d -SETUVAR fish_color_host:5eff6c -SETUVAR fish_color_host_remote:f1ff5e -SETUVAR fish_color_keyword:5eff6c -SETUVAR fish_color_normal:ffffff -SETUVAR fish_color_operator:5ea1ff -SETUVAR fish_color_option:f1ff5e -SETUVAR fish_color_param:ffaecf -SETUVAR fish_color_quote:f1ff5e -SETUVAR fish_color_redirection:5ea1ff -SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d3c4048 -SETUVAR fish_color_selection:\x2d\x2dbackground\x3d3c4048 -SETUVAR fish_color_status:ff6e5e -SETUVAR fish_color_user:5ef5d2 -SETUVAR fish_color_valid_path:\x1d -SETUVAR fish_pager_color_completion:ffffff -SETUVAR fish_pager_color_description:7b8496 -SETUVAR fish_pager_color_prefix:5ea1ff -SETUVAR fish_pager_color_progress:7b8496 -SETUVAR fish_pager_color_selected_background:\x1d -SETUVAR fish_user_paths:/home/prad/\x2elocal/share/pnpm/bin\x1e/home/prad/\x2eopencode/bin\x1e/home/prad/\x2egrok/bin\x1e/home/prad/\x2emaestro/bin\x1e/home/prad/go/bin\x1e/home/prad/\x2ecargo/bin\x1e/home/prad/\x2ebun/bin\x1e/home/prad/\x2efoundry/bin\x1e/home/prad/\x2ehishtory -SETUVAR pure_begin_prompt_with_current_directory:true -SETUVAR pure_check_for_new_release:false -SETUVAR pure_color_at_sign:pure_color_mute -SETUVAR pure_color_aws_profile:pure_color_warning -SETUVAR pure_color_command_duration:pure_color_warning -SETUVAR pure_color_current_directory:pure_color_primary -SETUVAR pure_color_danger:red -SETUVAR pure_color_dark:black -SETUVAR pure_color_exit_status:pure_color_danger -SETUVAR pure_color_git_branch:pure_color_mute -SETUVAR pure_color_git_dirty:pure_color_mute -SETUVAR pure_color_git_stash:pure_color_info -SETUVAR pure_color_git_unpulled_commits:pure_color_info -SETUVAR pure_color_git_unpushed_commits:pure_color_info -SETUVAR pure_color_hostname:pure_color_mute -SETUVAR pure_color_info:cyan -SETUVAR pure_color_jobs:pure_color_normal -SETUVAR pure_color_k8s_context:pure_color_success -SETUVAR pure_color_k8s_namespace:pure_color_primary -SETUVAR pure_color_k8s_prefix:pure_color_info -SETUVAR pure_color_light:white -SETUVAR pure_color_mute:brblack -SETUVAR pure_color_nixdevshell_prefix:pure_color_info -SETUVAR pure_color_nixdevshell_symbol:pure_color_mute -SETUVAR pure_color_normal:normal -SETUVAR pure_color_prefix_root_prompt:pure_color_danger -SETUVAR pure_color_primary:blue -SETUVAR pure_color_prompt_on_error:pure_color_danger -SETUVAR pure_color_prompt_on_success:pure_color_success -SETUVAR pure_color_success:magenta -SETUVAR pure_color_system_time:pure_color_mute -SETUVAR pure_color_username_normal:pure_color_mute -SETUVAR pure_color_username_root:pure_color_light -SETUVAR pure_color_virtualenv:pure_color_mute -SETUVAR pure_color_warning:yellow -SETUVAR pure_convert_exit_status_to_signal:false -SETUVAR pure_enable_aws_profile:true -SETUVAR pure_enable_container_detection:true -SETUVAR pure_enable_git:true -SETUVAR pure_enable_k8s:false -SETUVAR pure_enable_nixdevshell:false -SETUVAR pure_enable_single_line_prompt:false -SETUVAR pure_enable_virtualenv:true -SETUVAR pure_reverse_prompt_symbol_in_vimode:true -SETUVAR pure_separate_prompt_on_error:false -SETUVAR pure_shorten_prompt_current_directory_length:0 -SETUVAR pure_shorten_window_title_current_directory_length:0 -SETUVAR pure_show_exit_status:false -SETUVAR pure_show_jobs:false -SETUVAR pure_show_numbered_git_indicator:false -SETUVAR pure_show_prefix_root_prompt:false -SETUVAR pure_show_subsecond_command_duration:false -SETUVAR pure_show_system_time:false -SETUVAR pure_symbol_aws_profile_prefix: -SETUVAR pure_symbol_container_prefix: -SETUVAR pure_symbol_exit_status_prefix:\x7c -SETUVAR pure_symbol_exit_status_separator:\x7c -SETUVAR pure_symbol_git_dirty:\x2a -SETUVAR pure_symbol_git_stash:\u2261 -SETUVAR pure_symbol_git_unpulled_commits:\u21e3 -SETUVAR pure_symbol_git_unpushed_commits:\u21e1 -SETUVAR pure_symbol_k8s_prefix:\u2638 -SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f -SETUVAR pure_symbol_prefix_root_prompt:\x23 -SETUVAR pure_symbol_prompt:\u276f -SETUVAR pure_symbol_reverse_prompt:\u276e -SETUVAR pure_symbol_ssh_prefix: -SETUVAR pure_symbol_title_bar_separator:\x2d -SETUVAR pure_symbol_virtualenv_prefix: -SETUVAR pure_system_time_format:\x2b\x25T -SETUVAR pure_threshold_command_duration:5 -SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1 -SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1 diff --git a/dot_config/fish/functions/clip-last.fish b/dot_config/fish/functions/clip-last.fish index 272461f..3a5f256 100644 --- a/dot_config/fish/functions/clip-last.fish +++ b/dot_config/fish/functions/clip-last.fish @@ -1,4 +1,4 @@ function clip-last --description 'Re-run last command, copy output to clipboard' - eval $history[1] | wl-copy + eval $history[1] | cpy notify-send -a fish "Clipboard" "Command output copied to clipboard" end diff --git a/dot_config/fish/functions/mdcp.fish b/dot_config/fish/functions/mdcp.fish index 1f575aa..908da8a 100644 --- a/dot_config/fish/functions/mdcp.fish +++ b/dot_config/fish/functions/mdcp.fish @@ -3,6 +3,6 @@ function mdcp -a url echo "usage: mdcp " >&2 return 1 end - curl.md $url | wl-copy - wl-paste | mdfried + curl.md $url | cpy + pst | mdfried end diff --git a/dot_config/starship.toml b/dot_config/starship.toml new file mode 100644 index 0000000..3e2867b --- /dev/null +++ b/dot_config/starship.toml @@ -0,0 +1,102 @@ +"$schema" = 'https://starship.rs/config-schema.json' +palette = "noctalia" + +format = """ +$username\ +$hostname\ +$directory\ +$git_branch\ +$git_state\ +$git_status\ +$cmd_duration\ +$python\ +$character""" + +right_format = """$time""" + +[directory] +style = "blue" + +[character] +success_symbol = "[❯](purple)" +error_symbol = "[❯](red)" +vimcmd_symbol = "[❮](green)" + +[git_branch] +format = "[$branch]($style)" +style = "bright-black" + +[git_status] +format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)" +style = "cyan" +conflicted = "​" +untracked = "​" +modified = "​" +staged = "​" +renamed = "​" +deleted = "​" +stashed = "≡" + +[git_state] +format = '\([$state( $progress_current/$progress_total)]($style)\) ' +style = "bright-black" + +[cmd_duration] +format = "[$duration]($style) " +style = "yellow" + +[python] +format = "[$virtualenv]($style) " +style = "bright-black" +detect_extensions = [] +detect_files = [] + +[time] +disabled = false +format = '[$time]($style)' +time_format = '%-I:%M %p' +style = "bright-black" + +# >>> NOCTALIA STARSHIP PALETTE >>> +# Noctalia Starship Palette +# Generated by Noctalia - do not edit manually + +[palettes.noctalia] +# Standard colors +blue = "#ed4c45" +red = "#fd4663" +green = "#ef5ce9" +yellow = "#ed4592" +cyan = "#f48bbb" +magenta = "#f48bef" +white = "#f3f2f3" +black = "#371b36" + +# Extended palette (Catppuccin-compatible names) +rosewater = "#ed4592" +flamingo = "#fd4663" +pink = "#f48bef" +mauve = "#f48bef" +maroon = "#fd4663" +peach = "#ed4592" +teal = "#f48bbb" +sky = "#f48bbb" +sapphire = "#ed4c45" +lavender = "#f48bef" + +# Text shades +text = "#f3f2f3" +subtext1 = "#f3f2f3" +subtext0 = "#716270" + +# Surface shades +overlay2 = "#716270" +overlay1 = "#716270" +overlay0 = "#371b36" +surface2 = "#371b36" +surface1 = "#371b36" +surface0 = "#291428" +base = "#291428" +mantle = "#291428" +crust = "#291428" +# <<< NOCTALIA STARSHIP PALETTE <<<