Commit Graph

386 Commits

Author SHA1 Message Date
Clement Tsang f5ec9191f2
other: try using flume for channel (#884) 2022-11-10 01:08:06 -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 29bc0b67ba
ci: rename deployment folder to scripts (#873) 2022-11-06 03:19:52 -05:00
Clement Tsang e6e1e9d688
deps: update nvml to 0.8.0 (#869) 2022-11-05 02:12:31 -04:00
ClementTsang 342d0da729
other: exclude more files in Cargo.toml 2022-11-05 01:00:33 -04:00
Clement Tsang ec21306f55
deps: update sysinfo to 0.26.7 (#867) 2022-11-04 19:38:14 -04:00
Clement Tsang 2a740f48f7
refactor: tables V2 (#749)
* refactor: move to new data table implementation

* more work towards refactor

* move disk and temp over, fix longstanding bug with disk and temp if removing the last value and selected

* work towards porting over CPU

work towards porting over CPU

fix typo

partially port over cpu, fix some potentially inefficient concat_string calls

more work towards cpu widget migration

some refactoring

* sortable data

sortable data

more refactoring

some sort refactoring

more refactoringgggg

column refactoring

renaming and reorganizing

more refactoring regarding column logic

add sort arrows again

* move over sort menu

* port over process

port over process

precommit

temp

temp two, remember to squash

work

fix broken ltr calculation and CPU hiding

add back row styling

temp

fix a bunch of issues, get proc working

more fixes around click

fix frozen issues

* fix dd process killing

* revert some of the persistent config changes from #257

* fix colouring for trees

* fix missing entries in tree

* keep columns if there is no data

* add and remove tests

* Fix ellipsis
2022-10-12 16:25:38 -04:00
Clement Tsang 1e5f0ea2d9
bug: add bindings to grab ppid in some cases on macos (#825) 2022-10-11 19:49:39 -04:00
Clement Tsang a965e53c6c
fix wrong unit being used for memory in sysinfo data (#824)
* fix wrong unit being used for memory in sysinfo data

* update sysinfo to 0.26.4 for unsupported reasons w/ ntapi
2022-10-07 19:15:11 -04:00
ClementTsang dfd21f57dc
other: bump to 0.6.9 for nightly to avoid confusion for now 2022-09-25 17:25:44 -04:00
Clement Tsang c6c7fb3a30
deps: update sysinfo to 0.26.2 (#806)
* deps: update sysinfo to 0.26.2

This dependency update has some nice things in store for us:
- MacOS M1 temperature support
- Bevy of bug fixes

* update documentation

* some fixes
2022-09-16 04:42:24 -04:00
Clement Tsang a427a9d2f2
other: add zfs to deploy feature set (#808) 2022-09-14 05:50:34 -04:00
Clement Tsang 72189185b6
other: sort Cargo.toml (#802) 2022-09-07 23:51:08 -04:00
Clement Tsang 14808b3a2e
ci: completion/manpage generation script spring cleaning (#795)
* ci: spring cleaning of completions autogen

This commit changes a few things/cleans up stuff:
- Completion and manpage generation now drops the files off in
  `./target/tmp/bottom` rather than arbitrarily in the build directory.
  This was originally done because I was lazy and just needed it to work
  in CI, but it's kinda gross if you want to build the manpages in your
  own directory.
- CI was updated to handle this.
- Only run if the `BTM_GENERATE` env var is actually non-empty.

* docs: update for manpage/completion gen

* ci: auto delete autogen comp/manpage dir

* ci: fix incorrect mv for autogen

The mv was too late, should be earlier in the workflow.

* ci: specify shell in autogen delete

* docs: more updates to manpage/comp docs

* ci: unify env vars

* ci: skip autogen on build-msi
2022-08-30 18:25:16 -04:00
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 2a183c642b
other: exclude some files in Cargo.toml (#759)
Excludes unnecessary files from being included in `Cargo.toml`. This mostly consists of files like mkdocs and asset files for the README.
2022-06-28 20:39:43 -04:00
Clement Tsang c6f5d5488a
docs: re-enable lib docs for development purposes (#750)
Enables lib docs, primarily intended for dev use. Also change some existing documentation based on warnings (mainly broken/bare links).
2022-06-14 18:31:32 -04:00
Clement Tsang 96d5b9b87d
deployment: add aarch64/armv7 gnu .deb generation (#739)
Adds .deb generation for aarch64 and armv7 gnu targets in the nightly and deploy workflows.
2022-05-28 16:14:25 -04:00
ClementTsang ed17264832 refactor: more work towards unifying process code
A bunch of work towards also refactoring how the process widget
gathers and converts data.
2022-05-15 21:02:33 -04:00
ClementTsang 7ee6f6a737 refactor: begin migration of process widget 2022-05-15 21:02:28 -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 715af44efc ci: create deploy feature; test in CI
This encompasses features that we want on deployment.
2022-05-01 17:30:20 -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 c4c9130b4a
ci: enable strip on release builds with Cargo.toml (#679)
Removes the manual strip used in favour of the now native functionality in Cargo.
2022-02-25 02:18:22 -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
Clement Tsang 6c989785fb
bug: fix issues caused by having a width that is too small (#665)
Due to a missing check, you could resize the window to a width that was too small, and it would trigger an endless while-loop for any table while trying to redistribute remaining space. This has been rectified with an explicit check, as well as a smarter method of redistributing remaining space borrowed from the rewrite.

This also adds explicit width checks for widgets that have borders; if the width is <2, before, it would panic.

Note that the rewrite I have kinda fixes all these issues already, so I don't want to invest too hard into this, but this should be fine as a patch for now.

Also note that minimal heights don't seem to be causing any issues, it just seems to be minimal widths.
2022-01-27 19:16:27 -05:00
Clement Tsang fbd95126b0
Merge pull request #658 from GuillaumeGomez/update-sysinfo
Update sysinfo version
2022-01-20 11:20:55 -08:00
Guillaume Gomez e195b056b0 Update sysinfo version 2022-01-20 13:00:15 +01:00
Clement Tsang 1237a35663
docs: update app descriptions (#659)
Update app descriptions across the board to be more consistent.
2022-01-19 23:49:11 -05:00
Clement Tsang c92cfc644d
bug/ci: fix debian file generation breaking completions (#645)
Fixes completion file generation being broken while the .deb file is made, due to using an incorrect path.
2021-12-27 16:49:15 -05: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
Clement Tsang e20057b97c
ci: move winget/msi and deb gen to separate steps (#585)
Moves debian and winget/msi generation to a separate job, so it can run in parallel to the other jobs.
2021-09-23 19:13:13 -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 ed07fbe1cc
other: Make the battery dependency/features optional (#570)
Allows disabling of the battery dependency through a feature flag. This also aims to disable all related features.
2021-08-19 22:16:44 -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 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 574c2c1df7
change: switch from sysinfo to heim for cpu usage in macOS and Windows (#467)
Due to #404, I've just moved all CPU usage calculations over to heim.
2021-05-09 01:39:42 -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 e63a0b4082
refactor: Unify disk conversion to string step (#446)
Refactor to unify the process disk usage -> string into one function.
2021-04-07 20:52:29 -04:00
Clement Tsang 5bd9e4f6ae
feature: Collapsing in tree mode sums usage to parent (#445)
For the process widget, we now sum the resource usage of the child processes on the parent entry when collapsing in tree mode.

Note that if you search to filter, and collapse, it will not sum the pruned values (values that cannot be seen).  This is partly because I'm a bit lazy, and partly because I think this behaviour makes sense.

For example, let's say I search for a process with 4 child processes "AA, AB, BA, BB", with CPU usage 0.1, 0.2, 0.3, 0.4 respectively.  Assume the parent process has 0 usage.

- Without filter, it sums to 1.0
- With a filter on A, it would sum to just 0.3
- With a filter on AA, it would sum to 0.1

I think this is fine because I'm treating this as summing any child that is still *visible* somehow.  Summing unseen values would probably be weird as it would look like it's not adding up.

Further note that if you had, say, a child "CC" with a usage of, say, 2.0, and its parent of "AB", and you searched for CC in our above example, you would get a sum of 2.2.  This is because AB is still visible by the fact that CC was the searched process, and AB must still exist (albeit faded out) in the tree hierarchy, and as such will still be displayed.
2021-04-05 01:19:17 -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 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 53d8bdae32
feature: User info in proc widget for Unix-based systems (#425)
Adds users into the process widget (for Unix-based systems).  This shows only in non-grouped modes, similar to state.  Search is also supported.

In addition, a quick fix to prevent users from being in grouped mode when they tried to enter tree mode while grouped.
2021-02-28 17:40:55 -05: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 82b39e361d
other: Turn off debug and turn on LTO in release profile again (#367) 2020-12-18 00:40:55 -05:00
Clement Tsang bfdaa09e3a
uptick: 0.5.6 (#362) 2020-12-17 18:42:08 -05:00
Clement Tsang 682f6493d1
refactor: re-use heim for ARM targets if possible (#360)
Use heim on ARM targets again where appropriate.
2020-12-17 17:57:38 -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 766fe25c55
refactor: Use feature flags to avoid building with fern and log (#351) 2020-12-11 20:39:32 -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 fd003f84da
bug: Fix some performance regressions (#344)
Fixes some performance regressions and forgotten cleanup.

Changes to attempt to improve performance to match 0.4.x:

- Remove `trace!` and `--debug` for now.  These were a significant hog.  Removing this dropped initial memory usage by about half.
- Add additional cleaning step for `pid_mapping`  during process harvesting.  This should hopefully improve memory usage as time goes on.
- Slightly change how we do sorting to hopefully be a bit more optimal?  This was just an easy change to make that I spotted.
- Fix broken cleaning child thread task.
2020-12-10 22:29:25 -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 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 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 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 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 22278d7d75
other: aarch64 support (#217)
Adds theoretical aarch64 support.
2020-09-02 02:59:51 -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 3431411215
other: Add autocomplete file generation (#213)
Adds shell completion generation as part of the build, as well as tweaking install scripts/templates/CI to use them.
2020-08-31 17:50:21 -04:00
ClementTsang c6a20a1420 deps: Update battery, sysinfo 2020-08-29 20:41:51 -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
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
ClementTsang 6dca970541 ci: switch to prepush rather than precommit 2020-08-23 21:43:24 -04:00
ClementTsang 691f6647e0 ci: set up clippy pre-hook 2020-08-23 21:39:53 -04:00
ClementTsang 005bd95f8a ci: Move wix output naming to Cargo 2020-08-23 21:22:34 -04:00
Clement Tsang 397a7e8467
ci: Add winget template generation (#199)
Adds winget CI generation.
2020-08-22 20:22:47 -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 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
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
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
ClementTsang 4cc403b594 uptick: 0.4.5
This patch is just to deal with crates.io not using the correct
Cargo.lock I had intended.
2020-07-08 15:15:16 -04:00
ClementTsang d643ef7401 uptick: 0.4.4 2020-07-06 01:10:03 -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 2d9d10d8f9 uptick: 0.4.3 2020-05-15 00:00:02 -04:00
ClementTsang 2ae2ebd6d8 deps: update sysinfo 2020-05-14 22:22:29 -04:00
ClementTsang a03e9d6f31 uptick: 0.4.2 2020-05-11 22:53:56 -04:00
ClementTsang 56d6771d1b refactor: re-enable tui-rs linear interpolation 2020-05-10 17:01:45 -04:00
ClementTsang aea79a0750 uptick: 0.4.1 2020-05-05 17:50:30 -04:00
ClementTsang 1ff2606c90 update tests to deal with msrv 2020-05-04 18:23:34 -04:00
ClementTsang 6e81fbeebf change: more advanced searching and filtering 2020-05-02 16:01:07 -04:00
ClementTsang b87fde16ab uptick: 0.4.0 2020-04-29 00:10:27 -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
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
dependabot-preview[bot] 28c27272d7
deps: sysinfo from 0.12.0 to 0.13.0 (#112) 2020-04-09 11:13:52 -04:00
Clement Tsang d2434bf8ad
uptick: 0.3.0 2020-04-07 21:07:24 -04:00
Clement Tsang 9127cb1468
refactor/bug: Array bound checking, fix CPU jump 2020-04-06 23:04:04 -04:00
Clement Tsang a40ddce84f
deps: Upgrade crossterm and sysinfo (#105) 2020-04-05 23:20:22 -04:00
Clement Tsang 0b1d84fdf5
Add modularity to widget placement and inclusion (#95) 2020-04-01 20:31:43 -04:00
dependabot-preview[bot] f44de81874
Update assert_cmd requirement from 0.12 to 1.0 (#94)
Updates the requirements on [assert_cmd](https://github.com/assert-rs/assert_cmd) to permit the latest version.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v0.12.0...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 18:33:51 -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
dependabot-preview[bot] 57fcd77d98
Update fern requirement from 0.5.9 to 0.6.0
Updates the requirements on [fern](https://github.com/daboross/fern) to permit the latest version.
- [Release notes](https://github.com/daboross/fern/releases)
- [Changelog](https://github.com/daboross/fern/blob/master/CHANGELOG.md)
- [Commits](https://github.com/daboross/fern/compare/fern-0.5.9...fern-0.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-10 10:40:44 +00:00
Clement Tsang 3a57570031
Cargo optimization (#65)
* Add potential cargo optimizations.

* Add potential cargo optimizations.
2020-03-05 02:23:19 -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 2f5b5e7269 Move windows to separate dependency. 2020-02-28 21:15:36 -05:00
ClementTsang 792be871e8 Uptick crossterm version. 2020-02-27 23:00:51 -05:00
ClementTsang a755a5d41c Switch to using unicode_segmentation's cursor as a basis on how we do cursor movement in search. 2020-02-27 16:10:33 -05:00
ClementTsang 67f8baa056 Fix unicode causing problems with search. 2020-02-27 16:10:33 -05:00
ClementTsang 039965f2eb Prune dependencies. 2020-02-25 19:44:54 -05:00
Clement Tsang 059290c983
Uptick to 0.2.2 2020-02-25 10:06:37 -05:00
Clement Tsang d7b068b692
Fix serde missing derive feature
Caused broken cargo install.
2020-02-25 09:54:03 -05:00
ClementTsang 214153316b [skip travis] remove redundant tag 2020-02-22 18:41:13 -05:00
ClementTsang 33a1bc1599 Add debian build. 2020-02-22 18:38:18 -05:00
ClementTsang 8ebe843128 Some doc stuff and edit travis. 2020-02-22 00:42:52 -05:00
ClementTsang e8ce1d5b1e Uptick version before patch. 2020-02-20 23:33:23 -05:00
ClementTsang 0697d9dd56 Fix issue with default file paths not being respected; updated default file paths. 2020-02-20 23:10:52 -05:00
ClementTsang 8cf5b42f29 Update cargo.toml, some todos 2020-02-19 00:16:40 -05:00
ClementTsang b69eca0fc6 Change to focus on speed. 2020-02-17 18:13:13 -05:00
ClementTsang b3eafe711e Fix issue introduced with last commit on searching. 2020-02-17 17:53:49 -05:00
ClementTsang 4485d1b380 Some clippy and refactoring. 2020-02-17 17:42:51 -05:00
ClementTsang 59c0b3df62 [skip travis] Update documentation a bit. 2020-02-15 17:41:26 -05:00
ClementTsang 50dd079b9e Updated heim version. 2020-02-15 17:18:37 -05:00
ClementTsang e05b5c46fe Merged async together. 2020-02-14 22:51:20 -05:00
ClementTsang 1ac6cdde2f Update sysinfo, add total network to windows/linux. 2020-02-09 22:11:03 -05:00
ClementTsang 4ac3a10fbf Update and clean up ? menu... some more work to be done though 2020-02-08 22:38:55 -05:00
ClementTsang 8764b3092a Some cleaning up of the canvas colour setting feature 2020-02-08 16:39:50 -05:00
ClementTsang fc37cf7f3d Config with toml instead 2020-02-06 21:47:47 -05:00
ClementTsang a9565d21a3 Remove termion from Cargo, causes windows builds to fail 2020-02-05 20:37:37 -05:00
ClementTsang 7ea20283cf Update cargo to newer versions of crates 2020-02-05 19:53:42 -05:00
ClementTsang 0b857f6609 Remove useless to_vec() calls to reduce clones 2020-02-04 23:33:09 -05:00
ClementTsang 41d56d8a9b Update Cargo, changed the CLI flags for search a bit along with the docs to be a bit easier to remember (all caps, change regex option to `-R`) 2020-02-04 20:07:53 -05:00
ClementTsang 762acc8642 [skip travis] Update README to reflect added libs 2020-02-02 18:07:41 -05:00
ClementTsang e548d07c1f Add panic hook, fix cpu legend causing panic on small windows 2020-02-02 17:09:42 -05:00
ClementTsang ae6e27d25a Updated cargo and .gitignore 2020-01-21 22:48:56 -05:00
ClementTsang 545cb8b8b1 Change of hjkl navigation and removal of q to quit (replaced by Ctrl-[char]) variants. This is required for a less confusing use of upcoming search functionality 2020-01-12 13:15:49 -05:00
ClementTsang 0e4dba00c2 [skip travis] Change of terminology within README. 2020-01-11 18:21:14 -05:00
ClementTsang 896bfc51d3 (cargo-release) start next development iteration 0.1.3-alpha.0 2020-01-11 17:43:32 -05:00
ClementTsang 86c8ce68e7 Potential fix for a panic with time comparisons 2020-01-11 00:42:03 -05:00
ClementTsang f0d5afb462 Update Cargo to 0.2 (again), and update README 2020-01-09 23:37:14 -05:00
ClementTsang 8595e7422a (cargo-release) start next development iteration 0.1.2-alpha.0 2020-01-09 22:34:03 -05:00
ClementTsang 2c7ab558d0 Fix a quite large bug with disks table display. 2020-01-09 22:04:32 -05:00
ClementTsang ad190a144d Some basic cleaning 2020-01-06 23:07:58 -05:00
ClementTsang e2f2f93750 Add optimization to Cargo.toml 2020-01-04 16:07:35 -05:00
ClementTsang 2543cff9d8 (cargo-release) start next development iteration 0.1.1-alpha.0 2020-01-03 00:23:19 -05:00
ClementTsang 6df4843a8f [skip travis] More documentation tweaking 2020-01-02 23:49:23 -05:00
ClementTsang 8cc8b47c89 Some documentation changes 2020-01-02 23:42:44 -05:00
Clement Tsang 7b902a9470 Fix mouse scrolling in windows 2020-01-02 22:54:39 -05:00
ClementTsang 55b5e5abd5 Add random colour generation to allow for dealing with large multicore systems without overlapping colours (hopefully) 2019-12-26 19:06:30 -05:00
ClementTsang b02c3b7275 Try updating dev-dependency... 2019-12-26 15:19:15 -05:00
ClementTsang baf588be8a Redid some of the networking portion, changed cargo a bit, some refactoring 2019-12-25 23:02:21 -05:00
ClementTsang 395a3083c6 Update heim 2019-12-25 20:28:38 -05:00
ClementTsang b7a7ae1a17 Update to newer version of crates 2019-12-25 20:09:49 -05:00
Clement Tsang eee9c54175 Fix problem with missing brackets and BEDMAS... 2019-12-22 23:38:55 -05:00
Clement Tsang a0729d3913 Fix for winapi 2019-12-13 02:45:09 -05:00
Clement Tsang 12b4518fa1 Fixed problem with invalid vector index access. 2019-12-13 02:42:36 -05:00
ClementTsang 4e186c56f4 update sysinfo dep 2019-12-12 23:20:02 -05:00
ClementTsang 5449c883b4 [skip travis] Increment up Cargo.toml file... next release will be 0.1.0 2019-12-07 15:39:24 -05:00
ClementTsang 9913cc9fda Update dependencies 2019-12-07 03:01:35 -05:00