summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-04-02 05:06:31 +0000
committergithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-04-02 05:06:31 +0000
commit315798c0bf2d8eb923a346564c02982ae1a31c1d (patch)
treeaf59e1fdd19509593431f003672f78eabe13a4f8
parent2ccaef410947a55848c22c6c35a1a333ea5d4fe2 (diff)
Deployed a083ec00 to nightly with MkDocs 1.5.3 and mike 2.0.0
-rw-r--r--nightly/configuration/command-line-options/index.html10
-rw-r--r--nightly/configuration/config-file/flags/index.html14
-rw-r--r--nightly/search/search_index.json2
-rw-r--r--nightly/sitemap.xml58
-rw-r--r--nightly/sitemap.xml.gzbin489 -> 488 bytes
5 files changed, 51 insertions, 33 deletions
diff --git a/nightly/configuration/command-line-options/index.html b/nightly/configuration/command-line-options/index.html
index ccb9b7f5..f6dcaeab 100644
--- a/nightly/configuration/command-line-options/index.html
+++ b/nightly/configuration/command-line-options/index.html
@@ -1729,6 +1729,10 @@ see information on these options by running <code>btm -h</code>, or run <code>bt
<td><code>--mem_as_value</code></td>
<td>Defaults to showing process memory usage by value.</td>
</tr>
+<tr>
+<td><code>--memory_legend</code></td>
+<td>Where to place the legend for the memory widget.</td>
+</tr>
</tbody>
</table>
<h2 id="network-options"><a class="toclink" href="#network-options">Network Options</a></h2>
@@ -1753,6 +1757,10 @@ see information on these options by running <code>btm -h</code>, or run <code>bt
<td>Displays the network widget with a log scale.</td>
</tr>
<tr>
+<td><code>--network_legend</code></td>
+<td>Where to place the legend for the network widget.</td>
+</tr>
+<tr>
<td><code>--use_old_network_legend</code></td>
<td>DEPRECATED - uses a separate network legend.</td>
</tr>
@@ -1842,7 +1850,7 @@ see information on these options by running <code>btm -h</code>, or run <code>bt
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
- <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 11, 2024</span>
+ <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">April 2, 2024</span>
</span>
diff --git a/nightly/configuration/config-file/flags/index.html b/nightly/configuration/config-file/flags/index.html
index 7d1e5521..554a7e6a 100644
--- a/nightly/configuration/config-file/flags/index.html
+++ b/nightly/configuration/config-file/flags/index.html
@@ -1548,7 +1548,7 @@ each time:</p>
<tr>
<td><code>enable_cache_memory</code></td>
<td>Boolean</td>
-<td>Enable collecting and displaying cache and buffer memory (not available on Windows).</td>
+<td>Enable cache and buffer memory stats (not available on Windows).</td>
</tr>
<tr>
<td><code>mem_as_value</code></td>
@@ -1610,6 +1610,16 @@ each time:</p>
<td>Boolean</td>
<td>Expand the default widget upon starting the app.</td>
</tr>
+<tr>
+<td><code>memory_legend</code></td>
+<td>String (one of ["none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right"])</td>
+<td>Where to place the legend for the memory widget.</td>
+</tr>
+<tr>
+<td><code>network_legend</code></td>
+<td>String (one of ["none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right"])</td>
+<td>Where to place the legend for the network widget.</td>
+</tr>
</tbody>
</table>
@@ -1632,7 +1642,7 @@ each time:</p>
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
- <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 11, 2024</span>
+ <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">April 2, 2024</span>
</span>
diff --git a/nightly/search/search_index.json b/nightly/search/search_index.json
index af92b15b..9341057e 100644
--- a/nightly/search/search_index.json
+++ b/nightly/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"<code>bottom</code>","text":"<p>A customizable cross-platform graphical process/system monitor for the terminal, supporting Linux, macOS, and Windows. Inspired by other tools like gtop, gotop, and htop.</p> <p>This site serves as extended documentation for bottom alongside the <code>README.md</code>.</p> <p>Warning</p> <p>Some areas of this site are still in progress and may be missing details. Feel free to suggest/contribute changes!</p>"},{"location":"#installation","title":"Installation","text":"<p>Tip</p> <p>It's as good idea to first check out the Support page to see if your system is officially supported!</p> <p>Tip</p> <p>If you're facing some issues during/after installation, check out the Troubleshooting page for some common problems and solutions.</p> <p>To install bottom, refer to the installation section of the <code>README.md</code>, which contains a list of all the installation methods.</p>"},{"location":"#usage-and-configuration","title":"Usage and configuration","text":"<p>The command to run bottom is <code>btm</code>.</p> <p>You can refer to the usage pages for more details on using bottom (e.g. keybinds, some features, a general overview of what each widget does).</p> <p>To configure bottom (e.g. how it behaves, how it looks, etc.) refer to the command-line options page for temporary settings, or the config file page for more permanent settings.</p>"},{"location":"#contribution","title":"Contribution","text":"<p>New contributors are always welcome! See the contribution section for how to contribute to bottom, whether it be filing issues, writing documentation, creating pull requests, etc.</p>"},{"location":"troubleshooting/","title":"Troubleshooting","text":""},{"location":"troubleshooting/#the-graph-points-look-brokenstrange","title":"The graph points look broken/strange","text":"<p>It's possible that your graphs won't look great out of the box due to the reliance on braille fonts to draw them. One example of this is seeing a bunch of missing font characters, caused when the terminal isn't configured properly to render braille fonts.</p> <sub>An example of missing braille fonts in Powershell</sub> <p>One alternative is to use the <code>--dot_marker</code> option to render graph charts using dots instead of the braille characters, which generally seems better supported out of the box, at the expense of looking less intricate:</p> <sub>Example using <code>btm --dot_marker</code></sub> <p>Another (better) alternative is to install a font that supports braille fonts, and configure your terminal emulator to use it. For example, installing something like UBraille or Iosevka and ensuring your terminal uses it should work.</p>"},{"location":"troubleshooting/#braille-font-issues-on-linuxmacosunix-like","title":"Braille font issues on Linux/macOS/Unix-like","text":"<p>Generally, the problem comes down to you either not having a font that supports the braille markers, or your terminal emulator is not using the correct font for the braille markers.</p> <p>See here for possible fixes if you're having font issues on Linux, which may also be helpful for macOS or other Unix-like systems.</p> <p>If you're still having issues, feel free to open a discussion question about it.</p>"},{"location":"troubleshooting/#installing-fonts-for-windows-command-promptpowershell","title":"Installing fonts for Windows Command Prompt/PowerShell","text":"<p>Note: I would advise backing up your registry beforehand if you aren't sure what you are doing!</p> <p>Let's say you're installing Iosevka. The steps you can take are:</p> <ol> <li>Install the font itself.</li> <li>Open the registry editor, which you can do either by <code>Win+R</code> and opening <code>regedit</code>, or just opening it from the Start Menu.</li> <li> <p>In the registry editor, go to</p> <pre><code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont\n</code></pre> </li> <li> <p>Here, add a new <code>String value</code>, and set the <code>Name</code> to a bunch of 0's (e.g. <code>000</code> - make sure the name isn't already used), then set the <code>Data</code> to the font name (e.g. <code>Iosevka</code>).</p> <p> <sub>The last entry is the new entry for Iosevka</sub> </p> </li> <li> <p>Then, open the Command Prompt/PowerShell, and right-click on the top bar, and open \"Properties\":</p> <p> </p> </li> <li> <p>From here, go to \"Font\", and set the font to your new font (so in this example, Iosevka):</p> </li> </ol>"},{"location":"troubleshooting/#why-cant-i-see-all-my-temperature-sensors-on-windows","title":"Why can't I see all my temperature sensors on Windows?","text":"<p>This is a known limitation, some sensors may require admin privileges to get sensor data.</p>"},{"location":"troubleshooting/#why-dont-i-see-dual-batteries-on-windows-reported-separately-eg-thinkpads","title":"Why don't I see dual batteries on Windows reported separately? (e.g. Thinkpads)","text":"<p>This is a known limitation which seems to be with how batteries are being detected on Windows.</p>"},{"location":"troubleshooting/#why-cant-i-see-all-my-temperature-sensors-on-wsl","title":"Why can't I see all my temperature sensors on WSL?","text":"<p>This is a known limitation with WSL. Due to how it works, hosts may not expose their temperature sensors and therefore, temperature sensors might be missing.</p>"},{"location":"troubleshooting/#why-does-wsl2-not-match-task-manager","title":"Why does WSL2 not match Task Manager?","text":"<p>This is a known limitation with WSL2. Due to how WSL2 works, the two might not match up in terms of reported data.</p>"},{"location":"troubleshooting/#why-cant-i-see-all-my-processesprocess-data-on-macos","title":"Why can't I see all my processes/process data on macOS?","text":"<p>This is a known limitation, and you may have to run the program with elevated privileges to work around it - for example:</p> <pre><code>sudo btm\n</code></pre> <p>Please note that you should be certain that you trust any software you grant root privileges.</p> <p>There are measures taken to try to maximize the amount of information obtained without elevated privileges. For example, one can modify the instructions found on the htop wiki on how to run htop without sudo for bottom. However, please understand the potential security risks before doing so!</p>"},{"location":"troubleshooting/#my-configuration-file-isnt-working","title":"My configuration file isn't working","text":"<p>If your configuration files aren't working, here are a few things to try:</p>"},{"location":"troubleshooting/#check-the-formatting","title":"Check the formatting","text":"<p>It may be handy to refer to the automatically generated config files or the sample configuration files. The config files also follow the TOML format.</p> <p>Also make sure your config options are under the right table - for example, to set your temperature type, you must set it under the <code>[flags]</code> table:</p> <pre><code>[flags]\ntemperature_type = \"f\"\n</code></pre> <p>Meanwhile, if you want to set a custom color scheme, it would be under the <code>[colors]</code> table:</p> <pre><code>[colors]\ntable_header_color=\"LightBlue\"\n</code></pre>"},{"location":"troubleshooting/#check-the-configuration-file-location","title":"Check the configuration file location","text":"<p>Make sure bottom is reading the right configuration file. By default, bottom looks for config files at these locations:</p> OS Default Config Location macOS <code>$HOME/Library/Application Support/bottom/bottom.toml</code> <code>~/.config/bottom/bottom.toml</code> <code>$XDG_CONFIG_HOME/bottom/bottom.toml</code> Linux <code>~/.config/bottom/bottom.toml</code> <code>$XDG_CONFIG_HOME/bottom/bottom.toml</code> Windows <code>C:\\Users\\&lt;USER&gt;\\AppData\\Roaming\\bottom\\bottom.toml</code> <p>If you want to use a config file in another location, use the <code>--config</code> or <code>-C</code> flags along with the path to the configuration file, like so:</p> <pre><code>btm -C path_to_config\n</code></pre>"},{"location":"troubleshooting/#my-installation-through-snap-has-some-widgets-that-are-blankshow-no-data","title":"My installation through snap has some widgets that are blank/show no data","text":"<p>Make sure bottom is given the correct permissions in order to collect data. Snapcraft explains how to do so, but the TL;DR is:</p> <pre><code>sudo snap connect bottom:mount-observe\nsudo snap connect bottom:hardware-observe\nsudo snap connect bottom:system-observe\nsudo snap connect bottom:process-control\n</code></pre>"},{"location":"configuration/command-line-options/","title":"Command-line Options","text":"<p>The following options can be provided to bottom in the command line to change the behaviour of the program. You can also see information on these options by running <code>btm -h</code>, or run <code>btm --help</code> to display more detailed information on each option:</p>"},{"location":"configuration/command-line-options/#general-options","title":"General Options","text":"Option Behaviour <code>--autohide_time</code> Temporarily shows the time scale in graphs. <code>-b</code>, <code>--basic</code> Hides graphs and uses a more basic look. <code>-C</code>, <code>--config &lt;CONFIG PATH&gt;</code> Sets the location of the config file. <code>-t</code>, <code>--default_time_value &lt;TIME&gt;</code> Default time value for graphs. <code>--default_widget_count &lt;INT&gt;</code> Sets the n'th selected widget type as the default. <code>--default_widget_type &lt;WIDGET TYPE&gt;</code> Sets the default widget type, use --help for info. <code>--disable_click</code> Disables mouse clicks. <code>-m</code>, <code>--dot_marker</code> Uses a dot marker for graphs. <code>-e</code>, <code>--expanded</code> Expand the default widget upon starting the app. <code>--hide_table_gap</code> Hides spacing between table headers and entries. <code>--hide_time</code> Hides the time scale. <code>-l</code>, <code>--left_legend</code> Puts the CPU chart legend to the left side. <code>-r</code>, <code>--rate &lt;TIME&gt;</code> Sets the data refresh rate. <code>--retention &lt;TIME&gt;</code> The timespan of data stored. <code>--show_table_scroll_position</code> Shows the scroll position tracker in table widgets. <code>-d</code>, <code>--time_delta &lt;TIME&gt;</code> The amount of time changed upon zooming."},{"location":"configuration/command-line-options/#process-options","title":"Process Options","text":"Option Behaviour <code>-S</code>, <code>--case_sensitive</code> Enables case sensitivity by default. <code>-u</code>, <code>--current_usage</code> Sets process CPU% to be based on current CPU%. <code>--disable_advanced_kill</code> Hides advanced process killing. <code>-g</code>, <code>--group_processes</code> Groups processes with the same name by default. <code>--process_command</code> Show processes as their commands by default. <code>-R</code>, <code>--regex</code> Enables regex by default. <code>-T</code>, <code>--tree</code> Defaults the process widget be in tree mode. <code>-n</code>, <code>--unnormalized_cpu</code> Show process CPU% usage without normalizing over the number of cores. <code>-W</code>, <code>--whole_word</code> Enables whole-word matching by default."},{"location":"configuration/command-line-options/#temperature-options","title":"Temperature Options","text":"Option Behaviour <code>-c</code>, <code>--celsius</code> Use Celsius as the temperature unit. <code>-f</code>, <code>--fahrenheit</code> Use Fahrenheit as the temperature unit. <code>-k</code>, <code>--kelvin</code> Use Kelvin as the temperature unit."},{"location":"configuration/command-line-options/#cpu-options","title":"CPU Options","text":"Option Behaviour <code>-a</code>, <code>--hide_avg_cpu</code> Hides the average CPU usage."},{"location":"configuration/command-line-options/#memory-options","title":"Memory Options","text":"Option Behaviour <code>--enable_cache_memory</code> Enable collecting and displaying cache and buffer memory. <code>--mem_as_value</code> Defaults to showing process memory usage by value."},{"location":"configuration/command-line-options/#network-options","title":"Network Options","text":"Option Behaviour <code>--network_use_binary_prefix</code> Displays the network widget with binary prefixes. <code>--network_use_bytes</code> Displays the network widget using bytes. <code>--network_use_log</code> Displays the network widget with a log scale. <code>--use_old_network_legend</code> DEPRECATED - uses a separate network legend."},{"location":"configuration/command-line-options/#battery-options","title":"Battery Options","text":"Option Behaviour <code>--battery</code> Shows the battery widget."},{"location":"configuration/command-line-options/#gpu-options","title":"GPU Options","text":"Option Behaviour <code>--enable_gpu</code> Enable collecting and displaying GPU usage."},{"location":"configuration/command-line-options/#style-options","title":"Style Options","text":"Option Behaviour <code>--color &lt;COLOR SCHEME&gt;</code> Use a color scheme, use --help for info."},{"location":"configuration/command-line-options/#other-options","title":"Other Options","text":"Option Behaviour <code>-h</code>, <code>--help</code> Prints help (see more info with '--help'). <code>-V</code>, <code>--version</code> Prints version information."},{"location":"configuration/config-file/","title":"Config File","text":"<p>For persistent configuration, and for certain configuration options, bottom supports config files.</p>"},{"location":"configuration/config-file/#default-config-file","title":"Default Config File","text":"<p>If no config file argument is given, it will automatically look for a config file at these locations:</p> OS Default Config Location macOS <code>$HOME/Library/Application Support/bottom/bottom.toml</code> <code>~/.config/bottom/bottom.toml</code> <code>$XDG_CONFIG_HOME/bottom/bottom.toml</code> Linux <code>~/.config/bottom/bottom.toml</code> <code>$XDG_CONFIG_HOME/bottom/bottom.toml</code> Windows <code>C:\\Users\\&lt;USER&gt;\\AppData\\Roaming\\bottom\\bottom.toml</code> <p>Like if a path is passed with <code>-C</code>/<code>--config</code>, if a file doesn't exist at the path, bottom will automatically create a new, default config file at that location.</p>"},{"location":"configuration/config-file/#json-schema","title":"JSON Schema","text":"<p>The configuration file also has JSON Schema support to make it easier to manage, if your IDE/editor supports it.</p>"},{"location":"configuration/config-file/cpu/","title":"CPU","text":""},{"location":"configuration/config-file/cpu/#default-cpu-graph-selection","title":"Default CPU Graph Selection","text":"<p>You can configure which CPU graph is shown by default when starting up bottom by setting <code>cpu.default</code>.</p> <pre><code>[cpu]\n# One of \"all\" (default), \"average\"/\"avg\"\ndefault = \"average\"\n</code></pre>"},{"location":"configuration/config-file/data-filtering/","title":"Data Filtering","text":"<p>Warning</p> <p>This section is in progress, and is just copied from the old documentation.</p> <p>You can hide specific disks, temperature sensors, and networks by name in the config file via <code>disk_filter</code> and <code>mount_filter</code>, <code>temp_filter</code>, and <code>net_filter</code> respectively. Regex (<code>regex = true</code>), case-sensitivity (<code>case_sensitive = true</code>), and matching only if the entire word matches (<code>whole_word = true</code>) are supported, but are off by default. Filters default to denying entries that match and can be toggled by setting <code>is_list_ignored</code> to <code>false</code> in the config file.</p> <p>For example, here's the disk widget with no filter:</p> <p></p> <p>The following in the config file would filter out some entries by disk name:</p> <pre><code>[disk_filter]\nis_list_ignored = true\nlist = [\"/dev/sda\"]\nregex = true\ncase_sensitive = false\nwhole_word = false\n</code></pre> <p></p> <p>If there are two potentially conflicting filters (i.e. when you are using both a disk and mount filter), the filter that explicitly allows an entry takes precedence over a filter that explicitly denies one. So for example, let's say we set a disk filter accepting anything with <code>/dev/sda</code>, but deny anything with <code>/mnt/.*</code> or <code>/</code>. So to do so, we write in the config file:</p> <pre><code>[disk_filter]\nis_list_ignored = false\nlist = [\"/dev/sda\"]\nregex = true\ncase_sensitive = false\nwhole_word = false\n\n[mount_filter]\nis_list_ignored = true\nlist = [\"/mnt/.*\", \"/\"]\nregex = true\ncase_sensitive = false\nwhole_word = true\n</code></pre> <p>This gives us:</p> <p></p>"},{"location":"configuration/config-file/flags/","title":"Flags","text":"<p>Warning</p> <p>This section is in progress, and is just copied from the old documentation.</p> <p>Most of the command line flags have config file equivalents to avoid having to type them out each time:</p> Field Type Functionality <code>hide_avg_cpu</code> Boolean Hides the average CPU usage. <code>dot_marker</code> Boolean Uses a dot marker for graphs. <code>left_legend</code> Boolean Puts the CPU chart legend to the left side. <code>current_usage</code> Boolean Sets process CPU% to be based on current CPU%. <code>group_processes</code> Boolean Groups processes with the same name by default. <code>case_sensitive</code> Boolean Enables case sensitivity by default. <code>whole_word</code> Boolean Enables whole-word matching by default. <code>regex</code> Boolean Enables regex by default. <code>basic</code> Boolean Hides graphs and uses a more basic look. <code>use_old_network_legend</code> Boolean DEPRECATED - uses the older network legend. <code>battery</code> Boolean Shows the battery widget. <code>rate</code> Unsigned Int (represents milliseconds) or String (represents human time) Sets a refresh rate in ms. <code>default_time_value</code> Unsigned Int (represents milliseconds) or String (represents human time) Default time value for graphs in ms. <code>time_delta</code> Unsigned Int (represents milliseconds) or String (represents human time) The amount in ms changed upon zooming. <code>hide_time</code> Boolean Hides the time scale. <code>temperature_type</code> String (one of [\"k\", \"f\", \"c\", \"kelvin\", \"fahrenheit\", \"celsius\"]) Sets the temperature unit type. <code>default_widget_type</code> String (one of [\"cpu\", \"proc\", \"net\", \"temp\", \"mem\", \"disk\"], same as layout options) Sets the default widget type, use --help for more info. <code>default_widget_count</code> Unsigned Int (represents which <code>default_widget_type</code>) Sets the n'th selected widget type as the default. <code>disable_click</code> Boolean Disables mouse clicks. <code>color</code> String (one of [\"default\", \"default-light\", \"gruvbox\", \"gruvbox-light\", \"nord\", \"nord-light\"]) Use a color scheme, use --help for supported values. <code>enable_cache_memory</code> Boolean Enable collecting and displaying cache and buffer memory (not available on Windows). <code>mem_as_value</code> Boolean Defaults to showing process memory usage by value. <code>tree</code> Boolean Defaults to showing the process widget in tree mode. <code>show_table_scroll_position</code> Boolean Shows the scroll position tracker in table widgets. <code>process_command</code> Boolean Show processes as their commands by default. <code>disable_advanced_kill</code> Boolean Hides advanced options to stop a process on Unix-like systems. <code>network_use_binary_prefix</code> Boolean Displays the network widget with binary prefixes. <code>network_use_bytes</code> Boolean Displays the network widget using bytes. <code>network_use_log</code> Boolean Displays the network widget with a log scale. <code>enable_gpu</code> Boolean Shows the GPU widgets. <code>retention</code> String (human readable time, such as \"10m\", \"1h\", etc.) How much data is stored at once in terms of time. <code>unnormalized_cpu</code> Boolean Show process CPU% without normalizing over the number of cores. <code>expanded_on_startup</code> Boolean Expand the default widget upon starting the app."},{"location":"configuration/config-file/layout/","title":"Layout","text":"<p>Warning</p> <p>This section is in progress, and is just copied from the old documentation.</p> <p>bottom supports customizable layouts via the config file. Currently, layouts are controlled by using TOML objects and arrays.</p> <p>For example, given the sample layout:</p> <pre><code>[[row]]\n [[row.child]]\n type=\"cpu\"\n[[row]]\n ratio=2\n [[row.child]]\n ratio=4\n type=\"mem\"\n [[row.child]]\n ratio=3\n [[row.child.child]]\n type=\"temp\"\n [[row.child.child]]\n type=\"disk\"\n</code></pre> <p>This would give a layout that has two rows, with a 1:2 ratio. The first row has only the CPU widget. The second row is split into two columns with a 4:3 ratio. The first column contains the memory widget. The second column is split into two rows with a 1:1 ratio. The first is the temperature widget, the second is the disk widget.</p> <p>This is what the layout would look like when run:</p> <p></p> <p>Each <code>[[row]]</code> represents a row in the layout. A row can have any number of <code>child</code> values. Each <code>[[row.child]]</code> represents either a column or a widget. A column can have any number of <code>child</code> values as well. Each <code>[[row.child.child]]</code> represents a widget. A widget is represented by having a <code>type</code> field set to a string.</p> <p>The following <code>type</code> values are supported:</p> <code>\"cpu\"</code> CPU chart and legend <code>\"mem\", \"memory\"</code> Memory chart <code>\"net\", \"network\"</code> Network chart and legend <code>\"proc\", \"process\", \"processes\"</code> Process table and search <code>\"temp\", \"temperature\"</code> Temperature table <code>\"disk\"</code> Disk table <code>\"empty\"</code> An empty space <code>\"batt\", \"battery\"</code> Battery statistics <p>Each component of the layout accepts a <code>ratio</code> value. If this is not set, it defaults to 1.</p> <p>Furthermore, you can have duplicate widgets.</p> <p>For an example, look at the default config, which contains the default layout.</p>"},{"location":"configuration/config-file/processes/","title":"Processes","text":""},{"location":"configuration/config-file/processes/#columns","title":"Columns","text":"<p>You can configure which columns are shown by the process widget by setting the <code>columns</code> setting:</p> <pre><code>[processes]\n# Pick which columns you want to use in any order.\ncolumns = [\"cpu%\", \"mem%\", \"pid\", \"name\", \"read\", \"write\", \"tread\", \"twrite\", \"state\", \"user\", \"time\", \"gmem%\", \"gpu%\"]\n</code></pre>"},{"location":"configuration/config-file/theming/","title":"Theming","text":"<p>Warning</p> <p>This section is in progress, and is just copied from the old documentation.</p> <p>The config file can be used to set custom colours for parts of the application under the <code>[colors]</code> object. The following labels are customizable with strings that are hex colours, RGB colours, or specific named colours.</p> <p>Supported named colours are one of the following strings: <code>Reset, Black, Red, Green, Yellow, Blue, Magenta, Cyan, Gray, DarkGray, LightRed, LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan, White</code>.</p> Labels Details Example Table header colours Colour of table headers <code>table_header_color=\"255, 255, 255\"</code> CPU colour per core Colour of each core. Read in order. <code>cpu_core_colors=[\"#ffffff\", \"white\", \"255, 255, 255\"]</code> Average CPU colour The average CPU color <code>avg_cpu_color=\"White\"</code> All CPUs colour The colour for the \"All\" CPU label <code>all_cpu_color=\"White\"</code> RAM The colour RAM will use <code>ram_color=\"#ffffff\"</code> SWAP The colour SWAP will use <code>swap_color=\"#ffffff\"</code> RX The colour rx will use <code>rx_color=\"#ffffff\"</code> TX The colour tx will use <code>tx_color=\"#ffffff\"</code> Widget title colour The colour of the label each widget has <code>widget_title_color=\"#ffffff\"</code> Border colour The colour of the border of unselected widgets <code>border_color=\"#ffffff\"</code> Selected border colour The colour of the border of selected widgets <code>highlighted_border_color=\"#ffffff\"</code> Text colour The colour of most text <code>text_color=\"#ffffff\"</code> Graph colour The colour of the lines and text of the graph <code>graph_color=\"#ffffff\"</code> Cursor colour The cursor's colour <code>cursor_color=\"#ffffff\"</code> Selected text colour The colour of text that is selected <code>scroll_entry_text_color=\"#ffffff\"</code> Selected text background colour The background colour of text that is selected <code>scroll_entry_bg_color=\"#ffffff\"</code> High battery level colour The colour used for a high battery level (100% to 50%) <code>high_battery_color=\"green\"</code> Medium battery level colour The colour used for a medium battery level (50% to 10%) <code>medium_battery_color=\"yellow\"</code> Low battery level colour The colour used for a low battery level (10% to 0%) <code>low_battery_color=\"red\"</code> GPU colour per gpu Colour of each gpu. Read in order. <code>gpu_core_colors=[\"#ffffff\", \"white\", \"255, 255, 255\"]</code> ARC The colour ARC will use <code>arc_color=\"#ffffff\"</code>"},{"location":"contribution/documentation/","title":"Documentation","text":""},{"location":"contribution/documentation/#when-should-documentation-changes-be-done","title":"When should documentation changes be done?","text":"<ul> <li>Whenever a new feature is added, a bug is fixed, or a breaking change is made, it should be documented where appropriate (ex: <code>README.md</code>, changelog, etc.)</li> <li>New methods of installation are always appreciated and should be documented</li> </ul>"},{"location":"contribution/documentation/#what-pages-need-documentation","title":"What pages need documentation?","text":"<p>There are a few areas where documentation changes are often needed:</p> <ul> <li>The <code>README.md</code></li> <li>The help menu inside of the application (located here)</li> <li>The extended documentation (here)</li> <li>The <code>CHANGELOG.md</code></li> </ul>"},{"location":"contribution/documentation/#how-should-i-addupdate-documentation","title":"How should I add/update documentation?","text":"<ol> <li> <p>Fork the repository to make changes in.</p> </li> <li> <p>Where you're adding documentation will probably affect what you need to do:</p> <code>README.md</code> or <code>CHANGELOG.md</code> <p>For changes to <code>README.md</code> and <code>CHANGELOG.md</code>, just follow the formatting provided and use any editor.</p> <p>Generally, changes to <code>CHANGELOG.md</code> will be handled by a maintainer, and the contents of the file should follow the Keep a Changelog format, as well as link to the relevant PR or issues.</p> Help menu <p>For changes to the help menu, try to refer to the existing code within <code>src/constants.rs</code> on how the help menu is generated.</p> Extended documentation <p>For changes to the extended documentation, you'll probably want at least Python 3.11 (older and newer versions should be fine), MkDocs, Material for MkDocs, <code>mdx_truly_sane_lists</code>, and optionally Mike installed. These can help with validating your changes locally.</p> <p>You can do so through <code>pip</code> or your system's package managers. If you use <code>pip</code>, you can use venv to cleanly install the documentation dependencies:</p> <pre><code># Change directories to the documentation.\ncd docs/\n\n # Create venv, install the dependencies, and serve the page.\n./serve.sh\n</code></pre> <p>This will serve a local version of the docs that you can open on your browser. It will update as you make changes.</p> </li> <li> <p>Once you have your documentation changes done, submit it as a pull request. For more information regarding that, refer to Issues, Pull Requests, and Discussions.</p> </li> </ol>"},{"location":"contribution/issues-and-pull-requests/","title":"Issues, Pull Requests, and Discussions","text":""},{"location":"contribution/issues-and-pull-requests/#discussions","title":"Discussions","text":"<p>Discussions are open in the repo. As for the difference between discussions and issues:</p> <ul> <li>Open an issue if what you have enough information to properly fill out any details needed for a report or request.</li> <li>Open a discussion otherwise (e.g. asking a question).</li> </ul>"},{"location":"contribution/issues-and-pull-requests/#opening-an-issue","title":"Opening an issue","text":""},{"location":"contribution/issues-and-pull-requests/#bug-reports","title":"Bug reports","text":"<p>When filing a bug report, please use the bug report template and fill in as much as you can. It is incredibly difficult for a maintainer to fix a bug when it cannot be reproduced, and giving as much detail as possible generally helps to make it easier to reproduce the problem!</p>"},{"location":"contribution/issues-and-pull-requests/#feature-requests","title":"Feature requests","text":"<p>Please use the feature request template and fill it out. Remember to give details about what the feature is along with why you think this suggestion will be useful.</p> <p>Also, please check whether an existing issue has covered your specific feature request!</p>"},{"location":"contribution/issues-and-pull-requests/#pull-requests","title":"Pull requests","text":"<p>The expected workflow for a pull request is:</p> <ol> <li>Fork the project.</li> <li>Make your changes.</li> <li>Make any documentation changes if necessary - if you add a new feature, it'll probably need documentation changes. See here for tips on documentation.</li> <li>Commit and create a pull request to merge into the <code>main</code> branch. Please fill out the pull request template.</li> <li>Ask a maintainer to review your pull request.<ul> <li>Check if the CI workflow passes. These consist of clippy lints, rustfmt checks, and basic tests. If you are a first-time contributor, you may need to wait for a maintainer to let CI run.</li> <li>If changes are suggested or any comments are made, they should probably be addressed.</li> </ul> </li> <li>Once it looks good, it'll be merged! Note that generally, PRs are squashed to maintain repo cleanliness, though feel free to ask otherwise if that isn't preferable.</li> </ol>"},{"location":"contribution/packaging-and-distribution/","title":"Packaging and Distribution","text":"<p>Package maintainers are always welcome and appreciated! Here's some info on how one can help with package distribution and bottom.</p>"},{"location":"contribution/packaging-and-distribution/#pre-built-binaries","title":"Pre-built binaries","text":"<p>The latest stable release can be found here, where you can find pre-built binaries in either a <code>tar.gz</code> or <code>zip</code> format. Binaries here also include automatically generated shell completion files for zsh, bash, fish, and Powershell, which you may want to also install during the packaging process.</p> <p>You can also find a nightly build in the releases page, built every day at 00:00 UTC off of the <code>main</code> branch.</p> <p>In both cases, we use a combination of GitHub Actions and CirrusCI (mainly for FreeBSD and macOS M1) to create our release binaries. <code>build_releases.yml</code> contains the GitHub Action workflow used to do both of these, if reference is needed.</p>"},{"location":"contribution/packaging-and-distribution/#building-manually","title":"Building manually","text":"<p>If you want to manually build bottom rather than distributing a pre-built binary, you'll need the most recent version of stable Rust, which you can get with:</p> <pre><code>rustup update stable\n</code></pre> <p>You'll then want to build with:</p> <pre><code>cargo build --release --locked\n</code></pre>"},{"location":"contribution/packaging-and-distribution/#manpage-and-completion-generation","title":"Manpage and completion generation","text":"<p>bottom uses a <code>build.rs</code> script to automatically generate a manpage and shell completions for the following shells:</p> <ul> <li>Bash</li> <li>Zsh</li> <li>Fish</li> <li>Powershell</li> <li>Elvish</li> </ul> <p>If you want to generate manpages and/or completion files, set the <code>BTM_GENERATE</code> env var to a non-empty value. For example, run something like this:</p> <pre><code>BTM_GENERATE=true cargo build --release --locked\n</code></pre> <p>This will automatically generate completion and manpage files in <code>target/tmp/bottom/</code>. If you wish to regenerate the files, modify/delete either these files or set <code>BTM_GENERATE</code> to some other non-empty value to retrigger the build script.</p> <p>For more information, you may want to look at either the <code>build.rs</code> file or the binary build CI workflow.</p>"},{"location":"contribution/packaging-and-distribution/#adding-an-installation-source","title":"Adding an installation source","text":"<p>Once you've finished your installation source, if you want to mention it in the main bottom repo, fork the repo and add the installation method and any details to the <code>README.md</code> file under the Installation section, as well as a corresponding table of contents entry. Once that's done, open a pull request - these will usually be approved of very quickly.</p> <p>You can find more info on the contribution process here.</p>"},{"location":"contribution/development/build_process/","title":"Build Process","text":"<p>Warning</p> <p>This section is currently somewhat WIP.</p> <p>Warning</p> <p>This section is intended for people who wish to work on/build/distribute bottom, not general users.</p>"},{"location":"contribution/development/build_process/#overview","title":"Overview","text":"<p>bottom manages its own binary builds for nightly and stable release purposes. The core build workflow is handled by <code>build_releases.yml</code>, called by a wrapper workflow for nightly and stable releases. Builds take place via GitHub Actions.</p> <p>The main things built are:</p> <ul> <li>Binaries for various platforms</li> <li>MSI installer for Windows</li> <li><code>.deb</code> package for Debian and its derivatives</li> </ul> <p>This documentation gives a high-level overview of the build process for each part. For the most up-to-date and detailed reference, definitely refer back to the <code>build_releases.yml</code> file.</p>"},{"location":"contribution/development/build_process/#binaries","title":"Binaries","text":"<p>Binaries are built currently for various targets. Note that not all of these are officially supported. The following general steps are performed:</p> <ul> <li>Set up the Rust toolchain for the action runner.</li> <li>Enable cache.</li> <li> <p>Build a release build with:</p> <ul> <li><code>--features deploy</code>, which enables only crates needed for release builds.</li> <li><code>--locked</code> to lock the dependency versions.</li> <li> <p>The following env variables set:</p> <ul> <li><code>BTM_GENERATE: true</code></li> <li><code>COMPLETION_DIR: \"target/tmp/bottom/completion/\"</code></li> <li><code>MANPAGE_DIR: \"target/tmp/bottom/manpage/\"</code></li> </ul> <p>These generate the manpages and shell completions (see Packaging for some more information).</p> </li> </ul> </li> </ul> <ul> <li>Bundle the binaries and manpage/completions.</li> <li>Cleanup.</li> </ul> <p>Some builds use <code>cross</code> to do cross-compilation builds for architectures otherwise not natively supported by the runner.</p>"},{"location":"contribution/development/build_process/#msi","title":"MSI","text":"<p>This builds a full Windows installer using <code>cargo-wix</code>. This requires some setup beforehand with some dependencies:</p> <ul> <li>Net-Framework-Core (handled by Powershell)</li> <li>wixtoolset (handled by chocolatey)</li> <li>Rust toolchain</li> </ul> <p>After that, cache is enabled, and <code>cargo wix</code> takes care of the rest.</p>"},{"location":"contribution/development/build_process/#deb","title":"<code>.deb</code>","text":"<p>Currently, <code>.deb</code> files are built for x86 and ARM architectures (<code>armv7</code>, <code>aarch64</code>). This is handled by <code>cargo-deb</code>.</p> <ul> <li>For x86, this is handled natively with just <code>cargo-deb</code>.</li> <li>For ARM, this uses a Docker container, cargo-deb-arm, which correctly sets the dependencies and architecture for the generated <code>.deb</code> file.</li> </ul> <p>There are additional checks via <code>dpkg</code> to ensure the architecture is correctly set.</p>"},{"location":"contribution/development/deploy_process/","title":"Deploy Process","text":"<p>Warning</p> <p>This section is currently WIP.</p> <p>Warning</p> <p>This section is intended for people who wish to work on/build/distribute bottom, not general users.</p>"},{"location":"contribution/development/deploy_process/#overview","title":"Overview","text":"<p>bottom currently has two main deploy processes to worry about:</p> <ul> <li>Nightly: a daily (00:00 UTC) GitHub action to build binary/installer files, and upload them to the nightly release. It can also be triggered manually as either a proper nightly release or a mock release.</li> <li> <p>Stable: a stable deployment, triggered manually or upon creation of a valid tag. This is a GitHub action that builds binary/installer files and uploads them to a new GitHub release.</p> <p>Furthermore, this workflow does not handle the following deployments, which must be manually handled:</p> <ul> <li>Chocolatey</li> <li>crates.io</li> </ul> </li> </ul>"},{"location":"contribution/development/deploy_process/#nightly","title":"Nightly","text":"<p>This is, for the most part, automatic, though it can also be used as a way of testing build workflow changes and seeing if binaries can be successfully built at all against all the targets we want to build for.</p> <p>If one does not want to actually update the nightly release, and just want to test the general builds and workflow, one can run the workflow manually on a branch of choice with \"mock\" set as the parameter. Changing it to anything else will trigger a non-mock run.</p>"},{"location":"contribution/development/deploy_process/#stable","title":"Stable","text":"<p>This can be manually triggered, though the general use-case is setting a tag of the form <code>x.y.z</code> (after checking everything is good, of course). For example:</p> <pre><code>git tag 0.6.9 &amp;&amp; git push origin 0.6.9\n</code></pre> <p>This will automatically trigger the deployment workflow, and create a draft release with the files uploaded. One still needs to fill in the details and release it.</p> <p>Furthermore, there are some deployments that are handled by maintainers of bottom that this workflow does not automatically finish. These must be manually handled.</p>"},{"location":"contribution/development/deploy_process/#chocolatey","title":"Chocolatey","text":"<p>Upon releasing on GitHub, choco-bottom will automatically be updated with a new PR with the correct deployment files for Chocolatey. Check the PR, merge it if it is correct, then pull locally and deploy following the instructions in the README. Make sure to test installation and running at least once before deploying!</p> <p>If done correctly, there should be a new build on Chocolatey, which will take some time to validate.</p>"},{"location":"contribution/development/deploy_process/#cratesio","title":"crates.io","text":"<p>Validate everything builds properly and works (you should have done this before releasing though). If good, then deploying on crates.io is as simple as:</p> <pre><code>cargo publish\n</code></pre>"},{"location":"contribution/development/dev_env/","title":"Development Environment","text":"<p>Warning</p> <p>This section is currently WIP.</p> <p>Warning</p> <p>This section is intended for people who wish to work on/build/distribute bottom, not general users.</p>"},{"location":"contribution/development/logging/","title":"Logging","text":"<p>Warning</p> <p>This section is currently WIP.</p> <p>Warning</p> <p>This section is intended for people who wish to work on/build/distribute bottom, not general users.</p>"},{"location":"contribution/development/testing/","title":"Testing","text":"<p>Warning</p> <p>This section is currently WIP.</p> <p>Warning</p> <p>This section is intended for people who wish to work on/build/distribute bottom, not general users.</p>"},{"location":"support/official/","title":"Official support","text":"<p>bottom officially supports the following operating systems and corresponding architectures:</p> <ul> <li>macOS (<code>x86_64</code>, <code>aarch64</code>)</li> <li>Linux (<code>x86_64</code>, <code>i686</code>, <code>aarch64</code>)</li> <li>Windows (<code>x86_64</code>, <code>i686</code>)</li> </ul> <p>These platforms are tested to work (with caveats, see below) and issues on these platforms will be fixed if possible.</p> <p>Furthermore, binaries are expected to be built and tested using the most recent version of stable Rust - if you are manually building bottom from the repo/source, then please try that as well.</p>"},{"location":"support/official/#known-problems","title":"Known problems","text":""},{"location":"support/official/#linux","title":"Linux","text":"<ul> <li>If you're using Linux via WSL or WSL2:<ul> <li>You may have issues with getting memory data.</li> <li>Temperature sensors may not be correctly reported.</li> <li>WSL2 will not match Windows' own Task Manager in terms of data.</li> </ul> </li> </ul>"},{"location":"support/official/#windows","title":"Windows","text":"<ul> <li>The temperature widget seems to require admin privileges in some cases to get data.</li> <li>The battery widget seems to have issues with dual battery systems, like some Thinkpads.</li> <li>If you are using WSL or WSL2:<ul> <li>You may have issues with getting memory data.</li> <li>Temperature sensors may not be correctly reported.</li> <li>WSL2 will not match Windows' own Task Manager in terms of data.</li> </ul> </li> </ul>"},{"location":"support/official/#macos","title":"macOS","text":"<ul> <li>The process widget may require elevated access (ex: <code>sudo btm</code>) to gather all data in some cases. Please note that you should be certain that you trust any software you grant root privileges.</li> </ul>"},{"location":"support/unofficial/","title":"Unofficial support","text":"<p>Systems and architectures that aren't officially supported may still work, but there are no guarantees on how much will work. For example, it might only compile, or it might run with bugs/broken features. Furthermore, while it will depend on the problem at the end of the day, issues on unsupported platforms are likely to go unfixed.</p> <p>Unofficially supported platforms known to compile/work:</p> <ul> <li>FreeBSD</li> <li>Linux on ARMv7 and ARMv6 (tested to compile in CI)</li> <li>Linux on PowerPC 64 LE (tested to compile in CI)</li> <li>Linux on an RISC-V (tested to compile in CI, tested to run on an Allwinner D1 Nezha)</li> </ul>"},{"location":"support/unofficial/#known-problems","title":"Known problems","text":"<p>None at the moment.</p>"},{"location":"usage/basic-mode/","title":"Basic Mode","text":"<p>Basic mo