Commit graph

255 commits

Author SHA1 Message Date
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
Wesley Moore
577fda96fc
Implement support for FreeBSD (#766)
* WIP FreeBSD support

* Implement get_cpu_data_list for FreeBSD

* Implement disks for FreeBSD

It doesn't work though as sysinfo doesn't make the device name available.

* Use libxo to read process cpu info on FreeBSD

* Populate get_io_usage with libxo too

Actual I/O stats still aren't populated though as there's not an
easy source for them.

* Share more processes code between macos and freebsd

* Extract function for deserializing libxo output on FreeBSD

* Implement filtering of disks in FreeBSD

* Clean up memory data collection

* Update module docs
2022-07-23 20:44:29 -04:00
Clement Tsang
4ceaf8d008
deps: migrate to starship-battery (#724)
Migrates the `battery` dependency to the more actively maintained
`starship-battery` fork, found at https://github.com/starship/rust-battery.
See https://github.com/svartalf/rust-battery/pull/92 for more information.
2022-05-06 17:16:57 -04:00
ClementTsang
2401e583fb refactor: consolidate time graph components
This consolidates all the time graph drawing to one main location, as well
as some small improvements. This is helpful in that I don't have to
reimplement the same thing across three locations if I have to make one
change that in theory should affect them all. In particular, the CPU
graph, memory graph, and network graph are all now using the same,
generic implementation for drawing, which we call (for now) a component.

Note this only affects drawing - it accepts some parameters affecting style
and labels, as well as data points, and draw similarly to how it used to
before. Widget-specific actions, or things affecting widget state,
should all be handled by the widget-specific code instead. For example,
our current implementation of x-axis autohide is still controlled by the
widget, not the component, even if some of the code is shared. Components
are, again, only responsible for drawing (at least for now). For that
matter, the graph component does not have mutable access to any form of
state outside of tui-rs' `Frame`. Note this *might* change in the
future, where we might give the component state.

Note that while functionally, the graph behaviour for now is basically
the same, a few changes were made internally other than the move to
components. The big change is that rather than using tui-rs' `Chart`
for the underlying drawing, we now use a tweaked custom `TimeChart`
tui-rs widget, which also handles all interpolation steps and some extra
customization. Personally, I don't like having to deviate from the
library's implementation, but this gives us more flexibility and allows
greater control. For example, this allows me to move away from the old
hacks required to do interpolation (where I had to mutate the existing
list to avoid having to reallocate an extra vector just to insert one
extra interpolated point). I can also finally allow customizable
legends (which will be added in the future).
2022-04-28 23:36:53 -04:00
Clement Tsang
476a4ad910
deps: update dependencies (#713)
Updates various dependencies in both Cargo.toml and Cargo.lock.
2022-04-27 19:23:34 -04:00
Clement Tsang
f2b8b4e842
other: add manpage file to cargo deb config, move back to build script (#693)
Adds the asset for the manpage to cargo deb config. Also moves the generated manpage file to a .1.gz file. Also, moves back to a build script since that was causing some issues for the automatic Cargo.toml fields detection for manpage and completion generation.

To prevent compilation from happening every time, and only in CI, we use an env var to avoid generation steps.
2022-03-11 06:45:05 -05:00
Clement Tsang
8087f0b636
ci: add manpage generation, migrate build script (#692)
Adds manpage generation to the build process, as well as following the xtask concept of adding additional build scripts that only need to run on deploy/nightly as opposed to `build.rs`. Note this doesn't follow the recommended method of using workplaces because I don't really want to shift the entire repo structure just for this.

More on xtask: https://github.com/matklad/cargo-xtask
2022-03-10 05:15:48 -05:00
Clement Tsang
92ec359936
deps: update regex to 1.5.5 due to CVE (#691)
Prompted by the following CVE: https://blog.rust-lang.org/2022/03/08/cve-2022-24713.html

Addresses it by following the recommended fix of updating to 1.5.5.
2022-03-08 15:16:56 -05: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
Clement Tsang
2eb865247e
deps: update dirs to 4.x (#682)
Updates the dirs dependency to 4.0.0. This is a breaking change but should not affect bottom.
2022-02-25 05:21:46 -05:00
Clement Tsang
5f042aef94
deps: update procfs and testing deps (#681) 2022-02-25 05:02:15 -05:00
Clement Tsang
c2bfcec40e
deps: update sysinfo to 0.23.4 (#678) 2022-02-24 23:12:37 -05:00
shurizzle
c0feff3c01 Add support for nvidia GPUs 2022-02-13 00:07:44 +01:00
Clement Tsang
8587af6936
uptick: 0.6.8 (#670)
Uptick to 0.6.8.
2022-02-01 21:01:32 -05:00
Clement Tsang
d7dc710ddb
uptick: 0.6.7 (#667)
Uptick to 0.6.7, with appropriate updates to the README and changelog.
2022-01-31 16:40:50 -05:00
Guillaume Gomez
e195b056b0 Update sysinfo version 2022-01-20 13:00:15 +01:00
Clement Tsang
cf08f935dc
deps: update time to 0.3.5 (#643)
Updates time to 0.3.5: https://github.com/time-rs/time/blob/main/CHANGELOG.md#035-2021-11-12
2021-12-23 17:31:41 -05:00
Clement Tsang
5526fe738d
uptick: 0.6.6 (#638) 2021-12-22 14:18:50 -05:00
Clement Tsang
065ffdbc78
uptick: 0.6.5 (#628) 2021-12-19 13:04:10 -05:00
Clement Tsang
ea0c7b49b7
deps: bump deps, remove chrono (#600)
Bumps up some dependencies and removes chrono, switching to the time crate instead.

One of side-effects of this change is that local time seems to not work (?)... so all logs are now in UTC. Oh well, this doesn't affect general user behaviour so I'm fine with it.
2021-10-17 21:33:07 -04:00
Randy Barlow
d6a70fcd02
Run cargo update
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
2021-09-18 12:26:30 -04:00
Randy Barlow
72e97a2eaf
RUSTSEC-2021-0003: Update smallvec
https://rustsec.org/advisories/RUSTSEC-2021-0003

Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
2021-09-18 11:53:44 -04:00
Randy Barlow
7600519682
RUSTSEC-2021-0093: Update crossbeam-deque
https://rustsec.org/advisories/RUSTSEC-2021-0093

Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
2021-09-18 11:53:04 -04:00
Clement Tsang
c7626057c9
uptick: 0.6.4 (#576) 2021-09-12 14:02:11 -04:00
Clement Tsang
aabbc4fd95
bug: fix crashes for kernel patch versions > 255 (#575)
Solved by updating procfs to 0.10.1. Thanks to hasali19 for finding and looking into this!
2021-09-12 13:48:01 -04:00
Clement Tsang
2736dc9b35
refactor: switch to manual implementation of meminfo parse (#548)
Manually parse `/proc/meminfo` for the purposes of memory usage.
2021-07-17 22:27:40 -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
ClementTsang
330a9e8abd other: Remove '-nightly- from nightly version 2021-06-29 08:19:36 -04:00
ClementTsang
8a8360726b docs + other: Mention Ubuntu in install, bump to 0.6.3-nightly 2021-06-27 20:12:09 -04:00
ClementTsang
0bbee6743f other: Add 'nightly' to version to Cargo.toml 2021-06-27 19:52:48 -04:00
Clement Tsang
985959ec1c
uptick: 0.6.2 (#526) 2021-06-26 14:03:16 -04:00
Clement Tsang
4569532fb1
deps: update sysinfo to 0.18.2 (#524) 2021-06-26 02:14:44 -04:00
Clement Tsang
63f9ed6199
deps: Switch back from dirs-next to dirs (#492)
Since it's supported again, seems like a good time to switch back to
dirs.
2021-06-06 18:58:53 -04:00
Clement Tsang
733d0795db
refactor: remove old traces (#486)
Removes some old trace lines for cleanup
2021-05-23 00:29:31 -04:00
Clement Tsang
6847f2ff0c
refactor: split up data collection by OS (#482)
Refactor to split up data collection by OS and/or the backing library. The goal is to make it easier to work with and add new OS support, as opposed to how it was prior where we stored OS-independent implementations all in the same file.
2021-05-15 21:57:02 -04:00
Clement Tsang
ee6228c2b6
refactor: switch to procfs library (#479)
Switch the Linux proc parts to the procfs library: https://crates.io/crates/procfs.
2021-05-13 23:41:43 -04:00
Clement Tsang
b1b1e94e6b
uptick: 0.6.1 (#475) 2021-05-11 19:03:15 -04:00
Clement Tsang
244a17cbef
uptick: 0.6.0 (#471)
Update versions to 0.6.0.
2021-05-09 17:51:05 -04:00
Clement Tsang
e367a37b1a
deps: Update dependencies 2021-05-08 (#466)
Did not update crossterm (and tui-rs) since it seems to have resulted in a massive CPU usage increase. Also fix minor clippy error with a duplicated to_string call.
2021-05-08 19:55:01 -04:00
Clement Tsang
405ce64a02
refactor: Switch from fnv to fxhash (#444)
Switches to fxhash from fnv, which should be a bit faster.
2021-04-04 20:48:19 -04:00
Clement Tsang
cb1191ff35
deps: Update various deps as per 2021-02-19 (#420)
Major update is tui-rs from 0.13 to 0.14.  This change allows us to update our tables to make them look nicer!
2021-02-19 17:57:39 -05:00
Clement Tsang
f2e6b9232d
deps: Update beef as per RUSTSEC-2020-0122 (#402) 2021-02-03 15:07:13 -05:00
Clement Tsang
58e18da0c3
uptick: 0.5.7 (#399) 2021-01-30 20:23:18 -05:00
Clement Tsang
e30518bf62
bug: Fix missing sorting arrow when for non-% mem (#389)
Fixes a bug where you could make the sorting arrow disappear in the mem column if you did:

1. Go to proc widget
2. Switch to memory values from %
3. Press `m`
2021-01-12 21:41:59 -05:00
Clement Tsang
837c382ee9
refactor: Cut out sysinfo from Linux builds (#368)
Refactors to use only heim for Linux builds. This is now much easier to do since the 0.1 version of heim works fine for ARM. This is ideal since having to rely on two separate sources of data isn't the greatest if we can avoid it.

Sysinfo is still required for macOS and Windows, though. Temperature sensors do not work for those from heim, and for some reason, networks also don't work on Windows with heim...?

My personal CPU core calculation is also currently Linux-only, and as such, I'll still rely on sysinfo for Windows and macOS for now.

This isn't really a big optimization or anything btw. Just something I wanted to try.
2020-12-21 20:24:27 -05:00
Clement Tsang
bfdaa09e3a
uptick: 0.5.6 (#362) 2020-12-17 18:42:08 -05:00
Clement Tsang
4471ecc161
deps: Update various dependencies (#358) 2020-12-16 00:41:54 -05:00
Clement Tsang
49cfc75aca
deps: Update to heim 0.1 (#354) 2020-12-15 21:34:45 -05:00
Clement Tsang
7272786e86
uptick: 0.5.5 (#356) 2020-12-15 00:05:18 -05:00
Clement Tsang
5d7697d3da
refactor: More minor optimization changes (#353)
- Move data rather than cloning during data transferring step
- Try using beef?
2020-12-12 21:06:46 -05:00
Clement Tsang
8c4ad90e67
refactor: Another small optimization pass (#350)
Making some small changes that would hopefully improve performance a bit.

- Remove redundant string generations for CPU data conversion
- Switch to fnv for PID hashmap and hashsets
- Use buffered reading to avoid having to store too many lines as strings
2020-12-11 19:54:02 -05:00
Clement Tsang
74f4b386d7
uptick: 0.5.4 (#348) 2020-12-10 22:57:54 -05:00
Clement Tsang
e56367fcbb
refactor: Clean up some parts of data harvesting (#336) 2020-12-03 23:45:54 -05:00
Clement Tsang
86169871cb
refactor: Simplify data harvesting (#335)
Refactors the data harvesting system function names.
2020-11-30 19:40:17 -05:00
Clement Tsang
867b8d43e9
deps: update dependencies (#334) 2020-11-28 18:29:23 -05:00
ClementTsang
7131a05e62 uptick: 0.5.3 2020-11-26 19:36:01 -05:00
ClementTsang
781691d3c9 uptick: 0.5.2 2020-11-25 20:39:37 -05:00
Clement Tsang
6aa0dd64a6
other: Switch to once_cell (#324)
Switch from lazy_static to once_cell.
2020-11-22 16:44:40 -05:00
ClementTsang
2d127f198e ci: uptick to 0.5.1, fix ci 2020-11-22 02:33:48 -05:00
ClementTsang
1cb580b91f docs: Update README and changelog for 0.5.0 2020-11-20 14:47:55 -05:00
Clement Tsang
e43456207b
feature: default colour schemes (#296)
Adds some default colour choices to choose from.
2020-11-15 05:16:47 -05:00
Clement Tsang
d0254dfb08
deps: update anyhow, crossterm, futures, regex, thiserror, toml (#293)
Updates dependencies to their most recent versions as of Nov 02, 2020.
2020-11-02 23:52:45 -05:00
Clement Tsang
271592936b
deps: Bump dependencies that require uom <0.29.0 (#274)
Updates dependencies that depend on uom (battery and heim), due to requiring 0.30 for the newest nightly version of Rust.
2020-11-02 15:04:54 -05:00
Clement Tsang
309ebd8dc3
deps: switch from dirs to dirs-next (#285)
Addresses RUSTSEC-2020-0053.
2020-11-01 22:03:29 -05:00
Clement Tsang
5675d8192c
other: more traces to debug, update some deps (#264)
Minor update to update some dependencies and remove some traces.
2020-10-02 22:12:07 -04:00
Clement Tsang
7eff79395d
bug: fix chart and data point overlap (#256)
Update to tui-rs, which fixes #255, as well as some miscellaneous things like updating changelogs and travis.
2020-09-27 14:23:18 -04:00
Clement Tsang
750d8f3cb7 refactor: tui-rs 0.11.0 refactor (#253)
Refactors tui-rs usage to the new 0.11.0 release. This release also fixes the highlighting bug from #249, and now, expanding a widget no longer overrides the widget title colour.

This commit also introduces #255, but that seems to be easy to bandaid so hopefully it will get fixed soon?
2020-09-26 20:21:59 -04:00
Clement Tsang
eb8295c430
feature: Adds tree view (#223)
Adds a tree process view to bottom.

Currently uses a pretty jank method of column width setting, should get fixed in #225.
2020-09-06 23:03:03 -04:00
Clement Tsang
a4ddd649e1
refactor: Update error messages w/ anyhow and thiserror (#216)
Refactoring and updating of error messages + tests to be more useful.
2020-08-31 23:59:33 -04:00
ClementTsang
c6a20a1420 deps: Update battery, sysinfo 2020-08-29 20:41:51 -04:00
ClementTsang
81ec7c311b uptick: 0.4.7 2020-08-26 20:34:30 -04:00
Clement Tsang
7e8bf95179
uptick: 0.4.6 (#200) 2020-08-25 01:01:14 -04:00
Clement Tsang
7475f24a4e
feature: Add hook to properly clean up in the case of a kill call
Adds a hook to properly clean up the program in case the program gets SIGTERM'd.
2020-08-21 16:00:14 -04:00
Clement Tsang
1dc9346d3b
refactor: Remove ps calls
Removes and refactor ps calls that... should have not been there in the first place.
2020-08-21 01:33:12 -04:00
Clement Tsang
3c373d7129
feature: Add appox. total mem as an option for processes and basic mem
Adds a way to display the memory value as a column in the processes widget and the basic memory widget, rather than just the percentage.
2020-08-17 15:41:37 -04:00
Clement Tsang
08e49b63c1
refactor: Revert tui upgrade to 0.10
Reverts tui upgrade, there are some bugs and issues - namely, issues with rendering text.
We can revert this commit when those bugs are dealt with (should be fine after 0.10.1, tested building from the repo).
2020-08-16 04:25:59 -04:00
Clement Tsang
d0cc6078df
deps: Update dependencies, drop MSRV
Update dependencies to most recent versions if applicable. Refactor to deal with breaking changes. Drop MSRV due to dependency issues, just support stable and later.
2020-08-11 20:22:39 -04:00
Clement Tsang
30bdaa6073
feature: add full command to process widget
This PR adds the ability to toggle between the process name and process path. Currently, this uses `P` as the modifier key.

Currently, the longer command names are dealt with by forcefully changing the width of the columns, but this can be handled in a more graceful manner IMO.
2020-08-07 04:29:20 -04:00
ClementTsang
cc1ed4fbfd uptick: update Cargo.lock to 0.4.5 2020-07-08 15:43:28 -04:00
ClementTsang
be6f824a43 clippy: clippy error due to redundant conversion
Fixes a redundant usize to usize conversion.
2020-07-06 02:36:24 -04:00
ClementTsang
121d483b50 revert: Revert "deps: update cargo.lock"
This reverts commit f8127465b8.
2020-07-06 02:25:14 -04:00
ClementTsang
f8127465b8 deps: update cargo.lock 2020-07-06 02:09:10 -04:00
ClementTsang
3d8a8b4e85 deps: update typed-builder to 0.6.0 2020-05-19 21:17:01 -04:00
Clement Tsang
12e4777d97
change: remove slash, change scroll behaviour on cpu
- Removal of the old slash-space-to-hide behaviour of CPU widget
- Scrolling onto a specific entry will only show that entry
- Showing average is now default
2020-05-16 22:38:19 -04:00
ClementTsang
a074808a00 deps: update cargo.lock 2020-05-15 00:37:10 -04:00
ClementTsang
2ae2ebd6d8 deps: update sysinfo 2020-05-14 22:22:29 -04:00
ClementTsang
be6fb5fc4d deps: update cargo.lock 2020-05-11 23:53:43 -04:00
Clement Tsang
7b5685bf44
refactor: remove redundant empty checks in graphs
Now that the fix for empty data is patched in tui, these checks are
redundant.
2020-05-11 01:32:39 -04:00
ClementTsang
56d6771d1b refactor: re-enable tui-rs linear interpolation 2020-05-10 17:01:45 -04:00
Clement Tsang
a71d991695
refactor: avoid using max checks, use saturating_sub instead 2020-05-07 01:09:24 -04:00
ClementTsang
453c10e7c5 docs: update README and CHANGELOG for 0.4.1 2020-05-05 17:56:01 -04:00
ClementTsang
c8afe0d4f8 chore: support MSRV of 1.40.0 2020-05-04 17:45:11 -04:00
ClementTsang
6e81fbeebf change: more advanced searching and filtering 2020-05-02 16:01:07 -04:00
ClementTsang
6be5ce55a2 chore: update Cargo.lock 2020-04-29 21:53:19 -04:00
Clement Tsang
2faf3c6592
refactor: revert linear interpolation until tui fix comes 2020-04-28 16:44:10 -04:00
ClementTsang
24f5717125 cargo: switch to personal fork of tui-rs for now to deal with subtraction bug in lines 2020-04-26 20:18:29 -04:00
Clement Tsang
cf48561777
feature: add battery health percentage 2020-04-26 00:11:34 -04:00
ClementTsang
bc571588e4 refactor: Update tui to 0.9; refactor with new features 2020-04-18 18:05:41 -04:00
Clement Tsang
163f6823a2
feature: Add battery widget (#120) 2020-04-16 20:06:50 -04:00
ClementTsang
99516ca143 chore: Delete docs folder and update lock 2020-04-09 15:28:43 -04:00
dependabot-preview[bot]
28c27272d7
deps: sysinfo from 0.12.0 to 0.13.0 (#112) 2020-04-09 11:13:52 -04:00
ClementTsang
502b821144 chore: Add Cargo.lock back in 2020-04-08 19:44:29 -04:00
ClementTsang
9c6bfe84a2 Update .gitignore. 2019-09-04 16:55:00 -04:00
ClementTsang
2b8676ecf8 Added TODO list, and started more work. 2019-09-04 16:53:05 -04:00
ClementTsang
a1923e198c Setup. 2019-09-03 23:27:25 -04:00