-
Notifications
You must be signed in to change notification settings - Fork 291
feature: option to have process tree entries be collapsed by default #1770
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1770 +/- ##
===========================================
+ Coverage 41.97% 53.55% +11.57%
===========================================
Files 115 115
Lines 15960 16030 +70
===========================================
+ Hits 6700 8585 +1885
+ Misses 9260 7445 -1815
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds functionality to collapse process tree entries by default, providing both command-line and configuration file options to control this behavior. The implementation introduces a new TreeCollapsed
enum that handles both default-collapsed and default-expanded states, replacing the previous simple HashSet<Pid>
approach.
Key changes:
- Introduction of
TreeCollapsed
enum to manage collapse/expand state with different default behaviors - Addition of
--tree_collapse
command-line flag andtree_collapse
config option - Refactoring of process tree logic to use the new state management system
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
src/widgets/process_table.rs |
Core implementation of TreeCollapsed enum and refactoring of tree mode logic |
src/options/config/flags.rs |
Addition of tree_collapse config field |
src/options/args.rs |
Addition of --tree_collapse command-line argument |
src/options.rs |
Integration of tree collapse option into app configuration |
src/app.rs |
Updates to use new tree collapse configuration when switching modes |
docs/content/configuration/config-file/flags.md |
Documentation for new config option |
docs/content/configuration/command-line-options.md |
Documentation for new command-line flag |
CHANGELOG.md |
Entry documenting the new feature |
Note to self: update schema. |
Also, add @all-contributors please add @Bucket-Bucket-Bucket for code |
I've put up a pull request to add @Bucket-Bucket-Bucket! 🎉 |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [ClementTsang/bottom](https://github.com/ClementTsang/bottom) | minor | `0.10.2` -> `0.11.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>ClementTsang/bottom (ClementTsang/bottom)</summary> ### [`v0.11.0`](https://github.com/ClementTsang/bottom/blob/HEAD/CHANGELOG.md#0110---2025-08-05) [Compare Source](ClementTsang/bottom@0.10.2...0.11.0) ##### Features - [#​1625](ClementTsang/bottom#1625): Add the ability to configure the disk widget's table columns. - [#​1641](ClementTsang/bottom#1641) + [#​1692](ClementTsang/bottom#1692): Support AMD GPU data collection on Linux. - [#​1642](ClementTsang/bottom#1642): Support changing the widget borders. - [#​1717](ClementTsang/bottom#1717): Support delete key (fn + delete on macOS) to kill processes. - [#​1306](ClementTsang/bottom#1306): Support using left/right key to collapse/expand process trees respectively. - [#​1767](ClementTsang/bottom#1767): Add a virtual memory column for processes. - [#​1770](ClementTsang/bottom#1770) (originally [#​1627](ClementTsang/bottom#1627)): Add option to have process tree entries be collapsed by default. ##### Bug Fixes - [#​1551](ClementTsang/bottom#1551): Fix missing parent section names in default config. - [#​1552](ClementTsang/bottom#1552): Fix typo in default config. - [#​1565](ClementTsang/bottom#1565): Fix issue where CPU usage in basic mode looks weird if core count isn't divisible by four. - [#​1578](ClementTsang/bottom#1578): Fix missing selected text background colour in `default-light` theme. - [#​1593](ClementTsang/bottom#1593): Fix using `"none"` for chart legend position in configs. - [#​1594](ClementTsang/bottom#1594): Fix incorrect default config definitions for chart legends. - [#​1596](ClementTsang/bottom#1596): Fix support for nilfs2 file system. - [#​1660](ClementTsang/bottom#1660): Fix properly cleaning up the terminal if the program is terminated due to an `Err` bubbling to the top. - [#​1663](ClementTsang/bottom#1663): Fix network graphs using log scaling having broken lines when a point was 0. - [#​1667](ClementTsang/bottom#1667): Fix for ARC/SWAP not being hidden in basic mode after refactor. - [#​1683](ClementTsang/bottom#1683): Fix graph lines potentially showing up behind legends. - [#​1701](ClementTsang/bottom#1701): Fix process kill dialog occasionally causing panics. - [#​1755](ClementTsang/bottom#1755): Fix missing stats/incorrect mount name for certain entries in the disk widget. - [#​1759](ClementTsang/bottom#1759): Fix increment for data tables if the change is greater than the number of entries left. ##### Changes - [#​1559](ClementTsang/bottom#1559): Rename `--enable_gpu` to `--disable_gpu`, and make GPU features enabled by default. - [#​1570](ClementTsang/bottom#1570): Consider `$XDG_CONFIG_HOME` on macOS when looking for a default config path in a backwards-compatible fashion. - [#​1686](ClementTsang/bottom#1686): Allow hyphenated arguments to work as well (e.g. `--autohide-time`). - [#​1701](ClementTsang/bottom#1701): Redesign process kill dialog. - [#​1706](ClementTsang/bottom#1706): Disable mouse capture when `disable_click` is set. - [#​1769](ClementTsang/bottom#1769): Change how we calculate swap usage in Windows. ##### Other - [#​1655](ClementTsang/bottom#1655): Better handle NVIDIA GPUs on Linux with only libnvidia-ml.so.1. - [#​1658](ClementTsang/bottom#1658): Make it possible to override completion/manpage generation output directory via env. - [#​1663](ClementTsang/bottom#1663): Rework how data is stored internally, reducing memory usage a bit. - [#​1749](ClementTsang/bottom#1749): Fix invalid desktop file values. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41My4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Description
A description of the change, what it does, and why it was made. If relevant (such as any change that modifies the UI), please provide screenshots of the changes:
(Supersedes #1627 due to issues with adding a change, credits to @Bucket-Bucket-Bucket)
Adds a command line option and config file option to have the process tree view have all entries collapsed by default.
Issue
If applicable, what issue does this address?
Closes: #1612
Testing
If relevant, please state how this was tested. All changes must be tested to work:
If this is a code change, please also indicate which platforms were tested:
Checklist
If relevant, ensure the following have been met:
cargo fmt
)README.md
, help menu, doc pages, etc.)