mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
docs(docs): add pj-palette and Ghostty grouping documentation
This commit is contained in:
1 parent
5e12568876
commit
bdada99535
4 files changed
+34
-1
No files matched your search
@@ -64,10 +64,13 @@ Omarchy's default bindings stay enabled. `omarchy_default_bindings` and `omarchy
|
||||
| `^com\.anthropic\.Claude$` | `special:claude silent` |
|
||||
| `^com\.fastmail\.Fastmail$` | `special:fastmail silent` |
|
||||
| `^Beeper$` | `special:beeper silent` |
|
||||
| `^com\.mitchellh\.ghostty$` | `group = "set"`: opens as a group (tabbed, with a groupbar) |
|
||||
| `brave-(www\.)?youtube\.com__.*`, title not matching `.*Picture.?in.?[Pp]icture.*` | Float, pin, size 30% × 30% of the monitor, move to `10, monitor_h*0.7-10` (bottom-left corner) |
|
||||
|
||||
Scratch residents are placed `silent` so that [`omarchy-toggle-scratch`](#omarchy-toggle-scratch) decides when to reveal them. The YouTube rule matches both `youtube.com` and `www.youtube.com` because Chromium's class changes once a video plays. It excludes the picture-in-picture overlay so Omarchy's own PiP rule still applies. Its size and inset must stay in sync with [`omarchy-pip`](#omarchy-pip).
|
||||
|
||||
Ghostty runs one tmux session per window and titles the window with the session name, so its groupbar reads as a list of sessions. With Omarchy's `group.auto_group`, more Ghostty windows opened while the group is focused join it. See [Ghostty](/terminal/ghostty#sessions).
|
||||
|
||||
## Input
|
||||
|
||||
`input.lua`:
|
||||
|
||||
@@ -49,6 +49,7 @@ Several scripts below also exist as fish functions of the same name (`ai`, `c2p`
|
||||
| [`mtime-sort`](#mtime-sort) | sh + perl | Sort path lines newest-first by mtime |
|
||||
| [`omp-session`](#omp-session) | python3 | Resume or start omp for the current repo; backend of the `omp-sessions` cable |
|
||||
| [`pj`](#pj) | bash | Task runner across every project task source, on a tv cable |
|
||||
| [`pj-palette`](#pj-palette) | bash | pj's tasks plus quick actions as a tmux-palette source |
|
||||
| [`yazi-nvim-open`](#yazi-nvim-open) | sh | yazi opener that targets the host Neovim |
|
||||
|
||||
## ai
|
||||
@@ -332,6 +333,32 @@ A task runner that searches every task source in the project and lets you pick o
|
||||
|
||||
**Needs:** `bash`, `tv`, `mtime-sort`, `jq`, `python3` 3.11+ (for `tomllib`), plus whichever runners the project uses.
|
||||
|
||||
## pj-palette
|
||||
|
||||
```sh
|
||||
pj-palette
|
||||
pj-palette --run KIND TARGET ROOT RUNNER
|
||||
pj-palette --cmd ROOT CMD…
|
||||
```
|
||||
|
||||
The source of the **Project Tasks** [tmux command palette](/terminal/tmux#command-palette) (`palettes/tasks.json`). Open it with tmux `prefix t`, Ghostty <kbd>ctrl+shift+space</kbd>, or the "Project Tasks" item in the main palette.
|
||||
|
||||
With no arguments it reads the active pane's directory (`tmux display -p '#{pane_current_path}'`) and prints palette items as JSON, grouped by category:
|
||||
|
||||
| Group | Items | Shown when |
|
||||
| --- | --- | --- |
|
||||
| Quick | `<pm> install` (alias `install`, `i`), `<pm> run dev` (`dev`) | `package.json` at the project root. The package manager comes from `packageManager`, then the lockfile, as in `pj` |
|
||||
| Quick | `uv sync` (`sync`), `uv run python` (`py`, `repl`) | `pyproject.toml` and `uv` installed |
|
||||
| Quick | `make` (default target; `m`, `build`) | A Makefile and `make` |
|
||||
| Quick | `go run .`, `cargo run` | `go.mod` / `Cargo.toml` and the toolchain |
|
||||
| Tasks: `<tool>` | Every record from `pj --list`: npm/bun/pnpm/yarn scripts, Make, just, mise, devbox, pyproject task tables and console scripts | Whatever `pj` finds walking up to the git root |
|
||||
|
||||
The project root is the git toplevel, else the pane's directory.
|
||||
|
||||
**Run.** Every item opens a new tmux window in the task's directory. The command is passed to `new-window` as separate arguments, so no shell reparses it. `--run` calls `pj --run`, which keeps pj's `openlogs` wrapping of `dev`/`start`/`serve`/`watch` tasks, and `--cmd` runs a quick action. Either way, when the command exits the script prints `[exit N]` and `exec`s `$SHELL`, so the window keeps the output instead of closing.
|
||||
|
||||
**Needs:** `pj` and its dependencies, `jq`, tmux.
|
||||
|
||||
## yazi-nvim-open
|
||||
|
||||
```sh
|
||||
|
||||
@@ -61,6 +61,7 @@ Closing a window only detaches its session; the shells keep running in the tmux
|
||||
| Key | Sends | tmux action |
|
||||
| --- | --- | --- |
|
||||
| `ctrl+shift+t` | `prefix c` | New window (tab) in pane cwd |
|
||||
| `ctrl+shift+space` | `prefix t` | Project Tasks palette (pj: install, dev, sync, make, every project task) |
|
||||
| `ctrl+shift+w` | `prefix k` | Kill window (close tab) |
|
||||
| `ctrl+shift+r` | `prefix r` | Rename window |
|
||||
| `ctrl+tab` / `ctrl+page_down` / `ctrl+shift+right` / `ctrl+shift+k` | `prefix n` | Next window |
|
||||
|
||||
@@ -42,6 +42,7 @@ These settings are what [yazi](/tools/yazi) needs inside tmux. `allow-passthroug
|
||||
| `prefix q` | Reload config |
|
||||
| `prefix /` | Copy mode, then search upward |
|
||||
| `prefix o` | tmux-sessionx: fuzzy-find, switch to, create, rename (`ctrl-r`), or kill (`alt-backspace`) sessions, with a preview |
|
||||
| `prefix t` | Project Tasks palette ([`pj-palette`](/shell/scripts#pj-palette)): install/dev/sync/make quick actions plus every `pj` task, each run in a new window |
|
||||
| `prefix h` / `prefix v` | Split below / right, pane cwd |
|
||||
| `prefix x` | Kill pane |
|
||||
| `M-Enter` / `M-S-Enter` / `M-Escape` (no prefix) | Split below / split right / kill pane |
|
||||
@@ -91,7 +92,8 @@ 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 **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** (right, 50%; kitty `ctrl+shift+e`), **Shell History (atuin)** (`atuin-pick` in a 25% split below; kitty `ctrl+shift+p`). Also **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 new window in its directory and keeps a shell after it exits |
|
||||
| `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` |
|
||||
|
||||
|
||||
Reference in new issue
Block a user