Commit Graph

782 Commits

Author SHA1 Message Date
Clement Tsang a62fdc5e04 deps: bump clap to 4.2.7 and libc to 0.2.143 (#1136) 2023-05-07 04:35:42 -04:00
Clement Tsang b60a62d5f0 other: keep running even if logger fails to initialize (#1132)
This just makes it so that even if the logger is enabled, if it fails to
initialize (e.g. read-only directory), bottom will still continue to
start up, and just print a warning that the logger encountered an issue.
2023-05-06 12:56:01 -04:00
Clement Tsang 4cdedffaee other: use sysinfo for temps for android and ios (#1130) 2023-05-06 00:58:19 -04:00
Yuxuan Shui 80183b8b1c feature: show running time of processes (#801)
* feature: show running time of processes

* fix clippy

* add time searching

* update changelog

* use safer duration for linux in case of 0

* some cleanup

* quick hack to deal with some Windows processes returning unix epoch time as start time

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2023-05-02 01:33:53 -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 c99e98c6d3 other: edit some comments 2023-04-28 00:00:23 -04:00
Clement Tsang 109498c1db deps: remove const_format dependency (#1114)
* deps: remove const_format dependency

I was importing it for just one use case, but I could just define the
const string manually and not pull it in at all.

* update husky entry
2023-04-23 00:53:21 -04:00
Clement Tsang 4a86b1c21b refactor: add fallback process signal (#1112)
* refactor: add fallback process signal

* also update dialog logic to be able to fall back in some cases
2023-04-22 00:19:05 -04:00
Clement Tsang 8b81dfba47 bug: fix side borders in basic mode (#1110)
Seems like I broke this when migrating from tui-rs to ratatui. This just
uses explicit enum variants to set my side borders and a test to try and
make sure this doesn't happen again.
2023-04-21 00:07:45 -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
Clement Tsang 1c95411494 feature: add current battery charging state, update field names (#1106) 2023-04-19 00:46:57 -04:00
Clement Tsang 6ea3635b28 deps: migrate from tui to ratatui (#1086) 2023-04-16 00:04:16 -04:00
Clement Tsang 8c6ae3bbc7 other: update default config generation to show cache (#1102) 2023-04-15 02:01:35 -04:00
Clement Tsang 513024aefd refactor: clean up data init sleep duration code (#1101)
* refactor: clean up data init sleep duration code

* const
2023-04-15 02:01:25 -04:00
Clement Tsang 20902e87b9 other: Speed up first draw and first data collection (#1100)
* other: add first draw immediately after initialization

Previously, I would only do the first draw after an event triggered, so
this just makes it so that I *always* draw once first. Some widgets look
a bit weird with no data, but this is fine I guess if we want to gain a
bit of responsiveness.

* other: potentially shorten first time to get data

* other: move event loop thread init earlier in app initialization
2023-04-15 00:15:36 -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 72698f1dd7.

* 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 62474be52a deps: bump once_cell and related dependencies (#1090)
* deps: bump once_cell and related dependencies

Now that we've removed heim, I can bump up other dependencies that
relied on newer versions of once_cell.

* Add some dhat code

* dhat gitignore
2023-04-11 03:22:32 -04:00
Clement Tsang 9edde9b133 refactor: migrate disk collection code off of heim, remove heim (#1064)
Migrates existing heim-based disk data collection code off of it to either sysinfo or vendored code based on heim/sysinfo/other sources. This also allows us to remove heim completely from bottom.

---

* refactor: fix some refresh code

* remove async from the freebsd code

* some file/implementation organization

Turns out sysinfo lacks a lot of data I need. I can still use it for the
Windows disk usage implementation, but I'm probably going to manually
implement macos/linux usage and all io usage stats.

* more restructuring

* Some other fixes

* remove futures

* ready for some big changes?

* big changes

* linux io + reads

* use lossy conversion for mount point

* add windows refresh

* so long heim, and thanks for all the fish

* fix filter behaviour, remove string allocation when reading lines

* rename unix -> system for more accurate file struct representation

* fix freebsd

* port generic unix partition code

* add bindings and fix errors

* finish macOS bindings for I/O

* disable conform check, this seems to... make disk I/O work on macOS?????

* fix linux

* add safety comments

* more comments

* update changelog

* changelog

* We're going full 0.9.0 for this

* update lock

* fix some typing

* bleh

* some file management

* hoist out get_disk_usage

* fix some stuff for Windows

* typing and remove dead code allow lint

* unify typing

* fix

* fix 2

* macOS fix

* Add bindings file for windows

* add windows implementation

* fix macos
2023-04-10 05:52:46 -04:00
Clement Tsang 37cb59e16f deps: update some minor dependency versions (#1087)
* deps: update some minor dependency versions

Bump some dependency versions as of April 7, 2023. Note I skipped any
updates tied to futures as that's getting removed along with heim in the
near future (heh).

* fix rename on Windows from K32GetPerformanceInfo -> GetPerformanceInfo
2023-04-07 03:48:35 -04:00
Clement Tsang 36f55de4d2 other: add clippy lints to deny todo and unimplemented (#1085) 2023-04-05 00:41:59 -04:00
Clement Tsang 8814bc53e3 other: add test for multiple regexes in filter (#1082) 2023-04-03 01:47:57 -04:00
Clement Tsang 444d2f7ad7 deps: bump sysinfo to 0.28 (#1078)
* deps: update sysinfo to 0.28.0

* 0.28.1

* 0.28.2

* 0.28.3

* 0.28.4
2023-03-27 00:50:21 -04:00
Clement Tsang 7ee6da3776 refactor: unify on using bytes for the memory unit when harvesting (#1077)
* refactor: unify on using bytes for the memory unit when harvesting

* some ordering stuff that doesn't mean much

* some comments

* more fixes

* refactor: rename

* comments v2

* some more cleanup

* remove uninlined_format_args allow
2023-03-26 01:53:43 -04:00
Clement Tsang 358db119bb refactor: clean up some data collection refresh code, refresh sysinfo lists on loop (#1076)
* refactor: clean up some data collection refresh/init code

* move out battery

* missing setting memory value for proc

* stop segfault on macos

* unit

* oopsie
2023-03-25 02:31:11 -04:00
Clement Tsang ac0bf7ca96 deps: switch back to crossterm 0.26.1 with fix to double keypress (#1068) 2023-03-15 01:50:52 -04:00
Clement Tsang c2d66af72f clippy: appease clippy as of Rust 1.68.0 (#1055)
* clippy: fix derivable_impls clippy warning

This was done using `cargo clippy --fix`

* cargo fmt after autofix
2023-03-11 01:20:46 -05:00
Clement Tsang 82c0c3b0e5 refactor: use internal committed memory calculation for Windows (#1051)
* refactor: use internal committed memory calculation for Windows

* comments
2023-03-08 00:08:02 -05:00
Clement Tsang 10d7226b19 other: deny missing safety docs and add them (#1053) 2023-03-08 00:00:50 -05:00
Clement Tsang b745684156 refactor: more data collection cleanup (#1047)
* refactor: more memory collection cleanup

* more cleanup

* clean up data_harvester, remove heim sensor flag

Separate out most individual components to separate functions. Also
remove Linux's usage of heim's sensors feature, since I wasn't using it
apparently.

* clean up GPU section

* fix cond

* fix feature flags

* more cleanup

* even more cleanup
2023-03-07 00:18:24 -05:00
Clement Tsang 8489c4bc10 refactor: Clean up memory collection code (#1045) 2023-03-05 02:31:45 -05:00
Justin Martin 3510563638 re-enable zfs feature (#1044) 2023-03-04 20:10:24 -05: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 caba611036 docs: update changelog and some comments (#1040) 2023-03-03 01:00:33 -05:00
Dmitry Valter 40288c181e fix: is_list_ignored=false filters for network and temperature (#1037)
Use filter logic from network/sysinfo in temperature and network/heim
harvesters. Previously is_list_ignored=false filter configs would
silently accept every sensor and every interface.
2023-03-03 00:33:47 -05:00
Clement Tsang 8cc763cc1b refactor: migrate memory collection to sysinfo for all platforms (#1036)
* cleanup

* refactor: remove heim memory code

* add missing updates, remove heim memory feature

* restrict export visibility

* some refactoring, remove smol

* gpu feature
2023-03-03 00:06:19 -05:00
Clement Tsang c2d94900f3 deps: bump procfs to 0.15.1 (#1038) 2023-03-02 17:40:56 -05:00
Clement Tsang f26d598410 refactor: migrate CPU from heim to sysinfo for all platforms (#1035)
* refactor: migrate CPU from heim to sysinfo for all platforms

* fix windows and macos imports

* simplify a bit of code

* cleanup
2023-03-02 00:03:54 -05:00
Clement Tsang e8ae1a265a other: switch to toml_edit (#1034) 2023-03-01 00:14:47 -05:00
Clement Tsang 44e52d6229 deps: bump nvml to 0.9.0 (#1032) 2023-02-27 19:37:35 -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 78b1126fb4 other: move terminal check after the config check (#1027) 2023-02-20 00:57:09 -05:00
Clement Tsang f1f07945f6 change: show process in tree if any ancestor or descendent matches (#1026)
* refactor: optimize kept list in tree to just store filtered values in a set

* change: show all direct children of a tree process children if the parent matches

* change: show process in tree if any ancestor or descendent matches
2023-02-20 00:15:16 -05:00
Clement Tsang 6d15f01009 other: support hw.temperature-based temps on FreeBSD (#1024)
* other: support hw.temperature-based temps for FreeBSD

* update changelog

* enable sysctl always for freebsd
2023-02-19 18:44:35 -05:00
Clement Tsang f89b243589 feature: support 3-char hex colours (#1022) 2023-02-18 01:55:26 -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
Michael Bikovitsky d956f336a9 feature: Add support for displaying process usernames on Windows (#1016) 2023-02-10 15:01:37 -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 9ad1d8f0b4 other: ignore uninlined_format_args clippy lint for now (#1004) 2023-01-27 18:13:17 -05:00
Clement Tsang 635d173f49 other: explicitly style dd text colours (#995) 2023-01-20 20:53:27 -05:00