example: Add IPC remote control example.
This commit is contained in:
27
README.md
27
README.md
@@ -131,7 +131,7 @@ pins the version and pulls in rust-analyzer + clippy.
|
||||
|
||||
## Current Status
|
||||
|
||||
Phases 1 through 3 are complete. pikl works as a TUI menu with:
|
||||
Phases 1 through 6 are complete. pikl works as a TUI menu with:
|
||||
- Fuzzy, exact, regex, and inverse filtering with `|` pipeline chaining
|
||||
- Vim navigation (j/k, gg/G, Ctrl+D/U, Ctrl+F/B, modes)
|
||||
- Structured JSON I/O with sublabel, icon, group, and arbitrary metadata
|
||||
@@ -140,6 +140,31 @@ Phases 1 through 3 are complete. pikl works as a TUI menu with:
|
||||
- Format templates (`--format '{label} - {sublabel}'`)
|
||||
- Field-scoped filtering (`--filter-fields`, `meta.res:3840` syntax)
|
||||
- Headless scripting via `--action-fd`
|
||||
- Multi-select with undo/redo and visual line mode
|
||||
- Table mode for CSV/TSV input with auto-generated or custom columns
|
||||
- IPC control via Unix socket (`--ipc`, `--session`)
|
||||
- Session filter history with Ctrl+P/Ctrl+N recall
|
||||
|
||||
### IPC example
|
||||
|
||||
Run pikl with IPC in one terminal, control it from another:
|
||||
|
||||
```sh
|
||||
# terminal 1: start pikl with IPC enabled
|
||||
echo -e "alpha\nbeta\ngamma\ndelta" | pikl --ipc --session demo
|
||||
|
||||
# terminal 2: query state over the socket
|
||||
echo '{"action":"get_state","id":"1"}' \
|
||||
| socat - UNIX-CONNECT:/run/user/$(id -u)/pikl-demo.sock
|
||||
|
||||
# terminal 2: add items dynamically
|
||||
echo '{"action":"add_items","items":["epsilon","zeta"]}' \
|
||||
| socat -t 0.1 - UNIX-CONNECT:/run/user/$(id -u)/pikl-demo.sock
|
||||
```
|
||||
|
||||
There's an interactive remote control demo at
|
||||
[examples/ipc-remote.sh](examples/ipc-remote.sh)
|
||||
(see [examples/ipc-remote.md](examples/ipc-remote.md) for the walkthrough).
|
||||
|
||||
## Platform Support
|
||||
|
||||
|
||||
Reference in New Issue
Block a user