Skip to content

Crash in shift-action leaves client stuck in fingers key table, tmux unusable #162

@dragon788

Description

@dragon788

Bug Description

When @fingers-shift-action fails (e.g., the command path can't be resolved), tmux-fingers crashes with an unhandled File::NotFoundError but does not clean up:

  1. The client remains in the fingers key table
  2. A [fingers] window is left behind, renamed from the original pane's window
  3. Every keypress hits the Any → noop catch-all binding, making tmux completely unresponsive
  4. Even q, Escape, and C-c (bound to exit) fail because the fingers process is no longer running to handle send-input

The only recovery is manually running tmux unbind -aT fingers or tmux switch-client -T root from another terminal.

Repro

  1. Set @fingers-shift-action to a path using ~ (tilde is not expanded):
    set -g @fingers-shift-action '~/.local/bin/fingers-open {}'
    
  2. Trigger fingers: Prefix + F
  3. Press Shift+<hint letter> to trigger the shift action
  4. Fingers crashes — client is now stuck in the fingers key table

Root cause from log

Unhandled exception: Error executing process: '~/.local/bin/fingers-open': No such file or directory (File::NotFoundError)

Expected Behavior

On any unhandled exception, tmux-fingers should:

  1. Switch the client back to the root key table (tmux switch-client -T root)
  2. Clean up the [fingers] window
  3. Log the error

Ideally, tmux-fingers should also expand ~ in action paths, or document that absolute paths are required.

Environment

  • tmux-fingers: 2.6.2 (Homebrew)
  • tmux: 3.5a
  • macOS (Darwin 25.3.0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions