266 Commits

Author SHA1 Message Date
Clement Tsang
19cdc269fb
refactor: Refactor some canvas code (#342) 2020-12-08 22:34:21 -05:00
Clement Tsang
c0a8c347e1
bug: remove buggy auto-generated CPU colour implementation (#308)
Removes the random automatically generated colours for the CPU metrics. This was not supported in all terminal emulators, and would cause some of them to break (namely macOS Terminal).

Instead we'll default to colours we can be more certain will work and loop through them as required. Users can still override these colours with their own.
2020-11-18 20:00:31 -05:00
Clement Tsang
669b245367
feature: Add collapsible tree entries (#304)
Adds collapsible trees to the tree mode for processes. These can be toggled via the + or - keys and the mouse by clicking on a selected entry.
2020-11-18 01:28:53 -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
05b39d29ae
feature: Add simple indicator for when data updating is frozen (#269) 2020-10-17 23:26:03 -04:00
Clement Tsang
b8606c41b9
refactor: Remove redundant as_ref() calls (#268)
Minor refactor to remove redundant `as_ref()` calls.
2020-10-17 18:35:21 -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
6db76029e2
feature: Beginnings of in-app config (#231)
Initial refactorings and additions to support in-app config.

- Refactor our current options logic to support in-app configs.  That is, we can write to a config file with our changes now.
- The default action when creating a new config file is to leave it blank. (TBD and for now, not sure on this one)
- Previously, we would set everything in a config file on startup; now we need to read from the config TOML struct whenever.
- `C` keybind is now occupied for configs.
- `no_write` option to never write to a config file.
2020-09-22 18:12:36 -04:00
Clement Tsang
b0b174eb98
bug: Fix for index oob caused by terminal size mismatch (#238)
Fix for an index out-of-bounds by resizing to a smaller terminal just after the program got the terminal size, but right before the terminal started drawing.
2020-09-18 12:35:32 -04:00
Clement Tsang
86c8b474ae
feature: mouse support for tabs and dd dialog (#230) 2020-09-11 04:20:14 -04:00
Clement Tsang
c58b2c2bb9
refactor: rewrite column algorithm (#227)
Update how we position and generate column widths to look less terrible.  This also adds truncation w/ ellipsis to the columns, and for processes, the state will automatically shrink to a short form (just a character) if there isn't enough space.
2020-09-09 21:51:52 -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
cef3166cf8
feature: Add ability to filter out disks and temp (#220)
You can now filter out disks and temp sensors by name via config.
2020-09-02 22:02:49 -04:00
Clement Tsang
3d2fc76aa2
feature: Add mouse click support for moving between widgets (#208)
Adds mouse support to the application, to move between widgets and click on elements.

List of things to added:

- Click to move between widgets
- Click to move between widgets in basic mode
- Click on widget entries
- Ability to disable mouse if you don't like it, I guess
2020-08-29 18:54:18 -04:00
Clement Tsang
9a11e77aa0
feature: Adaptive network widget (#206)
Allows the network widget graph to grow/shrink with current data, rather than using a static size.
2020-08-28 16:30:24 -04:00
Clement Tsang
9158c5f6d5
bug: fix grouping being broken after refactor (#201)
Fixes grouping not working properly after some refactoring done in 0.4.6.
2020-08-25 03:36:29 -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
f3897f0538
feature: Allow sorting by any column
This feature allows any column to be sortable.

This also adds:
- Inverting sort for current column with `I`
- Invoking a sort widget with `s` or `F6`.  Close with same key or esc.

And:
- A bugfix in regards the basic menu and battery widget
- A lot of refactoring
2020-08-15 20:35:49 -04:00
ClementTsang
84f63f2f83 refactor: remove redundant newlines 2020-08-13 02:04:53 -04:00
ClementTsang
6e38d73116 change: Refactor dd drawing code
This also slightly improves how we generate the widths/heights to be
less... terrible.

Note this is not done, unfortunately.  This requires tui-rs' wrapped
paragraph height PR to land and release so I can properly calculate the
height offsets.

See https://github.com/fdehau/tui-rs/pull/349 for details.
2020-08-12 00:27:02 -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
Clement Tsang
a71d991695
refactor: avoid using max checks, use saturating_sub instead 2020-05-07 01:09:24 -04:00
ClementTsang
6e81fbeebf change: more advanced searching and filtering 2020-05-02 16:01:07 -04:00
ClementTsang
dacf8b1abb bug: fix broken basic table arrows on other widgets 2020-04-29 23:12:49 -04:00
ClementTsang
8e4f6a3a02 feature: add battery flag 2020-04-27 15:56:39 -04:00
Clement Tsang
3a6f7a6750
refactor: changed how we set help text on resize and init 2020-04-25 17:32:31 -04:00
Clement Tsang
863e780f2f
change: add scrolling to help menu 2020-04-24 19:17:58 -04:00
ClementTsang
0574678746 Move to stateful except for CPU 2020-04-19 23:39:24 -04:00
ClementTsang
90e1e9f4cb Fix bug with network legend 2020-04-18 21:11:20 -04:00
Clement Tsang
163f6823a2
feature: Add battery widget (#120) 2020-04-16 20:06:50 -04:00
ClementTsang
ba5c2734cf refactor: Remove debug. 2020-04-07 22:38:53 -04:00
ClementTsang
07efc3f301 opt: Only recalculate rect layout if resize or startup 2020-04-06 23:38:00 -04:00
Clement Tsang
9127cb1468
refactor/bug: Array bound checking, fix CPU jump 2020-04-06 23:04:04 -04:00
Clement Tsang
0b1d84fdf5
Add modularity to widget placement and inclusion (#95) 2020-04-01 20:31:43 -04:00
Clement Tsang
1968bb14b4
Cleanup before modularity (#84)
* Uptick some crates, update README dependencies

* Cleanup before modularity feature.

* Fix missing reset zoom on reset

* Fixed reset... not resetting search or data displayed

* Cleaned up options a tiny bit to make more sense.

* Cleaned up some TODOs and the like.

* specify only build master branch.
2020-03-13 01:07:24 -04:00
ClementTsang
05e0e6bb82 Forgot to set size field upon detecting a resize... 2020-03-10 21:42:12 -04:00
ClementTsang
e5588f1606 Add hiding time and autohiding time. 2020-03-09 00:52:29 -04:00
ClementTsang
3026fbd1bc Add time scaling. 2020-03-08 19:47:10 -04:00
ClementTsang
6d0b7035d3 Redid basic mode logic and separated CPU
* Separated CPU into CPU legend and graph

* Redid how I did maximizing with basic mode
2020-03-08 16:17:28 -04:00
Clement Tsang
01b37368b2
More basic cleaning (#74)
* Add htop link.

* Move dd and help dialog into separate files

* Move to  folder

* Properly show error message if DD fails on macOS and linux.
2020-03-08 13:56:18 -04:00
Clement Tsang
226c4e5a68
Clean up and manage some basic stuff (#73)
* Remove debug statement.

* Remove redundant functions from main

* Update pull request template.

* Format temperature line.

* Update README for chocolatey.

* Add note about basic mode and htop's inspiration.
2020-03-08 00:35:01 -05:00
ClementTsang
03ec52c5b1 Split up widgets to make it a bit easier to work with. 2020-03-07 23:47:53 -05:00
Clement Tsang
132a5a2170
Fix dialog box height and scroll label (#71)
* Fixes search with small mode by changing the prompt based on size.

* Minor fixes for search

- Remove ignore unused var lint
- Add a bit more spacing to deal with large unicode
- Add on-right movement on type

* Add contributor's list and bug/req section

* Check for div by zero

* Fix for dd in terms of sizing.

* Added (temporary) fix for help box.  Scrolling is the ideal solution but will leave that for another time.
2020-03-05 23:54:39 -05:00
Clement Tsang
f2b5f96d80
Fix by doublechecking the remaining width calculation. (#67) 2020-03-05 11:46:38 -05:00
Clement Tsang
188858fedd
Formatting and typos (#63)
* Fix typo and run rustfmt.

* Also add rustfmt check to travis... this might be temporary.

* Add a bit on default config files being created in the debian extended description.

* Add rustup component add to travis.

* Disable rustfmt for now, seems to play weird on windows builds.

* Remove unneccesary deprecate ignore.
2020-03-05 02:09:29 -05:00
ClementTsang
c69362000d Add CPU row allocation system to more evenly distribute it (aka simple division) 2020-03-04 23:13:00 -05:00
ClementTsang
32ca9edf11 Fix highlighting and cpu filtering when maximized 2020-03-04 18:16:19 -05:00
ClementTsang
a8d3593518 [skip travis] Update README. 2020-03-03 00:59:03 -05:00