Commit Graph
82 Commits
Author SHA1 Message Date
Clement Tsang 566502347e docs: update things to reference 0.11.0 in prep for release (#1765)
* docs: update things to reference 0.11.0 in prep for release

Things still missing:
- Update schema
- Release notes
- Any doc site updates?
- Any GIF updates?
- Take a pass over README?

* update schema with 0.11

* update schema with virt

* update

* update date

* an attempt and failure to update the gif

* bump freebsd

* bump

* I swear

* okay so no freebsd 15, got it
2025-08-06 04:09:39 +00:00
Clement Tsang 3d35d08347 deps: bump root deps as of 2025-06-01 (#1734)
* deps: bump root deps as of 2025-06-01

* update schema generation

* update config file link too

* rerun
2025-06-01 19:49:05 -04:00
Clement Tsang d63ca07cae refactor: clean up some file structure, process code, and terminal cleanup (#1676)
* move widgets

* reduce allocations needed

* ah

* more possible optimizations around reducing allocs

* some fixes

* I forgot to clear the buffer oops

* missing

* only run terminal cleanup after certain point
2025-02-15 02:32:09 -05:00
Clement Tsang c970037546 bug: handle terminal cleanup if main.rs panics from an Err (#1660)
* bug: handle terminal cleanup if main.rs panics from an Err

* add comment

* changelog
2025-01-18 02:43:58 +00:00
Clement Tsang bc3032cf10 bug: fix incorrect versions in schemas (#1635) 2024-11-29 04:30:23 +00:00
Clement Tsang 24cb8a417c refactor: move schema generation to its own binary, go back to lib-bin (#1630)
* refactor: separate schema generation to its own binary, go back to lib-bin setup

Decided it might be nicer to separate the schema generation bit to its
own binary. This does mean that we have to go back to the lib-bin
system, as otherwise passing shared code is _really_ hard.

* handle versioning

* run fmt
2024-11-28 08:05:25 +00:00
Clement Tsang 8885910442 refactor: remove lib and move some things around (#1477)
A loooooong time ago (wow, it's been 4 years apparently...), I made the brilliant (/s) decision to use both lib.rs and main.rs because I was trying to add tests in the tests folder that needed private access to some functions in the src - and at the time, the only way I could think of doing so was exposing bottom as a library and a binary.

This isn't necessarily bad, but for my use case, it's pretty unnecessary nowadays (since I've moved all my tests back into the source files) and adds complexity in looking for certain things, so it's high time we move things around and remove lib.rs. I also took the time to clean up some weird code I spotted along the way.
2024-06-05 06:00:21 +00:00
Clement Tsang ee2e1fee1c refactor: use struct for args instead of builder interface (#1472)
* start moving args

* tmp

* refactor config

* port over ags

* update changelog
2024-05-27 01:16:37 -04:00
Clement Tsang 398bf5930f refactor: some string-related code cleanup/refactor (#1463)
* other: organize some utility function files

* deps: remove kstring

* refactor: some naming changes

* refactor: some more small refactoring/naming changes

* simplify to_cell to return a Cow

* enable lints
2024-05-07 02:03:30 -04:00
Clement Tsang c242b4aff3 refactor: move around some configuration code again (#1371) 2024-01-01 17:39:10 -05:00
Clement Tsang 228da99489 refactor: move around configuration-related files (#1370)
* rename general utils file

* refactor: move around some configuration files

* more shuffling around

* fix some ugly formatting
2024-01-01 17:20:40 -05:00
Clement Tsang ecb6faa089 refactor: restructure canvas file folder structure (#1368)
* refactor: group together some canvas files

* rename file

* more shuffling around

* fmt

* more shuffling

Going to flatten widgets in another PR.

* some docs

* naming

* fmt
2024-01-01 05:19:52 -05:00
Justin MartinandClement Tsang 28d2950d92 deps: update ratatui version (#1362)
* cargo update ratatui

* replace convert_arc_labels with convert_mem_labels

* remove redundant generic

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2023-12-25 17:28:54 -05:00
Clement Tsang a67da93c5f other: if in a non-D0 state, short-circuit further logic (#1355)
* other: if in a non-D0 state, short-circuit further logic

* cleanup

* add back an empty name and value

* fix for macos/windows

* some testing things
2023-12-20 01:36:08 -05:00
Yuri Astrakhan 1e16456d5f chore: Minor cleanup - remove un-needed ident qualifiers (#1307)
Keep code a bit tidier and consistent (i.e. if an identifier already has a `use` entry above, why in some cases still prove a full path to it?)
2023-10-22 22:29:03 -04:00
Clement Tsang 751abecfe3 other: take ownership of config and matches when building App (#1215)
The clap matches/config struct was taken in as a reference when building
the App structure. However, we do not need to keep these around after
this, so we can instead take ownership of the match/config and drop it
after to save a bit of memory.
2023-06-19 01:47:57 -04:00
Clement Tsang 531e26ea45 other: post-0.9.2 cleanup (#1203)
* other: some cleanup

* other: add conditional logging macros

* more cleanup

* use compile-time feature for some text in clap
2023-06-12 01:01:07 -04:00
Clement Tsang f0121e6af4 other: enforce unused_imports lint again (#1189)
* other: enforce unused_imports lint again

I think there shouldn't be any issues with enforcing this now...

* set up cfg block so the logging feature doesn't break clippy

* some cleanup + comments
2023-06-08 02:28:36 -04:00
Clement Tsang 635e82a8a2 refactor: remove typed builder from App struct (#1176)
Another one on the chopping block. This also moves out the app
widget logic to a separate struct.
2023-05-28 00:46:13 -04:00
Clement Tsang 6b9663a2c2 other: clean up some fixmes (#1171) 2023-05-26 00:19:28 -04:00
Clement Tsang 69318465ae other: simplify termination/event loop logic (#1169)
This just simplifies the logic around ctrl-c and termination logic and
event loop logic to something simpler and without the need for timeouts
and/or atomics.

Instead, we just make termination an event sent by ctrl-c and use the
same receiver for event handling to react to it and break the loop.
2023-05-25 00:13:04 -04:00
Clement Tsang 3a8d85d487 refactor: use macros for initializing canvas styles (#1149)
* refactor: use macros for initializing canvas styles

* add quotes

* Simplify macro

* update tests

* more renaming
2023-05-13 05:22:09 -04:00
Clement Tsang b60a62d5f0 other: keep running even if logger fails to initialize (#1132)
This just makes it so that even if the logger is enabled, if it fails to
initialize (e.g. read-only directory), bottom will still continue to
start up, and just print a warning that the logger encountered an issue.
2023-05-06 12:56:01 -04:00
Clement Tsang c99e98c6d3 other: edit some comments 2023-04-28 00:00:23 -04:00
Clement Tsang 20902e87b9 other: Speed up first draw and first data collection (#1100)
* other: add first draw immediately after initialization

Previously, I would only do the first draw after an event triggered, so
this just makes it so that I *always* draw once first. Some widgets look
a bit weird with no data, but this is fine I guess if we want to gain a
bit of responsiveness.

* other: potentially shorten first time to get data

* other: move event loop thread init earlier in app initialization
2023-04-15 00:15:36 -04:00
Twan StokandClement Tsang 1b1e80ec3c feature: add buffer and cache memory (#1063)
* First implementation of cache memory data collection, mostly copied from RAM and swap implementations

* First implementation of cache memory display, copied from RAM and swap implementations. placed cache as second in the list as it is more similar to the RAM than any other item in the list

* expanded comment to explain method.

* rustfmt

* all cache-related code excluded on windows, in the process refactored src/data_conversion.rs convert_mem_label() to convert a single label instead of all at once

* better factoring-out of cache memory logic to allow individual disabling

* added --enable_cache_memory flag, disabled cache memory collection by default

* renamed CCH to CHE
not sure how i messed that up

* changelog updated

* Added command line flag documentation

* updated config file documentation

* specified that buffer and cache memory display does not work on windows

* resolved merge conflicts

* added documentation to cache memory data collection

* capitalized Windows

* implemented missing canvas styling logic

* fixed misplaced no-windows flag

* reduced colour collisions, as cache colour was the same as the first GPU colour

* made FIFTH_COLOUR constant windows-only

* Revert "made FIFTH_COLOUR constant windows-only"

This reverts commit 72698f1dd7.

* made FIFTH_COLOUR constant non-windows-only

* minor fix for basic mode row count

* Update src/app/data_harvester/memory/sysinfo.rs

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>

* Update src/canvas/widgets/mem_basic.rs

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>

* updated default_config.toml

* formatting

---------

Co-authored-by: ClementTsang <34804052+ClementTsang@users.noreply.github.com>
2023-04-12 22:51:41 -04:00
Clement Tsang 62474be52a deps: bump once_cell and related dependencies (#1090)
* deps: bump once_cell and related dependencies

Now that we've removed heim, I can bump up other dependencies that
relied on newer versions of once_cell.

* Add some dhat code

* dhat gitignore
2023-04-11 03:22:32 -04:00
Clement Tsang 9edde9b133 refactor: migrate disk collection code off of heim, remove heim (#1064)
Migrates existing heim-based disk data collection code off of it to either sysinfo or vendored code based on heim/sysinfo/other sources. This also allows us to remove heim completely from bottom.

---

* refactor: fix some refresh code

* remove async from the freebsd code

* some file/implementation organization

Turns out sysinfo lacks a lot of data I need. I can still use it for the
Windows disk usage implementation, but I'm probably going to manually
implement macos/linux usage and all io usage stats.

* more restructuring

* Some other fixes

* remove futures

* ready for some big changes?

* big changes

* linux io + reads

* use lossy conversion for mount point

* add windows refresh

* so long heim, and thanks for all the fish

* fix filter behaviour, remove string allocation when reading lines

* rename unix -> system for more accurate file struct representation

* fix freebsd

* port generic unix partition code

* add bindings and fix errors

* finish macOS bindings for I/O

* disable conform check, this seems to... make disk I/O work on macOS?????

* fix linux

* add safety comments

* more comments

* update changelog

* changelog

* We're going full 0.9.0 for this

* update lock

* fix some typing

* bleh

* some file management

* hoist out get_disk_usage

* fix some stuff for Windows

* typing and remove dead code allow lint

* unify typing

* fix

* fix 2

* macOS fix

* Add bindings file for windows

* add windows implementation

* fix macos
2023-04-10 05:52:46 -04:00
Clement Tsang 36f55de4d2 other: add clippy lints to deny todo and unimplemented (#1085) 2023-04-05 00:41:59 -04:00
Clement Tsang 7ee6da3776 refactor: unify on using bytes for the memory unit when harvesting (#1077)
* refactor: unify on using bytes for the memory unit when harvesting

* some ordering stuff that doesn't mean much

* some comments

* more fixes

* refactor: rename

* comments v2

* some more cleanup

* remove uninlined_format_args allow
2023-03-26 01:53:43 -04:00
Clement Tsang 10d7226b19 other: deny missing safety docs and add them (#1053) 2023-03-08 00:00:50 -05:00
Clement Tsang 78b1126fb4 other: move terminal check after the config check (#1027) 2023-02-20 00:57:09 -05:00
Clement Tsang edc61d428c bug: fix selected text bg colour being wrong if only the fg colour was set (#1021)
* rename file to be more generic

* fix selected text BG colour being wrong by default

* update changelog

* add test for bug
2023-02-18 00:51:13 -05:00
spitalandClement Tsang 021a727f19 other: replace deprecated value_of and is_present in clap
* Upgrade clap to 3.2.2 to allow future fix warnings

* cargo fmt fix

* Replaced deprecated `value_of` and `is_present`, builds with no warnings, clap 3.2.2

* cargo fmt

* updated according to comments. builds fine, cargo test fine

* Match some versions

* Update Cargo.lock

* Fix typo, mb

---------

Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
2023-01-31 19:34:52 -05:00
Clement Tsang 9ad1d8f0b4 other: ignore uninlined_format_args clippy lint for now (#1004) 2023-01-27 18:13:17 -05:00
Clement Tsang 21a21b86c0 ci: clean all workflow caches to script (#936) 2022-12-30 00:56:27 -05:00
Clement Tsang 1920f4b2e1 other: add a redraw event on resize (#926) 2022-12-05 04:34:19 -05:00
Clement Tsang d3577bd1ab other: don't draw on non-updating events (#924) 2022-12-03 01:18:47 -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 a07fa305fb bug: redirect stderr on FreeBSD to avoid drawing on UI (#897) 2022-11-17 03:18:05 -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 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 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
Justin Martin bd35bbdc9c feature: add gpu ram collector for nvidia feature flag (#794)
* add gpu ram collector for nvidia feature flag

* add row for TX in basic layout

* size gpu point_vec

* use vec for mem basic widget drawing

* remove to_owned

* code review: change mem tuple to struct with cfg fields, rename mem_basic ratio and use vec macro for layout

* build on freebsd
2022-10-15 15:08:48 -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