Commit Graph

816 Commits

Author SHA1 Message Date
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 594e091a93 bug: fix arguments being unsorted (#1216)
clap v4 apparently changed it so arguments are not sorted by default
like before - this manually sorts the arguments beforehand to achieve
the same effect.
2023-06-19 01:37:22 -04:00
Clement Tsang 7c0eda1034 other: use f32 for process percentage values (#1212)
* other: use f32 for process percentage values

This cuts down memory by a tiny bit, and we don't need a full f64 for
percentage values.

* fix for macos and windows
2023-06-18 02:11: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 2e5d59f84d other: clean up some cfg usage (#1205)
* other: convert some cfg if

* fix
2023-06-13 01:25:20 -04:00
Clement Tsang 531e26ea45 other: post-0.9.2 cleanup (#1203)
* other: some cleanup

* other: add conditional logging macros

* more cleanup

* use compile-time feature for some text in clap
2023-06-12 01:01:07 -04:00
Clement Tsang 9560722318 feature: on Linux, check coretemp and don't fail fast with name generation when gathering temps (#1188)
* feature: also check coretemp on Linux when gathering temps

* update changelog

* add comment

* add logic to check thermal zone if there are no hwmon entries

* cleanup

* handle duplicates between hwmon and thermal zone

* Revert "handle duplicates between hwmon and thermal zone"

This reverts commit 402606cc62f27ba196ef2ade6a669ae84aedf0e0.

* cleanup

* back to running thermal zone if no hwmon

* prevent failure cases

* temp logging

* name refactoring

* port dupe name logic to hwmon

* Cleanup, add fallback to sensor name

* more tests

* Fix log

* update changelog

* cleanup and more tests
2023-06-11 18:12:15 -04:00
Clement Tsang 9ec95a9740 ci: add a build check for aarch64-linux-android (#1124)
* ci: add a build check for aarch64-linux-android

* appease clippy

* use 1.67.0 for Android due to NDK issue

* remove sparse since it is default now for 1.70 and causes issues with older versions anyway
2023-06-11 02:01:56 -04:00
Clement Tsang 2a354f772f other: remaining changes needed to get android to build (#1199)
* other: remaining changes needed to get android to build

* update changelog

* simplify disk os-specific code
2023-06-11 01:35:16 -04:00
Clement Tsang 2ba7394ac2 other: have dummy fallback for disk I/O for unsupported OSes (#1198) 2023-06-11 00:01:14 -04:00
Clement Tsang 13a8e5bf0e refactor: redo how we do get processes between different OSes (#1197)
* refactor: redo how we do some processes between different OSes

* cleanup

* more cleanup

* windows

* freebsd

* clean up linux more, fix broken FreeBSD import

* some more cleanup to remove some big imports
2023-06-10 01:44:15 -04:00
database64128 48422c4111 bug: ntfs3 mounts don't show up (#1191)
Partitions mounted using the ntfs3 driver in linux (mainlined since 5.15)
won't show up because the name didn't match.
2023-06-08 13:07:18 -04:00
Clement Tsang 1cc0e910b4 refactor: remove outdated collection thread code (#1190)
This was going to be used for in-app config, but it's so old that it's
probably better to just rip it out and start anew in that regard.
2023-06-08 02:48:29 -04:00
Clement Tsang f0121e6af4 other: enforce unused_imports lint again (#1189)
* other: enforce unused_imports lint again

I think there shouldn't be any issues with enforcing this now...

* set up cfg block so the logging feature doesn't break clippy

* some cleanup + comments
2023-06-08 02:28:36 -04:00
Clement Tsang 086b622c66 feature: use better names for duplicate temp sensors found by /sys/class/thermal (#1187)
* docs: update changelog

* feature: add a counter to duplicate names if using /sys/class/thermal/

* update changelog
2023-06-08 00:05:30 -04:00
Clement Tsang 358bddf990 bug: when getting Linux temps, don't bail ASAP if they fail (#1186)
* bug: when getting Linux temps, don't bail ASAP if they fail

This meant that if hwmon failed, it would never try and get temperatures
from thermal or GPU. The same is true for thermal failing leading to GPU
never running.

* update docs
2023-06-07 21:47:05 -04:00
Clement Tsang 5e0900584b refactor: change canvas macOS check to compile-time (#1184) 2023-06-04 00:18:24 -04:00
Clement Tsang c6d322263e other: fix links and broken references in doc comments (#1182) 2023-06-03 05:44:52 -04:00
Clement Tsang 852e2e86c7 refactor: remove typed-builder (#1181) 2023-06-02 00:53:38 -04:00
Clement Tsang 4e99f31ad0 deps: bump ratatui to 0.21.0 (#1178) 2023-05-31 00:21:55 -04:00
Clement Tsang 74953455dc refactor: clean up some Linux proc collection code (#1179) 2023-05-31 00:21:34 -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 6b9663a2c2 other: clean up some fixmes (#1171) 2023-05-26 00:19:28 -04:00
Clement Tsang 69318465ae other: simplify termination/event loop logic (#1169)
This just simplifies the logic around ctrl-c and termination logic and
event loop logic to something simpler and without the need for timeouts
and/or atomics.

Instead, we just make termination an event sent by ctrl-c and use the
same receiver for event handling to react to it and break the loop.
2023-05-25 00:13:04 -04:00
Clement Tsang b6dc17cfb3 other: clean up thread event code (#1170) 2023-05-24 01:05:49 -04:00
Clement Tsang caa1d1b88b refactor: remove procfs (#1163)
* refactor: remove procfs, use personal impls/rustix directly

* buffer sharing

* inline

* some cleanup
2023-05-21 00:53:27 -04:00
Clement Tsang 8a49c49267 refactor: remove TypedBuilder for col (#1162)
* refactor: remove TypedBuilder for col

* clean up basic
2023-05-20 01:27:42 -04:00
Clement Tsang 463b0fbef8 refactor: remove TypedBuilder for widget (#1159)
* refactor: remove TypedBuilder for widget

* group together cpu

* clean up proc too
2023-05-18 05:45:07 -04:00
Clement Tsang a1a48bc647 refactor: remove TypedBuilder for col row (#1158) 2023-05-17 02:43:08 -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 bcca7e2621 bug: fix gruvbox cache colour being invalid (#1148)
* bug: fix gruvbox cache colour being invalid

* update changelog
2023-05-12 04:39:07 -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 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