ROVER
===

![screenshot](screenshot.png)

Rover is a text-based light-weight frontend for `update-alternatives`, inspired by the ranger file browser. Compared to graphical frontends such as `galternatives` and `kalternatives`, Rover has the following advantages:

1. **Keyboard-driven**: User doesn't need to move their hands off the keyboard.
2. **Zero GUI overhead**: Runs directly in the terminal, not bound to a graphical environment.
3. **Powerful searching**: Supports searching alternatives by substring or Python regex.

SYNOPSIS
---

```
usage: rover [-h] [-e EXPRESSION] [-v]
```

OPTIONS
---

* `-h, --help`: Show the help message and exit.
* `-e, --expression EXPRESSION`: Filter the alternatives list initially with the given substring or Python regex.
* `-v, --version`: Print version information.

INTERFACE LAYOUT
---

Rover splits the terminal window into several functional areas:
* **Left Pane (Alternative Names)**: Displays the list of configured alternatives.
* **Right Pane (Candidates)**: Displays the available target candidates for the highlighted alternative.
* **Info Pane (Details & Slaves)**: Displays detailed metadata about the highlighted candidate, including its priority, mode, and slave links.
* **Status Bar**: Displays feedback, current configuration details, and input prompts.

USAGE
---

To change the target for an alternative:
1. Browse or search (`/` or `?`) for the alternative name in the **Left Pane**.
2. Press `l` or `right` to switch the focus to the **Right Pane**.
3. Highlight the desired candidate using the arrow keys (`j`/`k` or `up`/`down`).
4. Press `SPACE` or `ENTER` to set the selection. (Changing system alternatives typically requires root privileges; run `rover` with `sudo` or as root).
5. Press `h` or `left` to return to the **Left Pane**.

KEYBINDING
---

```
Move down      [↓] j, ↓
Move up        [↑] k, ↑
Move left      [←] h, ←  (Focus Left Pane / Alternatives)
Move right     [→] l, →  (Focus Right Pane / Candidates)
Select/Set     [*] SPACE, ENTER
Search         [?] /, ?
Quit           [X] q, ESC
```

SEARCHING
---

Press `/` or `?` to start a search. You can search by the alternative's name, its mode, or the path of a candidate. Substring matching is case-insensitive, and valid Python regular expressions are supported.

LICENSE
---

Copyright (C) 2018-2026 Mo Zhou <lumin@debian.org>
Licensed under GPL-3.0+
