2019-09-04 06:27:25 +03:00
|
|
|
[package]
|
2019-09-17 05:54:39 +03:00
|
|
|
name = "bottom"
|
2023-01-21 02:55:31 +03:00
|
|
|
version = "0.8.0"
|
2020-01-12 02:21:14 +03:00
|
|
|
authors = ["Clement Tsang <cjhtsang@uwaterloo.ca>"]
|
2023-01-18 10:26:30 +03:00
|
|
|
edition = "2021"
|
2019-09-17 05:54:39 +03:00
|
|
|
repository = "https://github.com/ClementTsang/bottom"
|
2020-02-23 02:41:13 +03:00
|
|
|
keywords = ["cross-platform", "monitoring", "cli", "top", "tui"]
|
2019-09-17 05:42:23 +03:00
|
|
|
license = "MIT"
|
2020-02-19 08:16:40 +03:00
|
|
|
categories = ["command-line-utilities", "visualization"]
|
2022-01-20 07:49:11 +03:00
|
|
|
description = "A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows."
|
|
|
|
documentation = "https://clementtsang.github.io/bottom/stable"
|
2019-09-17 07:24:36 +03:00
|
|
|
readme = "README.md"
|
2020-08-19 23:32:33 +03:00
|
|
|
default-run = "btm"
|
2022-03-11 14:45:05 +03:00
|
|
|
build = "build.rs"
|
2022-06-29 03:39:43 +03:00
|
|
|
exclude = [
|
2022-11-05 08:00:33 +03:00
|
|
|
".cargo-husky/",
|
2022-06-29 03:39:43 +03:00
|
|
|
".github/",
|
|
|
|
"assets/",
|
2022-11-06 11:19:52 +03:00
|
|
|
"scripts/",
|
2022-06-29 03:39:43 +03:00
|
|
|
"docs/",
|
2022-08-31 01:25:16 +03:00
|
|
|
"sample_configs/",
|
2022-11-05 08:00:33 +03:00
|
|
|
".all-contributorsrc",
|
|
|
|
".cirrus.yml",
|
|
|
|
".markdownlint.json",
|
|
|
|
"CHANGELOG.md",
|
|
|
|
"clippy.toml",
|
|
|
|
"codecov.yml",
|
|
|
|
"CONTRIBUTING.md",
|
|
|
|
"Cross.toml",
|
|
|
|
"rustfmt.toml",
|
2022-06-29 03:39:43 +03:00
|
|
|
]
|
2019-09-04 06:27:25 +03:00
|
|
|
|
2019-10-19 23:29:04 +03:00
|
|
|
[[bin]]
|
|
|
|
name = "btm"
|
2020-08-19 23:32:33 +03:00
|
|
|
path = "src/bin/main.rs"
|
|
|
|
doc = false
|
2019-09-04 06:27:25 +03:00
|
|
|
|
2021-03-01 01:40:55 +03:00
|
|
|
[lib]
|
2022-01-28 03:16:27 +03:00
|
|
|
test = true
|
2022-06-15 01:31:32 +03:00
|
|
|
doctest = true
|
|
|
|
doc = true
|
2021-03-01 01:40:55 +03:00
|
|
|
|
2020-01-05 00:07:35 +03:00
|
|
|
[profile.release]
|
2023-01-20 08:08:02 +03:00
|
|
|
# debug = true # Might be nice to have a custom profile for flamegraphs.
|
2022-11-29 11:53:58 +03:00
|
|
|
# strip = false
|
2020-12-18 08:40:55 +03:00
|
|
|
debug = 0
|
2022-05-15 11:25:48 +03:00
|
|
|
strip = "symbols"
|
2020-12-18 08:40:55 +03:00
|
|
|
lto = true
|
2020-02-18 02:13:13 +03:00
|
|
|
opt-level = 3
|
2020-03-05 10:23:19 +03:00
|
|
|
codegen-units = 1
|
2020-01-05 00:07:35 +03:00
|
|
|
|
2020-12-12 04:39:32 +03:00
|
|
|
[features]
|
2022-05-07 00:16:57 +03:00
|
|
|
battery = ["starship-battery"]
|
2022-02-13 00:40:33 +03:00
|
|
|
gpu = ["nvidia"]
|
|
|
|
nvidia = ["nvml-wrapper"]
|
2022-08-22 09:47:22 +03:00
|
|
|
zfs = ["sysctl"]
|
2020-12-12 04:39:32 +03:00
|
|
|
|
2022-09-14 12:50:34 +03:00
|
|
|
# The features we use by default.
|
|
|
|
default = ["fern", "log", "battery", "gpu", "zfs"]
|
|
|
|
|
|
|
|
# The features we use on deploy. Logging is not included as that is primarily (for now) just for debugging locally.
|
|
|
|
deploy = ["battery", "gpu", "zfs"]
|
|
|
|
|
2019-09-04 06:27:25 +03:00
|
|
|
[dependencies]
|
2022-04-28 02:23:34 +03:00
|
|
|
anyhow = "1.0.57"
|
2023-01-15 06:36:30 +03:00
|
|
|
backtrace = "0.3.67"
|
2022-05-07 10:38:55 +03:00
|
|
|
cfg-if = "1.0.0"
|
2022-04-28 02:23:34 +03:00
|
|
|
clap = { version = "3.1.12", features = ["default", "cargo", "wrap_help"] }
|
2022-11-20 09:13:24 +03:00
|
|
|
const_format = "0.2.30"
|
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-27 09:13:48 +03:00
|
|
|
concat-string = "1.0.1"
|
2022-11-08 08:56:39 +03:00
|
|
|
crossterm = "0.25.0"
|
2023-01-15 02:37:29 +03:00
|
|
|
ctrlc = { version = "3.2.4", features = ["termination"] }
|
2022-02-25 13:21:46 +03:00
|
|
|
dirs = "4.0.0"
|
2022-09-08 06:51:08 +03:00
|
|
|
fern = { version = "0.6.1", optional = true }
|
2023-01-15 06:36:30 +03:00
|
|
|
futures = "0.3.25"
|
2021-05-09 08:39:42 +03:00
|
|
|
futures-timer = "3.0.2"
|
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 08:19:17 +03:00
|
|
|
fxhash = "0.2.1"
|
2022-11-13 09:51:10 +03:00
|
|
|
humantime = "2.1.0"
|
|
|
|
humantime-serde = "1.1.1"
|
2023-01-15 03:03:49 +03:00
|
|
|
indexmap = "1.9.2"
|
2023-01-15 03:13:31 +03:00
|
|
|
itertools = "0.10.5"
|
2022-10-12 23:25:38 +03:00
|
|
|
kstring = { version = "2.0.0", features = ["arc"] }
|
2023-01-15 03:13:31 +03:00
|
|
|
log = { version = "0.4.17", optional = true }
|
2022-11-05 09:12:31 +03:00
|
|
|
nvml-wrapper = { version = "0.8.0", optional = true }
|
2020-11-23 00:44:40 +03:00
|
|
|
once_cell = "1.5.2"
|
2023-01-15 05:19:10 +03:00
|
|
|
regex = "1.7.1"
|
2023-01-15 03:13:31 +03:00
|
|
|
serde = { version = "1.0.152", features = ["derive"] }
|
2022-09-08 06:51:08 +03:00
|
|
|
starship-battery = { version = "0.7.9", optional = true }
|
2022-11-05 02:38:14 +03:00
|
|
|
sysinfo = "0.26.7"
|
2023-01-15 06:36:30 +03:00
|
|
|
thiserror = "1.0.38"
|
2022-04-28 02:23:34 +03:00
|
|
|
time = { version = "0.3.9", features = ["formatting", "macros"] }
|
2023-01-15 06:36:30 +03:00
|
|
|
toml = "0.5.10"
|
2022-11-08 08:56:39 +03:00
|
|
|
tui = "0.19.0"
|
2022-04-28 02:23:34 +03:00
|
|
|
typed-builder = "0.10.0"
|
2023-01-15 05:05:58 +03:00
|
|
|
unicode-segmentation = "1.10.0"
|
|
|
|
unicode-width = "0.1.10"
|
2019-09-15 04:22:57 +03:00
|
|
|
|
2020-12-22 04:24:27 +03:00
|
|
|
[target.'cfg(unix)'.dependencies]
|
2022-04-28 02:23:34 +03:00
|
|
|
libc = "0.2.124"
|
2020-12-22 04:24:27 +03:00
|
|
|
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
2023-01-18 09:52:55 +03:00
|
|
|
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory", "net", "sensors"] }
|
2023-01-15 02:37:29 +03:00
|
|
|
procfs = { version = "0.14.2", default-features = false }
|
2021-07-18 05:27:40 +03:00
|
|
|
smol = "1.2.5"
|
2020-05-02 06:53:29 +03:00
|
|
|
|
2020-12-22 04:24:27 +03:00
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
2021-05-14 06:41:43 +03:00
|
|
|
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory", "net"] }
|
2022-10-12 02:49:39 +03:00
|
|
|
mach2 = "0.4.1"
|
2020-09-02 09:59:51 +03:00
|
|
|
|
2020-12-22 04:24:27 +03:00
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
2021-05-09 08:39:42 +03:00
|
|
|
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory"] }
|
2023-01-18 09:43:08 +03:00
|
|
|
windows = { version = "0.44.0", features = ["Win32_System_Threading", "Win32_Foundation"] }
|
2020-08-21 23:00:14 +03:00
|
|
|
winapi = "0.3.9"
|
2020-02-29 05:15:36 +03:00
|
|
|
|
2022-07-24 03:44:29 +03:00
|
|
|
[target.'cfg(target_os = "freebsd")'.dependencies]
|
|
|
|
serde_json = { version = "1.0.82" }
|
2022-11-14 01:43:55 +03:00
|
|
|
sysctl = { version = "0.5.2", optional = true }
|
2022-11-17 11:18:05 +03:00
|
|
|
filedescriptor = "0.8.2"
|
2022-07-24 03:44:29 +03:00
|
|
|
|
2019-09-15 04:22:57 +03:00
|
|
|
[dev-dependencies]
|
2022-04-28 02:23:34 +03:00
|
|
|
assert_cmd = "2.0.4"
|
|
|
|
predicates = "2.1.1"
|
2020-02-23 02:38:18 +03:00
|
|
|
|
2022-03-11 14:45:05 +03:00
|
|
|
[build-dependencies]
|
2022-04-28 02:23:34 +03:00
|
|
|
clap = { version = "3.1.12", features = ["default", "cargo", "wrap_help"] }
|
|
|
|
clap_complete = "3.1.2"
|
|
|
|
clap_mangen = "0.1.6"
|
2020-09-01 00:50:21 +03:00
|
|
|
|
2020-02-23 02:38:18 +03:00
|
|
|
[package.metadata.deb]
|
2020-08-23 03:22:47 +03:00
|
|
|
section = "utility"
|
2020-02-23 02:38:18 +03:00
|
|
|
assets = [
|
2022-12-30 11:06:48 +03:00
|
|
|
[
|
|
|
|
"target/release/btm",
|
|
|
|
"usr/bin/",
|
|
|
|
"755",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"LICENSE",
|
|
|
|
"usr/share/doc/btm/",
|
|
|
|
"644",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"manpage/btm.1.gz",
|
|
|
|
"usr/share/man/man1/btm.1.gz",
|
|
|
|
"644",
|
|
|
|
],
|
2021-05-14 06:41:43 +03:00
|
|
|
[
|
2021-12-28 00:49:15 +03:00
|
|
|
"completion/btm.bash",
|
2021-05-14 06:41:43 +03:00
|
|
|
"usr/share/bash-completion/completions/btm",
|
|
|
|
"644",
|
|
|
|
],
|
|
|
|
[
|
2021-12-28 00:49:15 +03:00
|
|
|
"completion/btm.fish",
|
2021-05-14 06:41:43 +03:00
|
|
|
"usr/share/fish/vendor_completions.d/btm.fish",
|
|
|
|
"644",
|
|
|
|
],
|
2022-12-30 11:06:48 +03:00
|
|
|
[
|
|
|
|
"completion/_btm",
|
|
|
|
"usr/share/zsh/vendor-completions/",
|
|
|
|
"644",
|
|
|
|
],
|
2020-02-23 02:38:18 +03:00
|
|
|
]
|
2022-11-20 11:22:22 +03:00
|
|
|
extended-description = """
|
2020-09-01 00:50:21 +03:00
|
|
|
|
2022-11-20 11:22:22 +03:00
|
|
|
By default, bottom will look for a config file in ~/.config/bottom/bottom.toml. A config file can be specified \
|
|
|
|
using `-C`. If a config file does not exist at the specified or default location, a default one will be created \
|
|
|
|
for the user there.
|
2020-02-25 17:54:03 +03:00
|
|
|
"""
|
2020-08-24 04:22:31 +03:00
|
|
|
|
2022-05-28 23:14:25 +03:00
|
|
|
[package.metadata.deb.variants.arm64]
|
|
|
|
depends = "libc6:arm64 (>= 2.28)"
|
|
|
|
|
|
|
|
[package.metadata.deb.variants.armhf]
|
|
|
|
depends = "libc6:armhf (>= 2.28)"
|
|
|
|
|
2020-08-24 04:22:31 +03:00
|
|
|
[package.metadata.wix]
|
2020-08-24 04:39:53 +03:00
|
|
|
output = "bottom_x86_64_installer.msi"
|
|
|
|
|
|
|
|
[dev-dependencies.cargo-husky]
|
|
|
|
version = "1"
|
2020-09-01 06:59:33 +03:00
|
|
|
default-features = false
|
2020-12-11 06:29:25 +03:00
|
|
|
features = ["user-hooks"]
|