HTOPRSALL(1)

NAME
htoprsall - the htoprs comprehensive reference (invocation, options, process list, meters, tree, search, filter, tagging, sorting, every keybinding, function bar, setup screen, colors, mouse, signals, config)

OVERVIEW
This is the all-in-one htoprs manual, modeled on zshall(1). It concatenates every section of the htoprs reference into a single page so you can grep with `/`:

    1. INVOCATION — startup, default behavior, privileges
    2. COMMAND-LINE OPTIONS — delay, color, filter, pid, sort, user, tree, readonly
    3. THE PROCESS LIST — columns, meanings, per-process state
    4. THE HEADER AND METERS — CPU, memory, swap, load, uptime, tasks, and meter modes
    5. TREE VIEW — hierarchy, expand/collapse, sort within tree
    6. SEARCH, FILTER, AND TAGGING — incremental search, filter, tag, act on many at once
    7. SORTING — sort column, direction, quick sort keys
    8. INTERACTIVE COMMANDS — every keybinding in every mode
    9. THE FUNCTION BAR — F1–F10 and their actions
    10. THE SETUP SCREEN — meters, display options, colors, columns
    11. COLOR SCHEMES
    12. MOUSE SUPPORT
    13. SIGNALS — the kill menu, nice, affinity, IO priority
    14. CONFIGURATION AND FILES
    15. ENVIRONMENT
    16. EXIT STATUS
    17. EXAMPLES
    18. PORTING NOTES — how htoprs tracks the htop 3.5.1 C source

For a shorter quick-reference page see htoprs(1).

NAME
htoprs - interactive process viewer (a faithful Rust port of htop)

SYNOPSIS
htoprs [-dCFhpustvH] [OPTIONS]

DESCRIPTION
htoprs is a Rust port of htop(1), the cross-platform ncurses process viewer, ported function-for-function from the htop 3.5.1 C source, which is the specification.

Like top(1), htoprs lets you scroll the process list vertically and horizontally, interact with a pointing device, observe all processes with their full command lines, view them as a tree, select (tag) multiple processes, and act on them at once. Tasks such as killing and renicing are done without typing PIDs — you point at the process and press a key.

Highlights:

•   Live process table with configurable, reorderable columns and a per-core / aggregate CPU, memory, and swap header of meters.

•   Tree view of the process hierarchy with expand / collapse.

•   Incremental search, live text filter, and multi-process tagging.

•   Sort by any column; quick keys for CPU, memory, and time.

•   Send any signal, renice, set CPU affinity and IO priority — to one process or every tagged process at once.

•   A setup screen (F2) to configure meters, display options, colors, and columns, persisted to ~/.config/htop/htoprc.

•   Full mouse support: click to select, click the function bar, click a column header to sort.

1. INVOCATION
Run htoprs with no arguments for the default interactive view: all processes of all users, meters in the header, the process list below, and the function bar at the bottom.

htoprs does not require elevated privileges to view processes. Acting on a process you do not own (killing, renicing to a higher priority) requires the appropriate privileges, exactly as with htop(1) and kill(1).

2. COMMAND-LINE OPTIONS
Mandatory arguments to long options are mandatory for short options too.

-d, --delay=DELAY
    Delay between updates, in tenths of a second. If the delay value is less than 1, it is increased to 1 (1/10 second). If it is greater than 100, it is decreased to 100 (10 seconds).

-C, --no-color, --no-colour
    Start in monochrome mode.

-F, --filter=FILTER
    Show only the commands matching the given filter. Terms are matched case-insensitively as fixed strings (not regular expressions); separate multiple terms with "|".

--no-function-bar
    Hide the function bar at the bottom of the screen.

-h, --help
    Display a help message and exit.

-p, --pid=PID,PID...
    Show only the given PIDs.

-s, --sort-key COLUMN
    Sort by this column. Use --sort-key help for the column list. This forces a flat (list) view unless -t is also given, in which case sorting applies to the direct children of each process within the tree.

-t, --tree
    Show processes in tree view. Combine with -s to force a tree while requesting a sort order.

-u, --user[=USERNAME|UID]
    Show only the processes of a given user, or of the current user if the argument is omitted.

-n, --max-iterations=NUMBER
    Exit after NUMBER refresh iterations. Useful for scripted capture.

-U, --no-unicode
    Do not use Unicode; draw graph meters with ASCII characters only.

-M, --no-mouse
    Disable mouse control.

--no-meters
    Hide the header graph meters.

--readonly
    Disable all system- and process-changing features: no kill, no renice, no affinity or IO-priority changes. A safe observation-only mode.

-H, --highlight-changes[=DELAY]
    Highlight new and old processes. With an optional DELAY (in seconds), control how long a change stays highlighted.

-V, --version
    Output version information and exit.

3. THE PROCESS LIST
Each row is a process (or, in tree view, a node). The default columns:

PID | process ID
USER | owning user name
PRI | kernel scheduling priority
NI | nice value (-20 highest → 19 lowest)
VIRT | virtual memory size
RES | resident set size (physical memory in use)
SHR | shared memory size
S | process state (R/S/D/Z/T/...)
CPU% | percentage of a single core's time
MEM% | percentage of physical memory (RES / total)
TIME+ | cumulative CPU time, MM:SS.hh
Command | command line (or program name)

Process states in the S column follow ps(1): R running, S sleeping (interruptible), D uninterruptible sleep, Z zombie/defunct, T stopped/traced. Columns are configurable and reorderable in the setup screen (chapter 10).

4. THE HEADER AND METERS
The header holds one or more meters. Available meters include:

CPU | per-core or averaged CPU usage, colored by usage type
Memory | used / buffers / cache / total physical memory
Swap | used / total swap
Load average | 1, 5, and 15 minute run-queue averages
Uptime | time since boot
Tasks | thread / process / running counts
Hostname | the machine hostname
Clock | current time
Date | current date
DateTime | combined date and time
Battery | charge percentage and AC state (where available)
Blank | spacer to arrange the layout

Each meter can be displayed in one of several modes:

    Bar a horizontal bar broken into colored regions.

    Text
        a compact numeric line.

    Graph
        a scrolling braille/plot history of recent values.

    LED a large seven-segment style readout.

Meters are laid out in a left and a right column; both the set of meters and their modes are configured in the setup screen (chapter 10) and persisted to htoprc.

Press b on the main screen to cycle the character every bar meter is filled with, through five styles — Classic (|, htop's default), Gradient (position-shaded blocks), Solid, Thin, and Ascii (#) — keeping each segment's color. The choice persists to ~/.config/htoprs/prefs.json and is restored on the next launch.

5. TREE VIEW
Press F5 (or t) to toggle tree view, which shows the parent/child hierarchy of processes instead of a flat list.

+ / - | Expand or collapse the subtree under the selected process
* | Expand or collapse all subtrees
F5 / t | Toggle between tree and list view

When sorting is requested in tree view, the sort order applies to the direct children of each parent, preserving the hierarchy.

6. SEARCH, FILTER, AND TAGGING

  Search
F3 (or /) starts an incremental search: type to jump to the next matching command; F3 again cycles to the next match; Shift+F3 searches backward. Esc ends the search.

  Filter
F4 (or \) starts a live filter: only processes whose command matches the typed text remain visible. The filter persists until cleared with F4 again or Esc.

  Tagging
Space tags or untags the selected process; tagged processes are highlighted. U untags all. Actions such as kill, renice, and signal apply to every tagged process at once when any are tagged; otherwise they apply to the selected process.

F3 / / | Incremental search
Shift+F3 | Search previous match
F4 / \ | Live text filter
Space | Tag / untag selected process
c | Tag the selected process and all its children
U | Untag all

7. SORTING
F6 (or < / >) chooses the sort column from a menu; select a column and the list re-sorts. I inverts the sort direction. Quick sort keys act without opening the menu:

F6 / < / > | Open the sort-column menu
I | Invert sort direction
M | Sort by memory usage (MEM%)
P | Sort by processor usage (CPU%)
T | Sort by cumulative time (TIME+)

8. INTERACTIVE COMMANDS
Every htoprs keybinding, grouped by purpose. Function keys and their letter aliases are equivalent.

  Navigation
Up / Down | Select previous / next process
Left / Right | Scroll the process list horizontally
PgUp / PgDn | Scroll one page up / down
Home / End | Jump to first / last process
Ctrl+A / Ctrl+E | Scroll to the start / end of the command column

  Views and display
F5 / t | Toggle tree view
+ / - / * | Expand / collapse (see chapter 5)
F / --follow | Follow the selected process as the list re-sorts
u | Show only one user's processes (chooser)
H | Hide / show userland process threads
K | Hide / show kernel threads
p | Toggle full program path in the Command column
b | Cycle the bar meter fill style (Classic / Gradient / Solid / Thin / Ascii)
Z | Pause / resume list updates

  Process actions
F9 / k | Kill: open the signal menu for the selected/tagged process(es)
F7 / ] | Raise priority (renice —, needs privilege)
F8 / [ | Lower priority (renice +)
a | Set CPU affinity (where supported)
i | Set IO priority (where supported)
e | Show the process environment
l | List open files of the process (via lsof)
s | Trace system calls of the process (via strace)

  General
F1 / h / ? | Help
F2 / S | Setup screen
F3 / / | Search
F4 / \ | Filter
F6 / < / > | Sort column
F10 / q | Quit
Ctrl+L | Refresh / redraw the screen

9. THE FUNCTION BAR
The bar along the bottom maps F1–F10:

F1 | Help
F2 | Setup
F3 | Search
F4 | Filter
F5 | Tree
F6 | SortBy
F7 | Nice -
F8 | Nice +
F9 | Kill
F10 | Quit

Hide the bar with --no-function-bar to reclaim a line of screen space; every action remains available via its letter alias.

10. THE SETUP SCREEN
F2 (or S) opens the setup screen with four categories:

    Meters
        Add, remove, move, and change the mode (Bar / Text / Graph / LED) of each header meter, in the left or right column.

    Display options
        Toggles: tree view on start, shadow other users' processes, hide kernel threads, hide userland threads, highlight base name, highlight megabytes, highlight large numbers in memory counters, leave a margin around the header, detailed CPU time, count CPUs from 1, update process names on every refresh, and more.

    Colors
        Choose one of the built-in color schemes (chapter 11).

    Columns
        Add, remove, and reorder the columns of the process list.

Changes are written to ~/.config/htop/htoprc on exit.

11. COLOR SCHEMES
htoprs ships the classic htop color schemes, selectable in the Colors category of the setup screen:

    Default , Monochrome , Black on White , Light Terminal , MC (Midnight Commander) , Black Night , and Broken Gray.

Start in monochrome directly with -C. The selected scheme persists in htoprc.

12. MOUSE SUPPORT
When the terminal reports mouse events (and -M is not given):

Left click (row) | Select that process
Left click (header meter) | Cycle the meter's mode
Left click (column header) | Sort by that column
Left click (function bar) | Invoke that F-key action
Scroll up / down | Move the selection up / down

Disable all mouse handling with -M or --no-mouse.

13. SIGNALS
F9 (or k) opens the signal menu. Choose a signal by name or number and send it to the selected process, or to every tagged process at once. The default is SIGTERM (15); the menu also offers SIGKILL (9), SIGHUP (1), SIGINT (2), SIGSTOP, SIGCONT, and the rest of the platform's signal set.

Priority and scheduling actions:

    F7 / ]
        Raise priority (more favorable, lower nice value — needs privilege).

    F8 / [
        Lower priority (less favorable, higher nice value).

    a   Set CPU affinity: choose the CPUs a process may run on.

    i   Set IO scheduling priority class and level.

All of these are disabled under --readonly.

14. CONFIGURATION AND FILES

~/.config/htop/htoprc
    Per-user configuration: meters and their modes, display option toggles, color scheme, columns, sort key and direction. Written on exit; edited through the setup screen rather than by hand.

/usr/local/share/man/man1/htoprs.1
    Short quick-reference man page.

/usr/local/share/man/man1/htoprsall.1
    This comprehensive reference.

htoprs honors the XDG base-directory convention: if $XDG_CONFIG_HOME is set, the configuration lives under $XDG_CONFIG_HOME/htop/htoprc.

15. ENVIRONMENT

HOME
    Locates the configuration directory when $XDG_CONFIG_HOME is unset.

XDG_CONFIG_HOME
    Overrides the base directory for htop/htoprc.

TERM
    Selects terminal capabilities; also gates mouse and Unicode support.

NO_COLOR
    When set, color is suppressed even on a color terminal (equivalent to -C).

16. EXIT STATUS

0   Successful completion (including a clean quit with F10/q).

1   Invalid option, invalid sort key, invalid PID list, or a fatal runtime error.

17. EXAMPLES

Default interactive view:
    htoprs

Slow the refresh to every 3 seconds:
    htoprs -d 30

Watch only your own processes, in a tree:
    htoprs -u -t

Watch two specific PIDs:
    htoprs -p 1,1234

Filter to just the ssh processes:
    htoprs -F ssh

Sort by memory, monochrome, observation-only:
    htoprs -s PERCENT_MEM -C --readonly

List valid sort keys:
    htoprs --sort-key help

Highlight process changes for 5 seconds each:
    htoprs -H=5

18. PORTING NOTES
htoprs is ported function-for-function from the htop 3.5.1 C source, which is treated as the specification. The XUtils string and math utility layer is ported and tested; the process table, meters, tree, setup screen, and platform data collectors are ported against their upstream counterparts (Process.c, ProcessList.c, Meter.c, ScreenManager.c, and the linux/ and darwin/ platform directories). The command-line surface in chapter 2 mirrors htop's exactly so that scripts and muscle memory carry over unchanged.

SEE ALSO
htoprs(1), htop(1), top(1), ps(1), kill(1), renice(1), lsof(8), strace(1), iftoprsall(1), lsofrsall(1), nmaprsall(1), zshrsall(1)

AUTHORS
htoprs is written by MenkeTechnologies <https://github.com/MenkeTechnologies> as a faithful Rust port of the htop project.

BUGS
Report bugs at https://github.com/MenkeTechnologies/htoprs/issues.