149 Commits

Author SHA1 Message Date
Yuri Astrakhan
5eb4fbde5d
chore: fix certain uninlined string format uses (#1310)
* Fixed uninlined args

First ran this, and fixed a few more similar issues by hand

```
cargo clippy --workspace --fix --benches --tests --bins -- -A clippy::all -W clippy::uninlined_format_args
```

Note that in a few cases, format args were passed by ref - which is actually a tiny perf hit - compiler would not be able to optimize them.

* revert change here

since it contains a non-inlineable variable I'm not a fan of using it partially here

* revert

given the other formats above/below I would prefer keeping it like this

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2023-11-15 03:47:22 -05:00
Yuri Astrakhan
1e16456d5f
chore: Minor cleanup - remove un-needed ident qualifiers (#1307)
Keep code a bit tidier and consistent (i.e. if an identifier already has a `use` entry above, why in some cases still prove a full path to it?)
2023-10-22 22:29:03 -04:00
Clement Tsang
e8f6d4853a
other: appease clippy after Rust 1.72.0 (#1281)
* deps: use clap 4.4.0 to remove is-terminal

* fmt

* appease clippy

* fmt again

* Revert "deps: use clap 4.4.0 to remove is-terminal"

This reverts commit 78aa6ec8481d38357adc09e262aa5df87796b6c7.
2023-08-24 20:26:46 -04:00
Clement Tsang
4ac3b43260
docs: update time-related documentation (#1222)
* docs: update time-related documentation

* fix retention too
2023-06-24 01:36:36 -04:00
Clement Tsang
cc3833289f
feature: support human times for rate (#1221) 2023-06-23 03:42:16 -04:00
Clement Tsang
0b7f4c745d
other: fix humantime-related documentation, add tests, support numbers + strings in toml (#1220)
* update documentation and support either numerical times or human times for time_delta and default_time_value

* update docs

* give more human times on error
2023-06-22 00:01:01 -04:00
Clement Tsang
751abecfe3
other: take ownership of config and matches when building App (#1215)
The clap matches/config struct was taken in as a reference when building
the App structure. However, we do not need to keep these around after
this, so we can instead take ownership of the match/config and drop it
after to save a bit of memory.
2023-06-19 01:47:57 -04:00
Clement Tsang
d6b6e0aea9
refactor: move out bits/bytes enum to utils (#1211) 2023-06-17 02:08:11 -04:00
Clement Tsang
635e82a8a2
refactor: remove typed builder from App struct (#1176)
Another one on the chopping block. This also moves out the app
widget logic to a separate struct.
2023-05-28 00:46:13 -04:00
Clement Tsang
eccaf11937
feature: support human times for default_time_value and time_delta (#1172)
* feature: support human times for time interval and default range

* add tests, fix not using ms

* appease clippy

* changelog
2023-05-26 00:42:40 -04:00
Clement Tsang
b9c106c9cf
refactor: remove unused typed-builder proc macro usage in options (#1156) 2023-05-16 00:03:34 -04:00
Clement Tsang
3a8d85d487
refactor: use macros for initializing canvas styles (#1149)
* refactor: use macros for initializing canvas styles

* add quotes

* Simplify macro

* update tests

* more renaming
2023-05-13 05:22:09 -04:00
Clement Tsang
dae65bcd56
bug: fix certain custom column combinations causing issues (#1140)
* docs: update some docs related to processes

* bug: temp bandaid on column feature to avoid dupes issue
2023-05-09 19:20:34 -04:00
Clement Tsang
605314d44c
feature: add customizable process columns (#1115)
* feature: add customizable process columns

* Add some tests and actual logic

* more tests

* update changelog

* update config field

* even more tests

* update documentation

* more testing
2023-04-29 19:21:48 -04:00
Clement Tsang
3618449d42
deps: update clap to 4.x (#1107)
* deps: update clap to 4.x

* changelog

* fix test

* add gpu feature/flag test
2023-04-21 00:07:34 -04:00
Twan Stok
1b1e80ec3c
feature: add buffer and cache memory (#1063)
* First implementation of cache memory data collection, mostly copied from RAM and swap implementations

* First implementation of cache memory display, copied from RAM and swap implementations. placed cache as second in the list as it is more similar to the RAM than any other item in the list

* expanded comment to explain method.

* rustfmt

* all cache-related code excluded on windows, in the process refactored src/data_conversion.rs convert_mem_label() to convert a single label instead of all at once

* better factoring-out of cache memory logic to allow individual disabling

* added --enable_cache_memory flag, disabled cache memory collection by default

* renamed CCH to CHE
not sure how i messed that up

* changelog updated

* Added command line flag documentation

* updated config file documentation

* specified that buffer and cache memory display does not work on windows

* resolved merge conflicts

* added documentation to cache memory data collection

* capitalized Windows

* implemented missing canvas styling logic

* fixed misplaced no-windows flag

* reduced colour collisions, as cache colour was the same as the first GPU colour

* made FIFTH_COLOUR constant windows-only

* Revert "made FIFTH_COLOUR constant windows-only"

This reverts commit 72698f1dd7e2de7dbda843708ece6a3dba66f94f.

* made FIFTH_COLOUR constant non-windows-only

* minor fix for basic mode row count

* Update src/app/data_harvester/memory/sysinfo.rs

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>

* Update src/canvas/widgets/mem_basic.rs

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>

* updated default_config.toml

* formatting

---------

Co-authored-by: ClementTsang <34804052+ClementTsang@users.noreply.github.com>
2023-04-12 22:51:41 -04:00
Clement Tsang
e61e5f2af6
deps: Switch to using hashbrown for general hashmap usage (#1092)
* deps: replace fxhash with hashbrown + ahash

* replace std hashmap with hashbrown + ahash

* fmt

* some more fmt
2023-04-12 00:03:27 -04:00
Clement Tsang
994c11e3b3
refactor: migrate network collection to sysinfo (#1041)
* refactor: migrate network collection to sysinfo

* remove net feature from heim

* comments and changelog
2023-03-04 01:34:52 -05:00
Clement Tsang
e8ae1a265a
other: switch to toml_edit (#1034) 2023-03-01 00:14:47 -05:00
Clement Tsang
cabc594279
refactor: clean up some options code (#1029)
* remove some dead code

* use macros to help clean up clutter for binary flags

* add test

* group

* fix using gpu feature
2023-02-25 04:24:38 -05:00
Clement Tsang
edc61d428c
bug: fix selected text bg colour being wrong if only the fg colour was set (#1021)
* rename file to be more generic

* fix selected text BG colour being wrong by default

* update changelog

* add test for bug
2023-02-18 00:51:13 -05:00
spital
021a727f19
other: replace deprecated value_of and is_present in clap
* Upgrade clap to 3.2.2 to allow future fix warnings

* cargo fmt fix

* Replaced deprecated `value_of` and `is_present`, builds with no warnings, clap 3.2.2

* cargo fmt

* updated according to comments. builds fine, cargo test fine

* Match some versions

* Update Cargo.lock

* Fix typo, mb

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2023-01-31 19:34:52 -05:00
Clement Tsang
4870ff365a
refactor: change name of some stuff, add some comments (#992)
* some quick refactoring first

* add todo for bug report template
2023-01-20 00:08:02 -05:00
Rareș Constantin
f8db3403af
other: Dynamic battery widget (#975)
* Added dynamic battery widget

For bottom to know that there are no batteries on the system,
I added the battery::Manager to the options.rs file because
here is the first moment bottom verifies battery configuration
by reading the config file, which may or may not contain the
battery field, but for a better UX, it doesn't matter what bottom
finds in the config file now, if it doesn't retrieve battery data,
it just ignores the battery widget all together.
If needed, it can be adjusted so that if the config file contains
the battery field, it will still show the widget.

* CFG guarding for BATTERY module

I guarded the options.rs in two places for battery module that can be missing in the feature list.

Co-authored-by: RaresCon <RaresCon>
Co-authored-by: NitrogenDev <44950964+NitrogenDev@users.noreply.github.com>
2023-01-15 12:06:42 -05:00
Clement Tsang
32da5f39bb
bug: fix dot marker setting not being considered (#934)
* bug: fixes marker settings being ignored while rendering time charts

* appease clippy
2022-12-27 06:37:47 -05:00
Chon Sou
4272dd0c2d
feature: Adding default expanded option to commandline and config (#919)
* [#822] adding default expanded option to commandline and config

* refactoring (#919)

* nullifying default expanded when in basic mode (#919)
2022-12-06 19:34:41 -05:00
Clement Tsang
913c9ed5c6
refactor: move widgets out of the app folder nesting (#917)
Moves the widget folder away from being nested in the app hierarchy.
2022-11-28 00:26:58 -05:00
Clement Tsang
4f00434210
other: non-normalized process CPU% cleanup and docs (#910)
* refactor: simplify non-normalized code

* update docs

* appease clippy

* add comment

* unnormalized

* fix issues on non-Linux regarding typos/imports
2022-11-21 05:28:42 -05:00
database64128
71bc6c940e
feature: per-core process cpu usage percentage (#899) 2022-11-21 03:12:47 -05:00
Clement Tsang
63df220a38
other: clean up some strings (#904)
* other: clean up some strings

* formatting
2022-11-20 02:21:20 -05:00
Clement Tsang
50768907ec
feature: add custom retention periods for data (#892)
* feature: add custom retention periods for data

* docs: update changelog

* docs: update docs
2022-11-13 01:51:10 -05:00
Clement Tsang
99fc5fc2c8
refactor: run cargo +nightly fmt with group_imports (#885)
* refactor: add some disabled unstable fmt options

* run cargo +nightly fmt with group_imports

* separate out the cfg-specific imports for clarity
2022-11-10 01:22:19 -05:00
Clement Tsang
b879c36588
refactor: move some state code around (#839) 2022-10-16 03:10:30 -04:00
Justin Martin
dd003101a0
enable gpu mem cli and update docs for arc/gpu mem (#836) 2022-10-16 00:08:38 -04:00
Clement Tsang
a949740c94
other: make gpu memory collection configurable (#835)
Follow-up to #794, this makes GPU memory collection toggleable.
2022-10-15 16:50:21 -04:00
Justin Martin
bd35bbdc9c
feature: add gpu ram collector for nvidia feature flag (#794)
* add gpu ram collector for nvidia feature flag

* add row for TX in basic layout

* size gpu point_vec

* use vec for mem basic widget drawing

* remove to_owned

* code review: change mem tuple to struct with cfg fields, rename mem_basic ratio and use vec macro for layout

* build on freebsd
2022-10-15 15:08:48 -04:00
Clement Tsang
2a740f48f7
refactor: tables V2 (#749)
* refactor: move to new data table implementation

* more work towards refactor

* move disk and temp over, fix longstanding bug with disk and temp if removing the last value and selected

* work towards porting over CPU

work towards porting over CPU

fix typo

partially port over cpu, fix some potentially inefficient concat_string calls

more work towards cpu widget migration

some refactoring

* sortable data

sortable data

more refactoring

some sort refactoring

more refactoringgggg

column refactoring

renaming and reorganizing

more refactoring regarding column logic

add sort arrows again

* move over sort menu

* port over process

port over process

precommit

temp

temp two, remember to squash

work

fix broken ltr calculation and CPU hiding

add back row styling

temp

fix a bunch of issues, get proc working

more fixes around click

fix frozen issues

* fix dd process killing

* revert some of the persistent config changes from #257

* fix colouring for trees

* fix missing entries in tree

* keep columns if there is no data

* add and remove tests

* Fix ellipsis
2022-10-12 16:25:38 -04:00
Justin Martin
6e0bc96093
feature: Add zfs feature flag for arc memory (#784)
* freebsd clippy

* add arc support

* Code Review: moved runtime cfg checks to compile time and formatting

* remove compile platform checks

* add zfs feature flag to get_arc_data
2022-08-22 02:47:22 -04:00
Clement Tsang
c1a7979be7
refactoring: Move around components and state (#746)
A small refactor to move some state/component files around in terms of file structure and code location. Should have no effect on logic.
2022-06-03 04:49:39 -04:00
ClementTsang
0831a56341 refactor: simplify partial ordering fn, clean up code 2022-05-15 21:02:33 -04:00
ClementTsang
ed17264832 refactor: more work towards unifying process code
A bunch of work towards also refactoring how the process widget
gathers and converts data.
2022-05-15 21:02:33 -04:00
ClementTsang
7ee6f6a737 refactor: begin migration of process widget 2022-05-15 21:02:28 -04:00
ClementTsang
2a65bc95fe refactor: consolidate disk and temp table drawing, refactor state
Disk and temp tables now share the same drawing logic, as well as
consolidating the "text table" states into one single state, as opposed
to two separate states (one for scroll and one for width calculations).

BTW I know this is kinda an ugly design - creating a giant struct to
call a function - hopefully that's temporary, I want to do a bigger
refactor to consolidate more stuff together and therefore avoid this
problem, but baby steps, right?
2022-05-07 20:53:52 -04:00
ClementTsang
a92313a5be bug: fix panic if battery feature was disabled 2022-05-01 16:57:03 -04:00
Clement Tsang
d297ee4639
refactor: remove some simple as-casts (#697)
Remove some simple as casts that are easy to change to .into(), or easy to check.
2022-03-27 22:01:06 -04:00
Clement Tsang
01f6bddab6
deps: update clap to 3.x (#690)
Updates bottom to use clap 3.x, along with some small refactoring changes.
2022-03-07 22:53:02 -05:00
Mateusz Mikuła
72f2aeaab6
Fix Clippy warnings (#647) 2021-12-28 14:31:42 -05:00
Clement Tsang
cb680dd12e
other: Add RISC-V to unofficially supported targets (#565)
Adds CI actions and documentation for RISC-V.
2021-07-31 16:24:16 -04:00
Clement Tsang
968b7bb2de
bug: Fix missing config options in docs and default config (#542)
Adds the missing hide_time and battery config option to the default config and corresponding documentation.

Should probably automate the generation of this somehow tbh, though this might change when I add in-app config (soon™)
2021-07-14 19:08:54 -04:00
ClementTsang
70242bc2b2 refactor: remove beef dependency for now
This is just a temp change, I wanted to remove it just for clarity's
sake among dependencies, and will probably add it back in the future.

For now I'll just stick to std's beef.
2021-07-12 22:31:57 -04:00