diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 96194383..70f2a815 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -81,7 +81,7 @@ body: It would also be helpful if you are not running [the latest version](https://github.com/ClementTsang/bottom/releases/latest) to try that as well to see if the issue has already been resolved. - placeholder: 0.11.1 + placeholder: 0.11.2 - type: textarea id: install diff --git a/CHANGELOG.md b/CHANGELOG.md index 06b52811..240308a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ That said, these are more guidelines rather than hardset rules, though the proje --- -## [0.12.0] - Unreleased +## [0.11.2] - 2025-10-07 ### Features @@ -33,6 +33,13 @@ That said, these are more guidelines rather than hardset rules, though the proje - [#1804](https://github.com/ClementTsang/bottom/pull/1804): Draw average CPU last again. - [#1811](https://github.com/ClementTsang/bottom/pull/1811): Fix drawing average CPU in basic mode when dedicated row is enabled. - [#1817](https://github.com/ClementTsang/bottom/pull/1817): Fix builds for FreeBSD on ARM/PowerPC due to `libc::c_char` data type being different. +- [#1821](https://github.com/ClementTsang/bottom/pull/1821): Use alpha version of ratatui version which fixes drawing at high resolutions. +- [#1827](https://github.com/ClementTsang/bottom/pull/1827): Fix crash for Windows where the network widget could cause a crash if the program started too quickly after boot under certain settings. + +### Other + +- [#1801](https://github.com/ClementTsang/bottom/pull/1801): Build and check Windows ARM. +- [#1816](https://github.com/ClementTsang/bottom/pull/1816): Optimize username cloning on Unix. ## [0.11.1] - 2025-08-15 diff --git a/Cargo.lock b/Cargo.lock index 9af94b4a..f62b28fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -178,7 +178,7 @@ dependencies = [ [[package]] name = "bottom" -version = "0.12.0" +version = "0.11.2" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index d5751cc9..9fd08b27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bottom" -version = "0.12.0" +version = "0.11.2" repository = "https://github.com/ClementTsang/bottom" license = "MIT" description = "A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows." diff --git a/README.md b/README.md index e5fa9eab..b369d850 100644 --- a/README.md +++ b/README.md @@ -163,8 +163,8 @@ Alternatively, you can use `cargo install` using the repo as the source. rustup update stable # Option 1 - Download an archive from releases and install -curl -LO https://github.com/ClementTsang/bottom/archive/0.11.1.tar.gz -tar -xzvf 0.11.1.tar.gz +curl -LO https://github.com/ClementTsang/bottom/archive/0.11.2.tar.gz +tar -xzvf 0.11.2.tar.gz cargo install --path . --locked # Option 2 - Manually clone the repo and install @@ -216,20 +216,20 @@ Some examples of installing it this way: ```bash # x86-64 -curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.1/bottom_0.11.1-1_amd64.deb -sudo dpkg -i bottom_0.11.1-1_amd64.deb +curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.2/bottom_0.11.2-1_amd64.deb +sudo dpkg -i bottom_0.11.2-1_amd64.deb # ARM64 -curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.1/bottom_0.11.1-1_arm64.deb -sudo dpkg -i bottom_0.11.1-1_arm64.deb +curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.2/bottom_0.11.2-1_arm64.deb +sudo dpkg -i bottom_0.11.2-1_arm64.deb # ARM -curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.1/bottom_0.11.1-1_armhf.deb -sudo dpkg -i bottom_0.11.1-1_armhf.deb +curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.2/bottom_0.11.2-1_armhf.deb +sudo dpkg -i bottom_0.11.2-1_armhf.deb # musl-based -curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.1/bottom-musl_0.11.1-1_amd64.deb -sudo dpkg -i bottom-musl_0.11.1-1_amd64.deb +curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.2/bottom-musl_0.11.2-1_amd64.deb +sudo dpkg -i bottom-musl_0.11.2-1_amd64.deb ``` ### Exherbo Linux @@ -261,8 +261,8 @@ sudo dnf install bottom For example: ```bash -curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.1/bottom-0.11.1-1.x86_64.rpm -sudo rpm -i bottom-0.11.1-1.x86_64.rpm +curl -LO https://github.com/ClementTsang/bottom/releases/download/0.11.2/bottom-0.11.2-1.x86_64.rpm +sudo rpm -i bottom-0.11.2-1.x86_64.rpm ``` ### Gentoo diff --git a/schema/nightly/bottom.json b/schema/nightly/bottom.json index 352c63d8..1963eb46 100644 --- a/schema/nightly/bottom.json +++ b/schema/nightly/bottom.json @@ -138,7 +138,7 @@ } }, "CpuDefault": { - "description": "The default selection of the CPU widget. If the given selection is invalid,\n we will fall back to all.", + "description": "The default selection of the CPU widget. If the given selection is invalid,\nwe will fall back to all.", "type": "string", "enum": [ "all", @@ -243,9 +243,6 @@ "description": "Represents a widget.", "type": "object", "properties": { - "type": { - "type": "string" - }, "default": { "type": [ "boolean", @@ -259,6 +256,9 @@ ], "format": "uint32", "minimum": 0 + }, + "type": { + "type": "string" } }, "required": [ @@ -777,7 +777,7 @@ } }, "RowChildren": { - "description": "Represents a child of a Row - either a Col (column) or a FinalWidget.\n\n A Col can also have an optional length and children. We only allow columns\n to have FinalWidgets as children, lest we get some amount of mutual\n recursion between Row and Col.", + "description": "Represents a child of a Row - either a Col (column) or a FinalWidget.\n\nA Col can also have an optional length and children. We only allow columns\nto have FinalWidgets as children, lest we get some amount of mutual\nrecursion between Row and Col.", "anyOf": [ { "$ref": "#/$defs/FinalWidget" @@ -889,7 +889,7 @@ ] }, "theme": { - "description": "A built-in theme.\n\n If this is and a custom colour are both set, in the config file,\n the custom colour scheme will be prioritized first. If a theme\n is set in the command-line args, however, it will always be\n prioritized first.", + "description": "A built-in theme.\n\nIf this is and a custom colour are both set, in the config file,\nthe custom colour scheme will be prioritized first. If a theme\nis set in the command-line args, however, it will always be\nprioritized first.", "type": [ "string", "null" @@ -963,7 +963,7 @@ ] }, "bold": { - "description": "Whether to make this text bolded or not. If not set,\n will default to built-in defaults.", + "description": "Whether to make this text bolded or not. If not set,\nwill default to built-in defaults.", "type": [ "boolean", "null" @@ -981,7 +981,7 @@ ] }, "italics": { - "description": "Whether to make this text italicized or not. If not set,\n will default to built-in defaults.", + "description": "Whether to make this text italicized or not. If not set,\nwill default to built-in defaults.", "type": [ "boolean", "null" @@ -1060,7 +1060,7 @@ ] }, "thread_text": { - "description": "Text styling for text when representing process threads. Only usable\n on Linux at the moment.", + "description": "Text styling for text when representing process threads. Only usable\non Linux at the moment.", "anyOf": [ { "$ref": "#/$defs/TextStyleConfig" @@ -1095,7 +1095,7 @@ } }, "row": { - "description": "Represents a row. This has a length of some sort (optional) and a vector\n of children.", + "description": "Represents a row. This has a length of some sort (optional) and a vector\nof children.", "type": "object", "properties": { "child": { diff --git a/schema/v0.11/bottom.json b/schema/v0.11/bottom.json index 17f9b56a..2beb66c6 100644 --- a/schema/v0.11/bottom.json +++ b/schema/v0.11/bottom.json @@ -28,7 +28,7 @@ "flags": { "anyOf": [ { - "$ref": "#/$defs/FlagConfig" + "$ref": "#/$defs/GeneralConfig" }, { "type": "null" @@ -138,7 +138,7 @@ } }, "CpuDefault": { - "description": "The default selection of the CPU widget. If the given selection is invalid,\n we will fall back to all.", + "description": "The default selection of the CPU widget. If the given selection is invalid,\nwe will fall back to all.", "type": "string", "enum": [ "all", @@ -207,7 +207,10 @@ "properties": { "columns": { "description": "A list of disk widget columns.", - "type": "array", + "type": [ + "array", + "null" + ], "items": { "$ref": "#/$defs/DiskColumn" } @@ -240,9 +243,6 @@ "description": "Represents a widget.", "type": "object", "properties": { - "type": { - "type": "string" - }, "default": { "type": [ "boolean", @@ -256,13 +256,16 @@ ], "format": "uint32", "minimum": 0 + }, + "type": { + "type": "string" } }, "required": [ "type" ] }, - "FlagConfig": { + "GeneralConfig": { "type": "object", "properties": { "autohide_time": { @@ -349,6 +352,12 @@ "null" ] }, + "disable_keys": { + "type": [ + "boolean", + "null" + ] + }, "dot_marker": { "type": [ "boolean", @@ -379,6 +388,12 @@ "null" ] }, + "hide_k_threads": { + "type": [ + "boolean", + "null" + ] + }, "hide_table_gap": { "type": [ "boolean", @@ -751,11 +766,18 @@ "items": { "$ref": "#/$defs/ProcColumn" } + }, + "get_threads": { + "description": "Whether to get process child threads.", + "type": [ + "boolean", + "null" + ] } } }, "RowChildren": { - "description": "Represents a child of a Row - either a Col (column) or a FinalWidget.\n\n A Col can also have an optional length and children. We only allow columns\n to have FinalWidgets as children, lest we get some amount of mutual\n recursion between Row and Col.", + "description": "Represents a child of a Row - either a Col (column) or a FinalWidget.\n\nA Col can also have an optional length and children. We only allow columns\nto have FinalWidgets as children, lest we get some amount of mutual\nrecursion between Row and Col.", "anyOf": [ { "$ref": "#/$defs/FinalWidget" @@ -867,7 +889,7 @@ ] }, "theme": { - "description": "A built-in theme.\n\n If this is and a custom colour are both set, in the config file,\n the custom colour scheme will be prioritized first. If a theme\n is set in the command-line args, however, it will always be\n prioritized first.", + "description": "A built-in theme.\n\nIf this is and a custom colour are both set, in the config file,\nthe custom colour scheme will be prioritized first. If a theme\nis set in the command-line args, however, it will always be\nprioritized first.", "type": [ "string", "null" @@ -941,7 +963,7 @@ ] }, "bold": { - "description": "Whether to make this text bolded or not. If not set,\n will default to built-in defaults.", + "description": "Whether to make this text bolded or not. If not set,\nwill default to built-in defaults.", "type": [ "boolean", "null" @@ -959,7 +981,7 @@ ] }, "italics": { - "description": "Whether to make this text italicized or not. If not set,\n will default to built-in defaults.", + "description": "Whether to make this text italicized or not. If not set,\nwill default to built-in defaults.", "type": [ "boolean", "null" @@ -1037,6 +1059,17 @@ } ] }, + "thread_text": { + "description": "Text styling for text when representing process threads. Only usable\non Linux at the moment.", + "anyOf": [ + { + "$ref": "#/$defs/TextStyleConfig" + }, + { + "type": "null" + } + ] + }, "widget_border_type": { "description": "Widget borders type.", "anyOf": [ @@ -1062,7 +1095,7 @@ } }, "row": { - "description": "Represents a row. This has a length of some sort (optional) and a vector\n of children.", + "description": "Represents a row. This has a length of some sort (optional) and a vector\nof children.", "type": "object", "properties": { "child": {