focal 0.2.2

Terminal focus library - focus terminal windows and multiplexer panes
Documentation
# focal

Terminal focus library - focus terminal windows and multiplexer panes.

## Features

- **Terminal detection**: Identify which terminal emulator owns a TTY
- **Cross-platform activation**: Bring terminal windows to front (macOS + Linux)
- **Terminal-specific handlers**: Precise tab/pane focusing for iTerm2, Terminal.app, WezTerm, Kitty
- **Multiplexer support**: Switch to the correct tmux/zellij/screen pane

## Usage

```rust
use focal::{focus_session, FocusResult};

// Focus the terminal containing a process
match focus_session(pid, None) {
    FocusResult::Success => println!("Focused!"),
    FocusResult::MuxSwitched { mux, target } => {
        println!("Switched to {mux} {target}");
    }
    FocusResult::NotFound => println!("Terminal not found"),
    _ => {}
}

// With a multiplexer hint (for faster tmux detection)
let _ = focus_session(pid, Some("tmux"));
```

## Supported Terminals

### macOS
- iTerm2 (tab-specific focusing via JXA)
- Terminal.app (tab-specific focusing via JXA)
- WezTerm (pane-specific focusing via CLI)
- Kitty (window-specific focusing via remote control)
- Ghostty (window-specific focusing via JXA)
- Generic terminals (Alacritty, etc.) via osascript

### Linux
- WezTerm (pane-specific focusing via CLI)
- Kitty (window-specific focusing via remote control)
- Ghostty (window-specific focusing via wmctrl/xdotool/swaymsg/hyprctl)
- Generic terminals via wmctrl, xdotool, swaymsg, or hyprctl

## Supported Multiplexers

- tmux
- zellij (planned)
- screen (planned)