From 76ff9a4fdf191d5d92422abd4fbca47e8d85699c Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Thu, 8 Oct 2026 13:24:06 -0400 Subject: [PATCH] docs(docs): add mandible-pick script documentation and update tmux palette entries --- docs/shell/scripts.mdx | 13 +++++++++++++ docs/terminal/tmux.mdx | 9 ++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/shell/scripts.mdx b/docs/shell/scripts.mdx index dc3b15d..a6ff28b 100644 --- a/docs/shell/scripts.mdx +++ b/docs/shell/scripts.mdx @@ -44,6 +44,7 @@ Several scripts below also exist as fish functions of the same name (`ai`, `c2p` | [`kitty-day-save`](#kitty-day-save) | bash | Save kitty's daily session right before shutdown/reboot | | [`launch_omp_livediff_overlay`](#launch_omp_livediff_overlay) | sh | omp overlay plus a livediff split in kitty | | [`lc-elir`](#lc-elir) | sh | Run `/leetcode-eli5` via omp on picked solutions | +| [`mandible-pick`](#mandible-pick) | bash | fzf-pick a command, then open it in mandible | | [`mdcp`](#mdcp) | sh | Fetch a URL as Markdown, copy it, preview it | | [`mdp`](#mdp) | sh | fzf Markdown picker with mdfried preview | | [`mtime-sort`](#mtime-sort) | sh + perl | Sort path lines newest-first by mtime | @@ -222,6 +223,18 @@ Finds numbered LeetCode solution files (`^\d+\..+\.(js|ts)$`, for example `1365. **Needs:** `fd`, `fzf`, `bat`, `omp`, and the `/leetcode-eli5` omp command. +## mandible-pick + +```sh +mandible-pick +``` + +`mandible` (installed with cargo, `~/.cargo/bin`) needs a tool to open, so this asks for one first. fzf lists the executables installed in the `PATH` directories, without shell builtins, keywords, or aliases. enter opens the highlighted command. If the query contains a space (`git remote add`) or matches nothing, enter uses it exactly as typed, so mandible opens at that subcommand path. Then it `exec`s `mandible [subcommand…]`. esc exits quietly. The command list is built with a bash loop rather than GNU `find -printf`, so it also works on macOS. + +**Used by:** the tmux-palette **mandible** item (alias `man`), which runs it in a popup. See [tmux](/terminal/tmux#command-palette). + +**Needs:** `mandible`, `fzf` 0.51+ (`--with-shell`, `transform`, `accept-or-print-query`). + ## mdcp ```sh diff --git a/docs/terminal/tmux.mdx b/docs/terminal/tmux.mdx index d3d79d8..3301de1 100644 --- a/docs/terminal/tmux.mdx +++ b/docs/terminal/tmux.mdx @@ -92,20 +92,19 @@ Labels longer than 27 characters end in `…`. The icon comes from tmux-nerd-fon | File | Contents | | --- | --- | -| `commands.json` | The kitty launchers ported as palette items: **Lazygit** (90% popup in the pane's cwd; kitty `ctrl+shift+g`), **Yazi** (new window; kitty `ctrl+shift+f`), **Neovim Split** (right, 50%; kitty `ctrl+shift+e`), **Shell History (atuin)** (`atuin-pick` in a 25% split below; kitty `ctrl+shift+p`). Also **omp** (the omp agent in a full-height split on the right, 33% of the window; aliases `agent`, `ai`), **Project Tasks** (opens the tasks palette), **Sessions (sessionx)**, **Save Sessions**, and **Restore Sessions** (resurrect). Programs are started with `exec`, so the tab icon is the program's, not the shell's | +| `commands.json` | The kitty launchers ported as palette items: **Lazygit** (90% popup in the pane's cwd; kitty `ctrl+shift+g`), **Yazi** (new window; kitty `ctrl+shift+f`), **Neovim Split** (nvim in a split to the left, 60% of the pane; alias `nv`; kitty `ctrl+shift+e`), **Shell History (atuin)** (`atuin-pick` in a 25% split below; kitty `ctrl+shift+p`). Also **btop** (80% popup; aliases `top`, `htop`), **mandible** (80% popup running [`mandible-pick`](/shell/scripts#mandible-pick); alias `man`), **television** (`tv channels`, the [channel picker](/tools/television), in a new window in the pane's cwd; alias `tv`), **gitframe** (git diff viewer in a new window in the pane's cwd; alias `gf`), **omp** (the omp agent in a full-height split on the right, 33% of the window; aliases `agent`, `ai`), **Project Tasks** (opens the tasks palette), **Sessions (sessionx)**, **Save Sessions**, and **Restore Sessions** (resurrect). Programs are started with `exec`, so the tab icon is the program's, not the shell's | | `palettes/tasks.json` | The **Project Tasks** palette (`prefix t`, Ghostty `ctrl+shift+space`), fed by [`pj-palette`](/shell/scripts#pj-palette): `bun install`, `bun run dev`, `uv sync`, `uv run python`, `make`, `go run .`, `cargo run` as Quick items when the project has them, then every task `pj` finds, grouped by tool. Each runs in a full-width split along the bottom (25% of the window) in its directory. `ctrl-c` stops a running task; once it has exited, `enter` or `ctrl-c` closes the pane | +| `hidden.json` | Hides the built-in **Switch Theme...** item, and with it the Appearance section: the palette stays on the fixed cyberdream `theme.json` | | `shortcuts.json` | Ghostty `ctrl+shift` chords shown next to the built-in items they trigger (New Window → `Ctrl+Shift+T`, …) | | `theme.json` | Cyberdream: bg `#16181a`, panel `#1e2124`, selected `#243348` (the active-tab plate), muted `#7b8496`, accent `#5ea1ff` | -The palette's own **Switch Theme...** item rewrites `theme.json`; in chezmoi's symlink mode that edits the repo copy. - ### Persistence resurrect saves sessions, windows, panes, cwds, pane contents, and a default set of programs (nvim, less, man, …). Keys: `prefix C-s` saves, `prefix C-r` restores. continuum saves automatically every 10 minutes. When a tmux server starts and no other tmux server is running, continuum restores the last save. In practice that means the first Ghostty window after login or a reboot. ## tmux-nerd-font-window-name.yml -`show-name: false`, because `automatic-rename-format` supplies the label. The icon sits on the left, with a fallback icon and a blank multi-pane icon. Icons are defined for `mprocs`, `mm`, `macmon`, `make`, `zsh`, `nvim`, `devbox`, `psql`, `yazi`, `lazygit`, `gh`, `tv`, `docker`, `bun`, `node`, `npm`, `pnpm`, `go`, `bunx`, and `claude`. The plugin parses the YAML with awk and does not interpret `\U` escapes, so the glyphs are literal characters. +`show-name: false`, because `automatic-rename-format` supplies the label. The icon sits on the left, with a fallback icon and a blank multi-pane icon. Icons are defined for `mprocs`, `mm`, `macmon`, `make`, `zsh`, `nvim`, `devbox`, `psql`, `yazi`, `lazygit`, `gh`, `tv`, `docker`, `bun`, `node`, `npm`, `pnpm`, `go`, `bunx`, `claude`, `omp`, and `gitframe`. The plugin parses the YAML with awk and does not interpret `\U` escapes, so the glyphs are literal characters. ## niri-title.sh @@ -116,4 +115,4 @@ Installed only on Linux `desktop`/`laptop` roles (gated in `.chezmoiignore.tmpl` 3. Git repo: directory name and branch. 4. Otherwise the cwd basename. -`tmux.conf` does not currently call the script; its title string is `#h:#W`. +`tmux.conf` does not currently call the script; its title string is `#S`.