Skip to content

Several commands listed but not functional (display-popup, display-menu, choose-tree, etc.) #95

@JUN-PRODUCE

Description

@JUN-PRODUCE

First of all, I've been eagerly waiting for a native Windows tmux for a long time, and psmux is exactly what I hoped for. Really excited to see it evolve — keep up the great work!

I'm looking to build an fzf-based TUI using psmux (similar to fzf --tmux / tmux-fzf on Linux), so I ran a systematic audit of commands relevant to that workflow. Below are the results on psmux 0.4.10, Windows 11, PowerShell 7+.


Summary

Several commands are registered in list-commands but produce no visible effect — they return exit code 0 silently with no rendering. One command (choose-tree) is listed but returns "unknown command" on execution.

Which of these are planned for implementation, and which are intentionally no-ops?


Audit Results

NOT WORKING — Overlay / Visual Rendering

These commands run silently (exit 0) but produce no visible output on screen. Verified via capture-pane -p.

Command Test Result
display-popup display-popup echo hello No popup rendered
display-popup display-popup -w 50% -h 50% echo test No popup rendered
display-menu display-menu -T Menu Item1 a "echo a" No menu rendered
confirm-before confirm-before -p "sure?" "echo yes" No prompt rendered
display-panes display-panes No pane numbers rendered
clock-mode clock-mode -t default No clock rendered

NOT WORKING — Listed but "unknown command"

Command Test Result
choose-tree choose-tree -t default psmux: unknown command: choose-tree (rc=1)

Note: choose-tree appears in psmux list-commands output but fails on execution.

NOT WORKING — No observable effect

Command Test Result
display-message (status bar) display-message "hello" (without -p) No message in status bar
pipe-pane pipe-pane -t default "cat > /tmp/test" → send-keys → close Output file not created
copy-mode copy-mode -t default #{pane_in_mode} returns 0 after execution

WORKING — Scripting & Data

Command Test Result
run-shell run-shell "echo hello" ✓ Outputs "hello"
if-shell if-shell "true" "run-shell 'echo T'" "run-shell 'echo F'" ✓ Evaluates correctly (both branches)
send-keys send-keys -t default "echo hi" Enter ✓ Keystrokes delivered
capture-pane capture-pane -t default -p ✓ Returns pane content
set-buffer / show-buffer set-buffer "data"show-buffer ✓ Buffer stored and retrieved
list-buffers list-buffers ✓ Lists all buffers with sizes
paste-buffer paste-buffer -t default ✓ Pastes into pane
load-buffer / save-buffer save-buffer /tmp/fload-buffer /tmp/f ✓ Silent but functional
delete-buffer delete-buffer ✓ Buffer removed
set-environment / show-environment set-environment FOO barshow-environment ✓ Variable stored and listed
set-hook / show-hooks set-hook after-new-window "..."show-hooks ✓ Hook registered and listed
find-window find-window "pwsh" ✓ Finds matching window
choose-buffer choose-buffer ✓ Lists buffers (non-interactive)
display-message -p display-message -p "#{session_name}" ✓ Prints to stdout
list-keys / bind-key / unbind-key Standard operations ✓ All functional
set-option / show-options set-option -g status-style "fg=white" ✓ Options stored and retrieved
Format variables #{session_name}, #{window_index}, #{pane_pid}, #{?window_active,...} ✓ All resolved correctly, conditionals work

Use Case Context

My primary interest is display-popup for running fzf inside a popup overlay (the pattern used by fzf --tmux and tmux-fzf). The scripting foundation (run-shell, if-shell, send-keys, capture-pane, hooks, format variables) is excellent — the overlay rendering layer is the missing piece.

Thanks for building this!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions