Commit graph

854 commits

Author SHA1 Message Date
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
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