Commit Graph

55 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
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 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 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 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
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 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 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 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 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
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
ClementTsang 0831a56341 refactor: simplify partial ordering fn, clean up code 2022-05-15 21:02:33 -04:00
ClementTsang 1877ed5c88 refactor: remove redundant get_ordering fn, add tests 2022-05-15 21:02:33 -04:00
ClementTsang ba362f81c9 bug: fix issues with macos and windows during refactor 2022-05-15 21:02:33 -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
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 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
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 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 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 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 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 5b33e8d6b4
Use tmp_dir rather than /tmp/ (#260)
Uses a less hard-coded method of writing to /tmp/.
2020-09-30 22:53:54 -04:00
Clement Tsang 9afb6d7c88
feature: add --debug flag for logging (#259)
Adds a `--debug` flag to aid in debugging issues.  This saves to `/tmp/bottom_debug.log`.
2020-09-30 22:06:57 -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 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 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
ClementTsang 0986b96056 bug: made the regex error one line in search 2020-05-03 00:08:18 -04:00
ClementTsang 8307b06c56 bug: fix bug with multiple tokens 2020-05-02 21:50:35 -04:00
ClementTsang 6e81fbeebf change: more advanced searching and filtering 2020-05-02 16:01:07 -04:00
ClementTsang b1f86262f3 refactor: update error messages to be more uniform 2020-04-23 14:10:59 -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
ClementTsang eb2622467f Refactoring. 2020-03-02 00:09:45 -05:00
ClementTsang 34b84d6b04 Add explicit lifetime parameters as per 2018 idioms. 2020-02-24 21:10:12 -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 96d405a353 Add config options 2020-02-07 00:16:41 -05:00
ClementTsang 0bf7f32473 Optimizing processes... 2020-02-01 23:49:44 -05:00
ClementTsang 0f2b4a7ba5 Formatting changes to be a bit more strict on line length 2020-01-07 23:40:53 -05:00
ClementTsang ad4f124d9d Rearrange to fit legend and extra info. 2019-12-28 01:20:05 -05:00
ClementTsang 25d0ae45b4 Some cleaning to avoid duplicate code 2019-12-27 18:19:57 -05:00
Clement Tsang 4974ae0886 Some simple fixes to abide by clippy 2019-12-22 17:37:07 -05:00
Clement Tsang 8d5db7aa79 Rename error name. 2019-12-13 02:43:34 -05:00
ClementTsang 6ac5812ffd Fix travis. 2019-12-06 23:29:23 -05:00
ClementTsang e7477ce517 Update tui version... legends aren't showing up yet, will have to fork again. 2019-12-06 00:57:04 -05:00
ClementTsang 2e6f087a3a Minor change to fern init results and added to error file 2019-10-10 17:22:53 -04:00
Clement Tsang 52c4234ed0 Added dd for windows. 2019-09-25 02:00:10 -04:00