Commit Graph

50 Commits

Author SHA1 Message Date
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
Clement Tsang ae59489466
other: make advanced kill default (#463)
We make the advanced kill menu the default instead. You can opt out with disable_advanced_kill.
2021-05-06 23:35:30 -04:00
Clement Tsang f33bb42c5b
feature: Add mount filtering, rework filter priority logic (#455)
This PR accomplishes two things:

1. This PR aims to add mount_filter to the config file. This allows a user to filter their disk widget entries by the mount name as well; this was particularly a problem in trying to address #431.
2. A slight rework of how the filter system works due to the need of being able to manage two potentially conflicting filter sources, since the disk widget will now potentially filter on both the disk name and the mount name.

In regards to the second point, the new behaviour is as such:

1. Is the entry allowed through any filter? That is, does it match an entry in a filter where is_list_ignored is false? If so, we always keep this entry.
2. Is the entry denied through any filter? That is, does it match an entry in a filter where is_list_ignored is true? If so, we always deny this entry.
3. Anything else is allowed.

This main (breaking) change is really the third point. This would mean that temp_filter and net_filter, when set to allow listed entries with is_list_ignored = false, are kinda... useless, as a whitelist in the scenario of being the only filter is kinda pointless. But hopefully this shouldn't be a problem...?
2021-04-22 23:43:12 -04:00
Clement Tsang eb6a737d34
feature: Rework network y-axis, linear interpolation for off-screen data (#437)
Rewrite of the y-axis labeling and scaling for the network widget, along with more customization. This still has one step to be optimized (cache results so we don't have to recalculate the legend each time), but will be done in another PR for sake of this one being too large already.

Furthermore, this change adds linear interpolation at the 0 point in the case a data point shoots too far back - this seems to have lead to ugly gaps to the left of graphs in some cases, because the left hand limit was not big enough for the data point. We address this by grabbing values just outside the time range and linearly interpolating at the leftmost limit. This affects all graph widgets (CPU, mem, network).

This can be optimized, and will hopefully be prior to release in a separate change.
2021-04-04 05:38:57 -04:00
Clement Tsang e437b14922
feature: Allow toggling advanced kill menu (#408)
Allows toggling the advanced kill menu via --advanced_kill or advanced_kill=true.
2021-02-15 22:23:22 -05:00
Clement Tsang 90be9730a6
feature: Add network interface filtering (#381)
Adds a new option in the config file to filter out network interfaces.  Also add the option to filter by whole words.

Interface follows that of the existing ones:

```toml
[net_filter]
is_list_ignored = false
list = ["virbr0.*"]
regex = true
case_sensitive = false
whole_word = false
```
2021-01-01 18:09:28 -05:00
Clement Tsang 60d0117c85
feature: Add process_command to default to the process command (#379)
Adds a `process_command` flag and config option to default to showing the full command in the process widget on startup.
2020-12-28 14:34:32 -05:00
ClementTsang 2bad8f2d72 other: re-enable table scroll position 2020-12-25 14:34:25 -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 ce020a7429
bug: Fix missing states in processes (#345)
Fixes another change breaking states from showing in processes.
2020-12-10 00:03:55 -05:00
Clement Tsang 3260ff4663
feature: Add scroll indicator to keep track of table position in widgets. (#333)
Adds the option to enable an "out of" indicator for scrollable table widgets (using --show_table_scroll_position).
2020-11-28 15:37:06 -05:00
Clement Tsang a634934e3d
bug: Fix inverted hide_avg_cpu option in config (#327) 2020-11-25 20:30:16 -05:00
ClementTsang 99d04029f0 bug: [skip travis] Add a better check for default colors in the config file 2020-11-21 14:49:44 -05:00
Clement Tsang 2ff8b418b2
feature: add tree flag (#312)
Adds a --tree flag that defaults to tree mode for the process widget.
2020-11-20 00:13:46 -05:00
Clement Tsang 92636f3bf9
feature: Add mem_as_value flag (#309)
Adds a new flag, --mem_as_value (and its corresponding config option, mem_as_value = true), which defaults to showing process memory values by their amount rather than percentage.
2020-11-19 00:28:04 -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 a5b95ae8b2
bug: use cmdline for Linux proc name if >=15 chars (#261)
This was the cause of some process names getting cut off and looking weird for Linux (and Linux only, I'm not directly responsible for the other OSes).

This also adds spaces in between command line flags. Before, they were usually separated by either spaces (which looked fine) or null terminators (which meant it looked like something was broken).
2020-10-01 01:46:09 -04:00
Clement Tsang 57e87d88d0
feature: Add persistent search settings (#257)
Adds persistent search settings across runs, by saving to the config file.  Each process widget keeps track of it's *own* behaviour.  The previous flags/options are now for *global* behaviour.

The following new behaviour is:
- Relevant flags: `--case_sensitive`, `--whole_word`, and `--regex`, will *override* the current widget's default behaviour.
- Relevant options: `case_sensitive`, `whole_word`, and `regex`, will also *override* the current widget's default behaviour.

As per before, if you set, say, `--case_sensitive`and `case_sensitive=true`, the flag always overrides.

Documentation updates will be done in #248.
2020-09-28 19:50:21 -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 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
ClementTsang 663ae6c5c2 bug: fix broken check from last commit, add tests 2020-09-01 03:08:46 -04:00
ClementTsang d24a797ce9 other: Add config error if default_widget_count is not used with default_widget_type 2020-09-01 00:29:46 -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
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 4b03b4b0b0
refactor: Refactor code, add new tests
Refactor code so we use a lib, allowing for easier testing. Adds additional tests for layouts.
2020-08-19 16:32:33 -04:00
ClementTsang 9068108d0f bug: fix missing default battery layout during refactor 2020-08-16 03:08:09 -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
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 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 8e4f6a3a02 feature: add battery flag 2020-04-27 15:56:39 -04:00
ClementTsang 8534d42f1b refactor: separate state to different file 2020-04-27 13:48:56 -04:00
Clement Tsang 3a6f7a6750
refactor: changed how we set help text on resize and init 2020-04-25 17:32:31 -04:00
ClementTsang b1f86262f3 refactor: update error messages to be more uniform 2020-04-23 14:10:59 -04:00
ClementTsang f334a72fb1 Made table gap optional rather than enforced 2020-04-19 17:45:32 -04:00
ClementTsang 7248298995 Update highlight to light blue; new network legend 2020-04-18 19:53:11 -04:00
Clement Tsang 163f6823a2
feature: Add battery widget (#120) 2020-04-16 20:06:50 -04:00
Clement Tsang ba0fbf808e
(perf) Avoid harvesting if widget is not being displayed 2020-04-04 18:29:32 -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 648864176f Updated documentation, made error in args clearer 2020-03-10 01:51:28 -04:00
ClementTsang 46f1b7df00 Redid how we auto-set time if we have autohide on. 2020-03-10 01:43:42 -04:00
ClementTsang e5588f1606 Add hiding time and autohiding time. 2020-03-09 00:52:29 -04:00
ClementTsang 78a05bc683 Fixes bug with too large inputs causing a panic
We would prefer a more graceful error message stating what went wrong.
Caught by the Travis test.
2020-03-08 22:27:41 -04:00
ClementTsang f70cf02414 Add configurable default time and interval values
Also added documentation both in app and in the README.
2020-03-08 22:01:49 -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 9cad3bb4ec Add basic flag to sample config, also fixed incorrect flag name for configs. 2020-03-03 00:08:09 -05:00
ClementTsang d917a27faa Add minimal mode widgets
This adds minimal mode widgets to the program.  This is not done, still
gotta play around with rearranging it to look nice.

Also going to have to change search bar to always take a constant 3.
May remove borders.
2020-03-02 00:09:45 -05:00
ClementTsang 4c98fe4fde Refactoring. 2020-03-02 00:09:45 -05:00
ClementTsang eb2622467f Refactoring. 2020-03-02 00:09:45 -05:00