Skip to content
Go to file
4 contributors

Users who have contributed to this file

@hishamhm @natoscott @fasterit @cgzones
685 lines (601 sloc) 23.8 KB
What's new in version 3.0.2
* BUGFIX: Drop 'vim_mode' - several issues, needs rethink
* BUGFIX: fix regression in -u optional-argument handling
* Build system rework to remove python, header generation
(thanks to Zev Weiss and Hugo Musso Gualandi)
* BUGFIX: report nice level correctly on Solaris
(thanks to Dominik Hassler)
* CI, code quality improvements
(thanks to Tobias Kortkamp, Christian Hesse, Benny Baumann)
What's new in version 3.0.1
* Coverity fixes, CI improvements, documentation updates
* BUGFIX: Fix early exit with longer sysfs battery paths
* BUGFIX: Improve OOM output, fix sorting
(thanks to Christian Göttsche)
* Rework check buttons and tree open/closed
(thanks to Bert Wesarg)
* Add -U/--no-unicode option to disable unicode
(thanks to Christian Hesse)
* Improvements to the affinity panel
(thanks to Bert Wesarg)
What's new in version 3.0.0
* New maintainers - after a prolonged period of inactivity
from Hisham, the creator and original maintainer, a team
of community maintainers have volunteered to take over a
fork at and
to keep the project going.
* Support ZFS ARC statistics
(thanks to Ross Williams)
* Support more than 2 smaller CPU meter columns
(thanks to Christoph Budziszewski)
* Support Linux proportional set size metrics
(thanks to @linvinus, @ntninja and @himikof)
* Support Linux pressure stall information metrics
(thanks to Ran Benita)
* New display option to show CPU frequency in CPU meters
(thanks to Arnav Singh)
* Update Linux sysfs battery discovery for recent kernels
(thanks to @smattie)
* Add hardware topology information in the affinity panel
(thanks to Bert Wesarg)
* Add timestamp reporting to the strace screen
(thanks to Mario Harjac)
* Add simple, optional vim key mapping mode
(thanks to Daniel Flanagan)
* Added an option to disable the mouse
(thanks to MartinJM)
* Add Solaris11 compatibility
(thanks to Jan Senolt)
* Without an argument -u uses $USER value automatically
(thanks to @solanav)
* Support less(1) search navigation shortcuts
(thanks to @syrrim)
* Update the FreeBSD maximum PID to match FreeBSD change
(thanks to @multiplexd)
* Report values larger than 100 terabytes
(thanks to @adrien1018)
* Widen ST_UID (UID) column to allow for UIDs > 9999
(thanks to DLange)
* BUGFIX: fix makefiles for building with clang
(thanks to Jorge Pereira)
* BUGFIX: fix <sys/sysmacros.h> major() usage
(thanks to @wataash and Kang-Che Sung)
* BUGFIX: fix the STARTTIME column on FreeBSD
(thanks to Rob Crowston)
* BUGFIX: truncate overwide jail names on FreeBSD
(thanks to Rob Crowston)
* BUGFIX: fix reported memory values on FreeBSD
(thanks to Tobias Kortkamp)
* BUGFIX: fix reported CPU meter values on OpenBSD
(thanks to @motet-a)
* BUGFIX: correctly identify other types of zombie process
(thanks to @joder)
* BUGFIX: improve follow-process handling in some situations
(thanks to @wangqr)
* BUGFIX: fix custom meters reverting to unexpected setting
(thanks to @wangqr)
* BUGFIX: close pipe after running lsof(1)
(thanks to Jesin)
* BUGFIX: meters honour setting of counting CPUs from 0/1
(thanks to @rnsanchez)
What's new in version 2.2.0
* Solaris/Illumos/OpenIndiana support
(thanks to Guy M. Broome)
* -t/--tree flag for starting in tree-view mode
(thanks to Daniel Flanagan)
* macOS: detects High Sierra version to avoid OS bug
(thanks to Pierre Malhaire)
* OpenBSD: read battery data
(thanks to @nerd972)
* Various automake and build improvements
(thanks to Kang-Che Sung)
* Check for pkg-config when building with --enable-delayacct
(thanks to @florian2833z for the report)
* Avoid some bashisms in configure script
(thanks to Jesin)
* Use CFLAGS from ncurses*-config if present
(thanks to Michael Klein)
* Header generator supports non-UTF-8 environments
(thanks to @volkov-am)
* Linux: changed detection of kernel threads
* Collapse current subtree pressing Backspace
* BUGFIX: fix behavior of SYSCR column
(thanks to Marc Kleine-Budde)
* BUGFIX: obtain exit code of lsof correctly
(thanks to @wangqr)
* BUGFIX: fix crash with particular keycodes
(thanks to Wellington Torrejais da Silva for the report)
* BUGFIX: fix issue with small terminals
(thanks to Daniel Elf for the report)
* BUGFIX: fix terminal color issues
(thanks to Kang-Che Sung for the report)
* BUGFIX: preserve LDFLAGS when building
(thanks to Lance Frederickson for the report)
* BUGFIX: fixed overflow for systems with >= 100 signals
What's new in version 2.1.0
* Linux: Delay accounting metrics
(thanks to André Carvalho)
* DragonFlyBSD support
(thanks to Diederik de Groot)
* Support for real-time signals
(thanks to Kang-Che Sung)
* 'c' key now works with threads as well
* Session column renamed from SESN to SID
(thanks to Kamyar Rasta)
* Improved UI for meter style selection
(thanks to Kang-Che Sung)
* Improved code for constructing process tree
(thanks to wangqr)
* Compile-time option to disable setuid
* Error checking of various standard library operations
* Replacement of sprintf with snprintf
(thanks to Tomasz Kramkowski)
* Linux: performance improvements in battery meter
* Linux: update process TTY device
* Linux: add support for sorting TASK_IDLE
(thanks to Vladimir Panteleev)
* Linux: add upper-bound to running process counter
(thanks to Lucas Correia Villa Real)
* BUGFIX: avoid crash when battery is removed
(thanks to Jan Chren)
* BUGFIX: macOS: fix infinite loop in tree view
(thanks to Wataru Ashihara)
What's new in version 2.0.2
* Mac OS X: stop trying when task_for_pid fails for a process,
stops spamming logs with errors.
* Add Ctrl+A and Ctrl+E to go to beginning and end of line
* FreeBSD: fixes for CPU calculation
(thanks to Tim Creech, Andy Pilate)
* Usability: auto-follow process after a search.
* Use Linux backend on GNU Hurd
* Improvement for reproducible builds.
* BUGFIX: Fix behavior of Alt-key combinations
(thanks to Kang-Che Sung)
* Various code tweaks and cleanups
(thanks to Kang-Che Sung)
What's new in version 2.0.1
* OpenBSD: Various fixes and improvements
(thanks to Michael McConville and Juan Francisco Cantero Hurtado)
* FreeBSD: fix CPU and memory readings
(thanks to Tim Creech, Hung-Yi Chen, Bernard Spil, Greg V)
* FreeBSD: add battery support
(thanks to Greg V)
* Linux: Retain last-obtained name of a zombie process
* Mac OS X: Improve portability for OS X versions
(thanks to Michael Klein)
* Mac OS X: Fix reading command-line arguments and basename
* Mac OS X: Fix process state information
* Mac OS X: Fix tree view collapsing/expanding
* Mac OS X: Fix tree organization
* Mac OS X: Fix memory accounting
* Fix crash when emptying a column of meters
* Make Esc key more responsive
What's new in version 2.0.0
* Platform abstraction layer
* Initial FreeBSD support
* Initial Mac OS X support
(thanks to David Hunt)
* Swap meter for Mac OSX
(thanks to Ștefan Rusu)
* OpenBSD port
(thanks to Michael McConville)
* FreeBSD support improvements
(thanks to Martin Misuth)
* Support for NCurses 6 ABI, including mouse wheel support
* Much improved mouse responsiveness
* Process environment variables screen
(thanks to Michael Klein)
* Higher-resolution UTF-8 based Graph mode
(Thanks to James Hall from vtop for the idea!)
* Show program path settings
(thanks to Tobias Geerinckx-Rice)
* BUGFIX: Fix crash when scrolling an empty filtered list.
* Use dynamic units for text display, and several fixes
(thanks to Christian Hesse)
* BUGFIX: fix error caused by overflow in usertime calculation.
(thanks to Patrick Marlier)
* Catch all memory allocation errors
(thanks to Michael McConville for the push)
* Several tweaks and bugfixes
(See the Git log for details and contributors!)
What's new in version 1.0.3
* Tag all children ('c' key)
* Fixes in accounting of guest time when using virtualization
(thanks to Patrick Marlier)
* Performance improvements
(thanks to Jann Horn)
* Further performance improvements due to conditional parsing
of IO data depending on selected fields.
* Better consistency in coloring.
* Increase limit of buffer when tracing a deep nested process tree.
* Display pagefault stats.
* BUGFIX: Fix crash when adding meters and toggling detailed CPU time.
(thanks to Dawid Gajownik)
* Add column to track the OOM-killer score of processes
(thanks to Leigh Simpson)
What's new in version 1.0.2
* Add IO priority support ('i' key)
* Avoid deleting .htoprc if it is a symlink
* Fail gracefully when /proc is not mounted
(thanks to Philipp Hagemeister)
* Option to update process names on every refresh
(thanks to Rob Hoelz)
* BUGFIX: Fix crashes when process list is empty
What's new in version 1.0.1
* Move .htoprc to XDG-compliant path ~/.config/htop/htoprc,
respecting $XDG_CONFIG_HOME
(thanks to Hadzhimurad Ustarkhan for the suggestion.)
* Safer behavior on the kill screen, to make it harder to kill the wrong process.
* Fix for building in FreeBSD 8.2
(thanks to Trond Endrestol)
* BUGFIX: behavior of 'F' (follow) key was broken, also affecting the
persistence of mouse selections.
* BUGFIX: keep main panel up-to-date when running the screen manager,
to fix crash when processes die while on the F9/Kill screen.
What's new in version 1.0
* Performance improvements
* Support for splitting CPU meters into two or four columns
(thanks to Wim Heirman)
* Switch from PLPA, which is now deprecated, to HWLOC.
* Bring back support for native Linux sched_setaffinity,
so we don't have to use HWLOC where we don't need to.
* Support for typing in user names and column fields in selection panels.
* Support for UTF-8 tree drawing
(thanks to Bin Guo)
* Option for counting CPUs from zero
(thanks to Sean Noonan)
* Meters update in every screen (no longer halting while on Setup, etc.)
* Stricter checks for command-line options
(thanks to Sebastian Pipping)
* Incremental filtering
(thanks to Seth Heeren for the idea and initial implementation)
* Try harder to find the ncurses header
(thanks to Moritz Barsnick)
* Man page updates
(thanks to Vincent Launchbury)
* BUGFIX: Support larger numbers for process times.
(thanks to Tristan Nakagawa for the report.)
* BUGFIX: Segfault in BarMeterMode_draw() for small terminal widths
(patch by Sebastian Pipping)
What's new in version 0.9
* Add support for "steal"/guest CPU time measurement
in virtualization environments
* Expand and collapse subtrees using '+' and '-' when in tree-view
* Support for cgroups
(thanks to Guillaume Zitta and Daniel Lezcano)
* Show custom thread names
(thanks to Anders Torger)
* Add support for STARTTIME field
* Upgrade PLPA to version 1.3.2
* Fix license terms with regard to PLPA
(thanks to Tom Callaway)
* getopt-based long options and --no-color
(thanks to Vincent Launchbury)
* BUGFIX: Fix display of nan% in CPU meters
(thanks to Steven Hampson)
* BUGFIX: Fix memory leak
(thanks to Pavol Rusnak)
* Add Bash/emacs style navigation keys
(thanks to Daniel Schuler)
* Improve battery meter support
(thanks to Richard W.)
* BUGFIX: Fix IO-wait color in "Black on White" scheme
* BUGFIX: Fix search by process name when list is filtered by user.
(thanks to Sergej Pupykin for the report.)
* BUGFIX: Fix alignment for display of memory values above 100G (sign of the times!)
(thanks to Jan van Haarst for the report.)
What's new in version 0.8.3
* BUGFIX: Fix crash on F6 key
(thanks to Rainer Suhm)
* BUGFIX: Fix a minor bug which affected the build process.
What's new in version 0.8.2
* Integrated lsof (press 'l')
* Fix display of gigabyte-sized values
(thanks to Andika Triwidada)
* Option to display hostname in the meters area
* Rename VEID to CTID in OpenVZ systems
(thanks to Thorsten Schifferdecker)
* Corrections to the desktop entry file
(thanks by Samuli Suominen)
* BUGFIX: Correct page size calculation for FreeBSD systems
(thanks to Andrew Paulsen)
* Allow compilation without PLPA on systems that don't support it
(thanks to Timothy Redaelli)
* BUGFIX: Fix missing tree view when userland threads are hidden
(thanks to Josh Stone)
* BUGFIX: Fix for VPID on OpenVZ systems
(thanks to Wolfgang Frisch)
What's new in version 0.8.1
* Linux-VServer support
(thanks to Jonathan Sambrook and Benedikt Bohm)
* Battery meter
(thanks to Ian Page Hands)
* BUGFIX: Fix collection of IO stats in multithreaded processes
(thanks to Gerhard Heift)
* Remove assertion that fails on hardened kernels
(thanks to Wolfram Schlich for the report)
What's new in version 0.8
* Ability to change sort column with the mouse by
clicking column titles (click again to invert order)
* Add support for Linux per-process IO statistics,
enabled with the --enable-taskstats flag, which
requires a kernel compiled with taskstats support.
(thanks to Tobias Oetiker)
* Add Unicode support, enabled with the --enable-unicode
flag, which requires libncursesw.
(thanks to Sergej Pupykin)
* BUGFIX: Fix display of CPU count for threaded processes.
When user threads are hidden, process now shows the
sum of processor usage for all processors. When user
threads are displayed, each thread shows its own
processor usage, including the root thread.
(thanks to Bert Wesarg for the report)
* BUGFIX: avoid crashing when using many meters
(thanks to David Cho for the report)
What's new in version 0.7
* CPU affinity configuration ('a' key)
* Improve display of tree view, properly nesting
threads of the same app based on TGID.
* IO-wait time now counts as idle time, which is a more
accurate description. It is still available in
split time, now called detailed CPU time.
(thanks to Samuel Thibault for the report)
* BUGFIX: Correct display of TPGID field
* Add TGID field
* BUGFIX: Don't crash with invalid command-line flags
(thanks to Nico Golde for the report)
* Fix GCC 4.3 compilation issues
(thanks to Martin Michlmayr for the report)
* OpenVZ support, enabled at compile-time with
the --enable-openvz flag.
(thanks to Sergey Lychko)
What's new in version 0.6.6
* Add support of NLWP field
(thanks to Bert Wesarg)
* BUGFIX: Fix use of configurable /proc location
(thanks to Florent Thoumie)
* Fix memory percentage calculation and make it saner
(thanks to Olev Kartau for the report)
* Added display of DRS, DT, LRS and TRS
(thanks to Matthias Lederhofer)
* BUGFIX: LRS and DRS memory values were flipped
(thanks to Matthias Lederhofer)
* BUGFIX: Don't crash on very high UIDs
(thanks to Egmont Koblinger)
What's new in version 0.6.5
* Add hardened-debug flags for debugging with Hardened GCC
* BUGFIX: Handle error condition when a directory vanishes
from /proc
* BUGFIX: Fix leak of process command line
* BUGFIX: Collect orphaned items when arranging the tree view.
(thanks to Wolfram Schlich for assistance with debugging)
* Separate proc and memory debugging into separate #defines.
* BUGFIX: Fix message when configure fails due to
missing libraries
(thanks to Jon)
* BUGFIX: Don't truncate value when displaying a very large
(thanks to Bo Liu)
What's new in version 0.6.4
* Add an option to split the display of kernel time
in the CPU meter into system, IO-wait, IRQ and soft-IRQ.
(thanks to Philipp Richter)
* --sort-key flag in the command-line, overriding the
saved setting in .htoprc for the session.
(thanks to Rodolfo Borges)
* BUGFIX: Fixed string overflow on uptime display.
(thanks to Marc Cahalan)
What's new in version 0.6.3
* Performance improvements: uses much less CPU than the
previous release with the default setup.
* Use 64-bit values when storing processor times to
avoid overflow.
* Memory consumption improvements, compensating storage
of 64-bit values.
* Internal change: rename TypedVector to Vector and
ListBox (and related classes) to Panel.
* Have configure actually fail when needed libraries or
headers are not found.
* Horizontally scroll in larger increments when on the
Linux console because of slow update of unaccelerated fb
* No longer untag processes after sending a signal
(useful for when SIGTERM fails and one wants to try again
with SIGKILL). All processes can be untagged at once with 'U'.
(thanks to A. Costa for the suggestion)
What's new in version 0.6.2
* BUGFIX: Fixed crash when using some .htoprc files from 0.6
(thanks to Wolfram Schlich and John Thomas for the reports)
* BUGFIX: Ensure changes to color scheme are saved
* BUGFIX: Make configure behave correctly with --with-proc
* Minor addition to .desktop file.
What's new in version 0.6.1
* New meter type: "All CPUs", which dynamically adjusts
to the number of CPUs present in the machine. Note that
because of this, older versions of htop may crash when
using an .htoprc file modified my the newer version.
* Accept --with-proc=<dir> in configure, to specify
alternative procfs locations (making htop friendlier
to the Linux compatibility layer in FreeBSD)
* Included icon .desktop and desktop entry
(thanks to Peter Hyman)
* Added a check to make sure that a root-user htop closes
when its parent non-root terminal is closed.
(thanks to Ilya Evseev for the report)
* BUGFIX: does not crash anymore when $HOME is not set
(thanks to Henning Schild for the report)
* Wait for strace child process to die properly.
(thanks to Marcus Fritzsch)
* Support $HTOPRC
(thanks to Luis Limon)
What's new in version 0.6
* Configuration of columns merged into the Setup screen
* Integrated strace (press 's')
(thanks to Marinho Barcellos for the help)
* BUGFIX: some fixes, aided by Valgrind
(thanks to Wolfram Schlich for the report)
* BUGFIX: fixed bug when switching meter modes
(thanks to Eduardo Righes for the report)
* Show processes of a single user
* "SortBy" function now menu-based
* Improved mouse handling
* ...and on top of that reduced memory consumption!
What's new in version 0.5.4
* Color schemes
* -d flag, to configure delay between updates.
Note that the delay value is saved in ~/.htoprc.
* BUGFIX: Update of meters was halting after help screen.
(thanks to Matt Moore)
* BUGFIX: No longer display incorrect information
in first frame.
* BUGFIX: Fix auto-detection of /proc/stat,
correcting CPU usage information on multiprocessor
What's new in version 0.5.3
* Read new field "steal" on newer /proc/stat files
* Auto-detects format of /proc/stat, to cope
with patched 2.4 kernels which display 2.6-style
information (most notably those on RHEL 3)
(thanks to Fernando Dotta for the report)
* Support $HOME_ETC initiative
(thanks to Roman Barczynski for the tip)
* The configure script now tests for /proc, so
that it fails early on unsupported platforms
instead of during compilation/execution.
* Made presentation of the function keys in the
status bar consistent across views
(thanks to David Mathog for the report)
* Minor changes to make the codebase more friendly
to possible future ports
(thanks to Jari Aalto and David Mathog for the reports)
What's new in version 0.5.2
* BUGFIX: Correct display of user field
(thanks to Marcin Miroslaw for the report)
* Keyboard support improvements
(thanks to Aury Fink Filho for the report)
What's new in version 0.5.1
* BUGFIX: Correctly displays NPTL threads from
/proc/<pid>/task subdirectories
(thanks to Mike Pot for the report)
* BUGFIX: Fixes key handling on Signals listbox
(thanks to Ondrej Vlach)
* Renicing no longer displays temporary illegal values
(thanks to Ondrej Vlach)
* 'Hide userland threads' feature for NPTL threads
What's new in version 0.5
* Tree view
* New column, TIME (user + system time,
like in top, 'T' switches to "sort by time")
* Major reorganization of the underlying code of the
setup screen, to manage setup pages
* New setup page: Display options
* Hide kernel threads ('K' key)
* Colorized memory numbers
* Vastly improved support for monochromatic terminals
* Shadow processes that do not belong to user ('U' key)
* Header margin configuration accessible via setup screen
* Visual feedback on failing incremental search
* BUGFIX: fixed keyboard input issues on 64-bit machines
* BUGFIX: hopefully fixed the incorrect values
that show on status bars in some systems
* BUGFIX: doesn't mess with fields list anymore when
canceling after changing the number of items
* Uptime meter no longer says "1 days" ;)
What's new in version 0.4.1
* BUGFIX: compiles on 64-bit architectures again
(thanks to Bartosz Fenski for the report)
* BUGFIX: multi-processor support fixed on kernels 2.6
(thanks to Wolfram Schlich for the report)
What's new in version 0.4
* Support for multiple processors!
* Basic mouse support
* Modular header based on configurable meters;
supports 4 view modes: bar, text, LED, graph
* Uptime, load average meters
(thanks to Marc Calahan)
* Meters setup screen; should eventually evolve into a
general setup screen, with column setup, keybindings, etc.
* Thread hiding toggleable
(press 'T' to hide the nonstandard dotfiles in /proc)
* BUGFIX: Do not flicker screen on column configuration screen
* Clock and load average meters
(thanks to Marc Calahan)
* BUGFIX: numeric swap indicator was printing bogus value
* BUGFIX: internal fixes on Panel widget
* Clear the bottom line when exiting
* Press "F3" during search to walk through the results
* Improved navigation on column configuration screen
* BUGFIX: fix segfault on kernels with restricted /proc
* BUGFIX: a few last-minute bugfixes in the setup UI
(thanks to Gaspare Bruno for the reports)
What's new in version 0.3.3
* Saves column and sorting configuration in ~/.htoprc
* Displays "hidden" threads on RedHat 9
(Thanks to Leonardo Godinho)
* BUGFIX: supports process names with spaces
(Thanks to Marc Calahan)
* BUGFIX: ...and parentheses :)
* BUGFIX: long process names overflowed RichString
(Thanks to Marc Calahan)
What's new in version 0.3.2
* Performance and memory usage improvements, aided by gprof
* BUGFIX: quite a few fixes, aided by Valgrind
* Header preview on column configuration screen
(Thanks to Marc Calahan)
What's new in version 0.3.1
* BUGFIX: crash fixes related to process list handling
(thanks to Marc Calahan)
* Man page
(thanks to Bartosz Fenski)
* Tag processes with the space bar
* Kill multiple process based on tag
* BUGFIX: corrected processing order of updates in list
* Screen refresh function on Ctrl-L
* Large numbers are shown in MB/GB notation in order to fit screen
(thanks to Marc Calahan)
* Realtime priority is correctly displayed
(thanks to Marc Calahan)
* Preliminary support for configurable columns, with 'C'
(thanks to Marc Calahan)
-- not all columns display properly yet
What's new in version 0.3
* BUGFIX: no dirt left on screen on horizontal scrolling
* Signal selection on "kill" command
* Color-coding for users, nice and process status
* "Follow" function
* Fully selectable sort order
* Function bar on last line
* Build system now uses autotools
What's new in version 0.2.1
* Sorting by process or memory usage ('P' and 'M', like top)
* Quicker default update (1.5 second, not yet configurable)
* Now the order of the elements in the process list stay
'locked' for a while after you move the cursor to ease
selecting a process
* Corrected the installation instructions in README
(Thanks to Jeremy Eglen)
* Should now compile cleanly on Conectiva 9 and similar systems
(Thanks to Adriano Frare for the report)
* Friendlier Makefile
* Help screen ('h')
What's new in version 0.2
* Memory indicators in header now show used and total, in MB
* Preliminary support for sorting (CPU% only)
* Memory percentage field (resident memory / used memory)
* BUGFIX: identified source of spurious crashes
* Can search names containing numbers
(Thanks to Rafael Jeffman)
* Correctly calculates memory page size
(Thanks to Rafael Jeffman)
What's new in version 0.13
* Handles terminal resize
* Display all user names (not only those in /etc/passwd)
(Thanks to Julio Biason)
What's new in version 0.12
* Support for 2.6 kernels
* Uses terminal default colors as a background
What's new in version 0.11
* BUGFIX: does not crash when UID is not in /etc/passwd
What's new in version 0.1
* Everything!
You can’t perform that action at this time.