Commit Graph

728 Commits

Author SHA1 Message Date
Clement Tsang 639c93b4c8
other: switch to windows-rs for process killing (#985) 2023-01-18 01:43:08 -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 571ec08291
other: skip battery duration draw if unknown (#974)
* other: skip battery duration draw if unknown

* increase others

* update changelog
2023-01-15 12:06:19 -05:00
Clement Tsang d3661c2320
other: revert disk usage change for now (#962)
This is a temp change, this commit will be reverted after 0.7.1 comes out.
2023-01-05 23:22:45 -05:00
Clement Tsang 9303c1b52f
bug: further shrink battery time-to text (#960) 2023-01-05 21:36:45 -05:00
Clement Tsang 8f9097b90c
bug: fix CPU 'all' label missing on small sizes (#953)
Fixes the "All" label being missing on small windows.
2023-01-04 01:55:46 -05:00
Clement Tsang 0093a45be9
bug: reduce battery text cutoff in small windows (#952)
Fixes an issue where small windows would cause the battery to-X time to be cut off.
2023-01-04 01:27:15 -05:00
Clement Tsang 7c53f088c3
ci: add build hash to nightly builds for version (#951)
This adds the build hash to the btm -V output for nightly builds, making it easier to troubleshoot when someone might have obtained a nightly build, and what commit it corresponds to.
2023-01-02 15:18:05 -05:00
Clement Tsang a56e7f6cc9
feature: split usage into usage percentage and value (#950)
Denotes both usage and usage percentage. This also redoes the calculation for percentage to be based on the sum of avail + used, rather than on total, as otherwise we get potentially confusing percentages.
2023-01-01 05:08:04 -05:00
Clement Tsang d7e9fd6be0
other: run rustfmt (#949) 2023-01-01 04:35:08 -05:00
Clement Tsang b7bf57481f
docs: update demo to 0.7.0 (#941)
* docs: update demo to 0.7.0

* update again
2022-12-31 20:47:33 -05:00
Clement Tsang 3b5774117f
bug: fix search scrolling with wider Unicode characters. (#938)
This should help make search scrolling more reliable larger Unicode characters like CJK/flag characters.
2022-12-31 05:51:59 -05:00
Clement Tsang efcf2bde29
other: use custom time chart grid implementation (#937)
Pulls in the tui-rs grid logic so I can implement custom braille painting logic. We basically "flatten" the layering logic into a single layer by replacing resetting cells if the colour is different. This avoids the multiple allocations if we used multiple layers as intended with tui-rs.

This gives us chart results similar to the current stable version, but with a flamegraph similar to the current master branch.
2022-12-30 03:06:48 -05:00
Clement Tsang 21a21b86c0
ci: clean all workflow caches to script (#936) 2022-12-30 00:56:27 -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
Clement Tsang 07fd2152f4
docs: update changelog + docs for default expansion feature (#928) 2022-12-07 04:28:43 -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 1920f4b2e1
other: add a redraw event on resize (#926) 2022-12-05 04:34:19 -05:00
Clement Tsang ac5e2ce4a2
bug: fix incorrect text width calculation (#925)
* bug: fix incorrect text calculation

* actual fix, add tests

* appease clippy

* add link to inspiration
2022-12-05 04:21:37 -05:00
Clement Tsang d3577bd1ab
other: don't draw on non-updating events (#924) 2022-12-03 01:18:47 -05:00
Clement Tsang 9c3e60e74f
other: slightly reduce the CPU time spent for draws (#918)
* other: group all dataset draws in a time chart

We used to draw each data set separately as a new canvas. Now, in one
canvas, we draw all datasets.

Note that this changes how dataset  lines are drawn - rather than
drawing one on top of another, it now draws kinda all at once. This
effect is *kinda* a bit better IMO, but it might also look a bit
more cluttered.

* other: optimize truncate_text

Flamegraphs showed that this area seems to be a bit heavy at times with
some inefficient use of iterators and collection. This change should
hopefully optimize this a bit by reducing some collections or
reallocations.

There can also be some further optimizations with less allocations from
callers.

* Reduce some redundant draws
2022-11-29 03:53:58 -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 8338a30752
bug: fix possible gaps with widget layout spacing (#916)
Fixes an occasional gap appearing due to how rect spacing was previously calculated.
2022-11-26 05:00:38 -05:00
Clement Tsang 27fc7a7768
other: change non-normalized shortcut (#912) 2022-11-22 05:12:35 -05:00
database64128 a0eebf3acb
bug: fix reading temperature from disabled devices (#911) 2022-11-21 15:36:06 -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
Clement Tsang db07246f67
other: don't use manual map for color name mapping (#908)
* other: don't use manual map for color name mapping

I actually don't know why I was doing it like that before.

This commit removes the phf crate, as it's not needed anymore.

* update test
2022-11-21 03:34:33 -05:00
database64128 71bc6c940e
feature: per-core process cpu usage percentage (#899) 2022-11-21 03:12:47 -05:00
ClementTsang dd4b19866d
other: update Debian extended description 2022-11-20 03:22:22 -05:00
Clement Tsang abff6e4a7a
bug: fix is_nan being incorrectly used to check for division by zero (#905) 2022-11-20 03:05:45 -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 6a0bf10760
other: some cleanup in proc widget (#903) 2022-11-20 01:13:24 -05:00
Clement Tsang fd1badaf36
other: small linux process cleanup (#902) 2022-11-19 23:21:50 -05:00
Clement Tsang b7ac83e926
other: shrink the timed data vector in addition to clearing (#900)
Should prevent the times series vector from possibly growing indefinitely.
2022-11-19 15:09:53 -05:00
Clement Tsang f52b66a844
other: deduplicate sorts, always sort proc by PID first (#898)
* other: deduplicate sorts, sort proc by PID by default

* add proc test

* remove sort in Windows

* fix tree

* fix test

* Remove mut

* Add comment on sorting processes
2022-11-17 12:10:36 -05:00
Clement Tsang a07fa305fb
bug: redirect stderr on FreeBSD to avoid drawing on UI (#897) 2022-11-17 03:18:05 -05:00
Clement Tsang b2c301b1fe
deps: update sysctl to 0.5.2, procfs to 0.14.1 (#894) 2022-11-13 17:43:55 -05:00
Clement Tsang 17ca30c023
other: remove flume (#893)
In hindsight, pulling in flume is probably overkill and doesn't really
help much.
2022-11-13 01:59:45 -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 9dc6d0c0d5
other: remove the mouse throttler except for scroll events (#886)
The throttler is only really needed for scrolls (e.g. free scroll wheels
in Logitech mice), I don't really see it being needed in any other
contexts. Moves/drag is another one I guess but we outright ignore those
events right now.
2022-11-11 02:27:18 -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 f5ec9191f2
other: try using flume for channel (#884) 2022-11-10 01:08:06 -05:00
Clement Tsang 938c4ccd52
feature: search paste support (#881)
* feature: add pasting to search

Supports pasting events to the search bar (e.g. shift-insert, ctrl-shift-v).

* update docs

* clippy

* comment

* Update process.md

* remove keyboard event throttle

* fix issues with cjk/flag characters
2022-11-10 00:40:04 -05:00
Clement Tsang 8101e6fa56
deps: Update tui to 0.19.0 and crossterm to 0.25.0 (#878)
* deps: update tui to 0.19 and crossterm to 0.25

* fix error

* handle breaking changes
2022-11-08 00:56:39 -05:00
Clement Tsang 7ae8e66a3a
ci: add cache clearing to PR merges (#874)
* ci: add cache clearing to PR merges

* some renaming

* small change to force cache

* add manual run option
2022-11-06 03:44:02 -05:00
ClementTsang 7f7d0cebf4
bug: fix spacing for disk table widget headers when sorting 2022-11-06 02:26:16 -05:00
Clement Tsang 36837ae8ac
feature: basic sortable disk (#870) 2022-11-06 01:34:32 -05:00
Clement Tsang 4d9f5093b2
feature: basic sortable temp (#868)
* feature: basic sortable temp

* add shortcuts

* fix missing shortcut names in header

* update changelog

* update docs
2022-11-05 19:32:14 -04:00
Clement Tsang e6e1e9d688
deps: update nvml to 0.8.0 (#869) 2022-11-05 02:12:31 -04:00
Clement Tsang 76c3bc4254
refactor: clippy and small cleanup/comments (#865)
* refactor: small cleanup and comments in some code

* clippy

* more clippy

* fixes for macos/freebsd
2022-11-04 04:17:22 -04:00