Commit Graph
1063 Commits
Author SHA1 Message Date
Clement Tsang 797129156d feature: add temperature graph (#2048)
Add support for a temperature graph widget. Quick-and-dirty implementation for now, will clean this up with other widgets later (maybe after adding a disk graph widget).
2026-05-03 07:19:49 +00:00
Clement Tsang a9863107c8 refactor: clean up some duplicated code when parsing options (#2047)
Cleans up some duplicated code for parsing args/config files using macros/wrapper functions.
2026-04-25 10:38:18 +00:00
Clement Tsang 61e56754db feature: basic scrollbar support for tables and dialogs (#2046)
Adds scrollbars to dialogs (help, process kill) and optionally tables.
2026-04-25 09:47:15 +00:00
Clement Tsang 5d09d18469 feature: support showing a decimal place for CPU usage (#2045)
* feature: support showing a decimal place for CPU usage

* update docs + changelog + schema

* fix basic cpu formatting
2026-04-21 23:27:25 -04:00
Adarsh DasandClementTsang 4b59c04547 feature: support negation in queries (#1948)
This PR adds the ability to use negation in queries. For example, `!=` as an equality operator `(cpu != 10)` and around groups, like `!(cpu > 5 or mem < 10)`.

---------

Co-authored-by: ClementTsang <34804052+ClementTsang@users.noreply.github.com>
2026-04-21 02:44:46 -04:00
Clement Tsang b0ab3e99e7 bug: address possible memory usage growth in AMD GPU stat gathering (#2042)
* driveby changelog update

* fix missing cleanup for AMD GPU stat gathering

* update changelog

* relegate counter to get_amd_vecs
2026-04-18 02:00:35 -04:00
Clement Tsang ae425d09d8 feature: add new table_gap option with a drawn-line option (#2039)
This PR replaces the `hide_table_gap` option with a new `table_gap` option that controls whether a space is drawn, a line is drawn, or nothing is drawn.
2026-04-17 08:02:16 +00:00
Ada Freya Ahmed fc7f9f4ce1 other: update amdgpu marketing names (#2037) 2026-04-14 01:40:29 -04:00
Clement Tsang 8b548ada95 refactor: run nightly fmt (#2036)
* refactor: run nightly fmt

* manually fix some multilines

* run it again
2026-04-13 05:34:53 +00:00
Clement Tsang d187559af9 refactor: generalize input field logic for easier reuse (#2035)
* add generalized input field file

* partial migration

* even more!

* app is clean

* move over canvas

* finish migrating

* fmt

* update and generate some tests

* Add test comments

* fix logic issue with me trying to avoid a second cursor

* fix delete word behaviour with unicode

* update changelog

* remove unused reset

* some test updates + cleanup

* clippy

* comment

* remove redundant shrink_to_fit
2026-04-13 01:24:24 -04:00
Clement Tsang 3545a31881 refactor: run nightly format (#2033)
Run `cargo +nightly fmt` using the nightly options (other than wrap comments).
2026-04-12 20:39:30 +00:00
Clement Tsang 0f0fa21f91 feature: show graph legend in more situations (#2031)
This PR makes it so that instead of always just hiding the entire legend if it's too big for the current size, we instead show less parts of the legend to make it fit. For example, if it's too tall, we just show less entries. If it is too wide, but other entries still would fit, we truncate the entries that are too long so they fit.

This is somewhat helpful because in the memory widget, the GPU entry at the moment is causing the legend to hide in situations where it used to not. We can also do more work to make that better, but IMO not always hiding the legend also makes sense to have in general.
2026-04-12 03:03:16 -04:00
Clement Tsang 8353f15a55 refactor: effectively vendor nohash (#2019) 2026-04-11 04:55:33 -04:00
dastarruerandClement Tsang 8cb217cd19 feature: add a global bg_color option for widgets (#1979)
* feature: add global bg_color option

* period

* fmt

* oops, format again

* update default config + schema

* rename field + apply it to dialogs

* update dialog to just draw once

* handle basic

* add test + some small tweaks

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2026-04-11 03:59:25 -04:00
Clement Tsang 6970f0ef61 refactor: clean up some table code (#2014)
* clean up column logic

* some more cleaning around

* clippy
2026-04-11 02:28:38 -04:00
Clement Tsang bb08494c12 other: use vhs to automatically record demo gif (#2006)
This PR adds a vhs "tape" file to automatically do the demo gif
recording. The point of this is to make it more consistent/easy to do,
and this has the benefit of making a smaller gif file.
2026-03-22 18:57:23 -04:00
Clement Tsang 7496bbdd54 feature: configurable default sort column for temperature and disk table widgets. (#2003)
Adds support for configuring the default sort column for temperature and disk widgets via config file.
2026-03-21 17:23:16 -04:00
Clement TsangandWqyJh 42ee4c79af feat: add packet size & packet rate (#1980)
* feat: add packet size & packet rate

* feat: add packet size & packet rate for network basic panel

* update wording

* some text shifting fixes

* fix most things

---------

Co-authored-by: WqyJh <781345688@qq.com>
2026-03-11 23:41:07 -04:00
Clement Tsang b6c92a701f other: fix clippy warnings on beta (#1995) 2026-03-08 03:21:11 +00:00
Clement Tsang 1973ce4ed8 ci: granular checks in CI (#1991)
* ci: granular checks in CI

* cleanup

* update comments

* fix some jobs failing for now

* change cfg

* add comment on why freebsd tests don't work
2026-02-28 06:51:56 -05:00
Clement Tsang 7682f9d6b3 refactor: run nightly format on code (#1951) 2026-01-05 03:59:14 -05:00
Clement Tsang b3445b3044 refactor: clean up some query code (#1949)
* tmp

* intermediate work

* delete some code

* hook things up

* use QueryOptions everywhere instead

* comments

* more cleanup

* even more cleanup

* fmt

* update comment

* some more tests while I'm at it

* add todo for additional tests

* more empty quotes

* more empty quote testing

* even more tests

* driveby test for arg tests
2026-01-05 03:51:43 -05:00
Frederick Zhang 14178fc8e3 bug: fix crash caused by multi-byte UTF8 chars in process names (#1943)
When a process name contains multi-byte characters, cmdline[start..end]
is unsafe since it operates on bytes and can cause panic when start/end
are not char boundaries.
2025-12-30 14:11:37 -05:00
Clement Tsang 151e4d6127 refactor: move around some files related to the time graphs (#1942)
* refactor: move around some files related to the time graphs

* fmt

* fmt again

* update changelog

* add docs for time_graph

* rename time_graph to time_chart to be consistent

* nvm, that just makes it more annoying

* fmt

* Update documentation comment for time_graph.rs

* add extra rustdoc lint as well while I'm here
2025-12-29 00:22:15 -05:00
Clement Tsang ccc7779fc8 deps: bump root deps as of 2025-12-28, remove backtrace (#1940)
* deps: bump root deps as of 2025-12-28, remove backtrace

* fmt
2025-12-28 19:00:57 -05:00
Clement Tsang 26b1801c45 refactor: use ratatui 0.30.0 (#1930)
* refactor: support ratatui 0.30.0-beta.1

* 0.30.0!

* some refactoring

* ugh I broke something

* hm I think that fixes it

* fmt
2025-12-28 18:43:32 -05:00
Clement Tsang 870d68ab3e bug: fix Windows memory leak caused by getting priority (#1933)
Looks like the issue was related to how we were getting priority in Windows, using the winprocinfo crate. This is resolved by just manually doing the windows API calls necessary.

---

* test if leak is caused by winprocinfo

* manually implement priority code

* cleanup

* update changelog
2025-12-27 11:43:43 -05:00
Clement Tsang 73b88870ec other: use Rust 2024 edition again (#1924)
* fix typo

* Reapply "refactor: migrate to Rust 2024 edition (#1678)"

This reverts commit 02384b4c56.
2025-12-25 12:05:06 -05:00
Clement Tsang b96aa55a90 other: temporarily revert 2024 changes + hardcode some ratatui things (#1921)
* Revert "refactor: migrate to Rust 2024 edition (#1678)"

This reverts commit b07eb646ce.

* other: temporarily revert 2024 changes

* additionally work around some issues
2025-12-25 11:10:32 -05:00
Clement Tsang b07eb646ce refactor: migrate to Rust 2024 edition (#1678)
* refactor: try bumping to rust 2024 edition

* clippy
2025-12-25 01:17:41 -05:00
Clement Tsang 2c623399ae uptick: 0.12.0 (#1915)
* uptick: 0.12.0

* update schema generation while we're at it

* wording

* update schema generation docs

* update docs
2025-12-24 22:52:50 -05:00
Clement Tsang d458d1958b other: fix some config code for nice/priority (#1911)
* other: fix some config code for nice/priority

* driveby change from cfg(target_family=unix) to just cfg(unix)

* remove nice as a default for now
2025-12-21 15:22:00 -05:00
Clement Tsang fe2a5c559b bug + refactor: clean up query code, fix bug around quotes (#1910)
* refactor query error to another file

* refactor and/or/prefix

* more refactoring and tests

* clippy

* more tests

* even more tests

Also add some comments with context about some tests.

* todo and comments

* fix a bug around quote parsing

* update changelog

* add comment

* add comment

* update changelog
2025-12-21 15:13:15 -05:00
Adarsh Das 102ae6b247 feat: Added priority and nice as columns in process view (#1881)
* basic priority and nice functionality

* fix fmt, clippy and tests

* trying to fix other platform build errors

* fmt fix

* trying more fixes

* clean project

* refactored nice to be for all unix systems

* few more places where I had to change cfg for Nice

* Fix scheme names issues

* fix for schema

* fmt

* fixed clippy errors

* 'nice' fix

* fmt

* fixed cfg in tests also

* trying to fix macos test errors

* fix nice value extraction for mac

* modularised nice and priority for mac and freebsd

* fmt

* more multi target to unix

* removing unnecesary guards

* added safety comments

- also reverted string array reference changes

utils fix

* weird utils clippy error fix

* removed unneeded commit

* not needed after main merge(?)
2025-12-21 14:31:43 -05:00
Clement Tsang 469947a61e other: update nightly schema (#1905) 2025-12-20 22:55:30 +00:00
Clement Tsang 94af05ee06 refactor: use rustc-hash and nohash (#1902)
* add nohash and rustc-hash

* use fxhash by default

* comment

* fmt

* clippy

* use nohash for pid stuff

* fix import

* fix imports again

* fix windows type for gpu pid
2025-12-19 03:42:46 -05:00
gitgoggles 6c81caffd2 feat: enter key can be used to close process search widget (#1890)
Added the ability to press Enter after typing a search term in the Proc widget, making it more Vim-like for those with muscle-memory for Vim's '/' search.
2025-11-30 19:04:56 -05:00
rezky_nightky f277dff2b2 fix: correct spelling across docs, comments, and configs (#1891) 2025-11-30 16:42:06 -05:00
Clement Tsang a8f65a8065 other: add very basic test for data collection (#1883) 2025-11-22 23:57:06 -05:00
Clement Tsang 86b35bcd79 refactor: use clippy::unwrap_used (#1882)
* refactor: use clippy::unwrap_used

* fix log format use

* fix a bunch of macos ones

* oop

* allow schema script

* driveby schema bump
2025-11-22 23:26:02 -05:00
Adarsh Das 45b2522929 feature: add readonly mode (#1861)
* init

* Fixed code smells

* Updated documentation as per feedback
2025-11-17 06:03:46 -05:00
Adarsh Das c813b220af feature: add spacebar shortcut to toggle process tree nodes (#1830)
* feature: added spacebar as a toggle for proc tree mode

* bug: added check if the app is currently in search widget state

* refactor: moved the if statements inside the match case

* docs: added documentation for Spaec as tree toggle

* revert: changes

* feat: added space key to toggle tree

* refactor: clippy errors

* docs: updated documentation for space as toggle

* feat: experimental change to Minus, collapse entire tree

* fix: clippy errors

* feat: finished - and + as full tree collapse/expand

* refactor: clippy errors

* Made the all collapse function more concise

* Changed i32 calls to Pid

* updated help text

* Fixed array

* reverted total collapse and expand of trees

* array fix
2025-11-16 17:34:35 -05:00
Clement Tsang 9df4e30d7b bug: fix network graph y-axis cache updating + starting height occasionally being 0 (#1867)
* bug: fix using the wrong timestamp to invalidate network axis scaling cache

* fix bug with starting with 0.0 leading to having a max height of 0.0

* comment

* driveby
2025-11-16 14:30:57 -05:00
Clement Tsang c97cb063d1 other: clean up help text spacing + help text dialog sizing (#1865)
* other: clean up help text spacing + help text dialog sizing

* use 'safer' saturating, I think it gets optimized out...?

* semicolon + typo
2025-11-15 18:56:10 +00:00
Guillaume Gomez f88d9d9404 other: Simplify cfg condition (#1862) 2025-11-15 11:05:57 -05:00
Clement Tsang 873ba20e68 deps: bump ratatui to 0.30.0-beta.0 (#1860)
* deps: bump ratatui to 0.30.0-beta.0

* use SpaceEvenly

* explicitly mention layout-cache

* fix changelog as driveby
2025-11-11 05:57:51 -05:00
Clement Tsang 0735276122 bug: ensure avg cpu is drawn on top in "All" mode (#1859)
* bug: ensure avg cpu is drawn on top

* changelog
2025-11-11 05:47:09 -05:00
Clement Tsang 3c42f6502a bug: fix issues introduced with average CPU usage refactor (#1846)
* fix potential logic bug with generate points logic, but this isn't the actual issue

* update changelog

* why was that there

* okay let's not bother

* Revert "okay let's not bother"

This reverts commit 1ce8f5619f.

* Revert "why was that there"

This reverts commit 6a2a4da04a.

* Revert "fix potential logic bug with generate points logic, but this isn't the actual issue"

This reverts commit 7f7de8055b.

* Revert "bug/refactor: draw average CPU last, refactor CPU data code (#1804)"

This reverts commit 43e1b34899.

* reverse as a lazy fix for avg
2025-11-04 12:58:46 -05:00
Clement Tsang 8d06d729db other: fix clippy errors for 1.91.0 (#1844) 2025-11-02 10:00:53 -05:00
Clement Tsang beaeb03e90 refactor: remove custom layout constraint implementation (#1836)
As noted in #1406, I don't need the custom `Constraint` setup anymore. This also starts the work to refactor some really bad code around layouts.
2025-10-13 08:53:43 +00:00