2020-04-30 09:52:27 +00:00
# 
2020-03-28 10:04:34 +00:00
2020-05-23 16:21:41 +00:00




2020-05-01 22:16:00 +00:00

2020-05-23 16:21:41 +00:00

2020-04-30 09:52:27 +00:00

2020-06-01 18:14:57 +00:00
[](https://travis-ci.com/aristocratos/bashtop)
2020-05-01 10:36:22 +00:00
[](https://paypal.me/aristocratos)
2020-05-01 11:26:49 +00:00
[](https://github.com/sponsors/aristocratos)
[](https://ko-fi.com/aristocratos)
2020-05-01 22:16:00 +00:00
2020-04-27 15:41:27 +00:00
## Index
2020-05-07 18:31:16 +00:00
* [Documents ](#documents )
2020-04-27 15:41:27 +00:00
* [Description ](#description )
* [Features ](#features )
* [Themes ](#themes )
2020-05-04 10:36:53 +00:00
* [Upcoming ](#upcoming ) (Updated, Python port)
2020-05-02 09:28:16 +00:00
* [Support and funding ](#support-and-funding )
2020-05-23 16:34:06 +00:00
* [Compatibility ](#compatibility ) (Updated, OSX and FreeBSD Support)
2020-05-22 22:57:35 +00:00
* [Dependencies ](#dependencies ) (Updated)
2020-04-27 15:41:27 +00:00
* [Screenshots ](#screenshots )
2020-05-01 12:04:52 +00:00
* [Installation ](#installation ) (Updated)
2020-05-06 18:47:40 +00:00
* [Configurability ](#configurability )
* [TODO ](#todo ) (Updated)
2020-04-27 15:41:27 +00:00
* [License ](#license )
2020-05-07 18:31:16 +00:00
## Documents
2020-04-28 16:53:42 +00:00
#### [CHANGELOG.md](CHANGELOG.md)
2020-05-07 18:31:16 +00:00
#### [CONTRIBUTING.md](CONTRIBUTING.md)
#### [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
2020-03-28 10:04:34 +00:00
## Description
2020-04-05 18:29:12 +00:00
Resource monitor that shows usage and stats for processor, memory, disks, network and processes.
## Features
* Easy to use, with a game inspired menu system.
2020-05-02 09:28:16 +00:00
* Fast and "mostly" responsive UI with UP, DOWN keys process selection.
2020-04-05 18:29:12 +00:00
* Function for showing detailed stats for selected process.
* Ability to filter processes.
* Easy switching between sorting options.
* Send SIGTERM, SIGKILL, SIGINT to selected process.
* UI menu for changing all config file options.
* Auto scaling graph for network usage.
2020-04-16 19:04:57 +00:00
* Shows message in menu if new version is available
2020-05-22 23:52:41 +00:00
* Shows current read and write speeds for disks
* Multiple data collection methods which can be switched if running on Linux
2020-03-28 10:04:34 +00:00
2020-04-16 19:04:57 +00:00
## Themes
2020-04-13 20:04:31 +00:00
2020-04-16 19:04:57 +00:00
Bashtop now has theme support and a function to download missing local themes from repository.
See [themes ](themes ) folder for available themes.
Let me know if you want to contribute with new themes.
2020-04-13 20:04:31 +00:00
2020-05-02 09:28:16 +00:00
## Upcoming
2020-05-22 22:57:35 +00:00
~~Currently rewriting to use python3 [psutil ](https://github.com/giampaolo/psutil ) for data collection instead of linux specific tools.
This will add python 3 and psutil as dependencies, but will make bashtop cross platform compatible.~~
2020-04-21 14:55:19 +00:00
2020-05-22 22:57:35 +00:00
~~This will be integrated in to main version when done and add the possibility to switch between psutil and linux tools for users running linux.~~
2020-05-02 09:28:16 +00:00
2020-05-23 16:21:41 +00:00
Bashtop is now Mac OS X and FreeBSD compatible!
2020-04-21 14:55:19 +00:00
2020-05-23 16:21:41 +00:00
#### Python port
2020-05-04 10:36:53 +00:00
2020-05-22 22:57:35 +00:00
Work on a complete python port ~~will begin this summer~~ has begun. My aim is to keep it compatible with pypy3 for a lot of added efficiency.
2020-05-04 10:36:53 +00:00
2020-05-22 22:57:35 +00:00
PyPyTop?
2020-05-04 10:36:53 +00:00
2020-04-27 13:48:32 +00:00
## Support and funding
2020-04-28 02:43:12 +00:00
Bug fixes and updates might be slow during normal workdays since I work full time as an industrial worker and don't have much time or energy left during the week.
2020-04-27 13:48:32 +00:00
I'm looking into ways of funding this project that would allow me to take off time from my day job to work on this.
2020-04-27 15:41:27 +00:00
2020-04-27 13:48:32 +00:00
Any advice on how to get funding for open source projects is very welcome!
2020-04-28 16:26:18 +00:00
#### Update
You can now sponsor this project through github, see [my sponsors page ](https://github.com/sponsors/aristocratos ) for options.
2020-05-01 11:26:49 +00:00
Also added donation links for [paypal ](https://paypal.me/aristocratos ) and [ko-fi ](https://ko-fi.com/aristocratos ).
Any support is greatly appreciated!
2020-04-28 02:43:12 +00:00
## Compatibility
2020-04-05 18:53:08 +00:00
2020-05-23 16:21:41 +00:00
Should work on most modern linux distributions, on Mac OS X and on FreeBSD.
2020-05-22 22:57:35 +00:00
Will not display correctly on the standard terminal on OSX!
Recommended alternative [iTerm2 ](https://www.iterm2.com/ )
Will also need to be run as superuser on OSX to display stats for processes not owned by user.
2020-04-29 17:08:27 +00:00
2020-05-23 16:34:06 +00:00
The disk io stats on OSX and FreeBSD shows iostats for all disks at the top instead of per disk.
2020-05-22 23:52:41 +00:00
2020-04-29 17:08:27 +00:00
For correct display, a terminal with support for:
2020-05-01 22:16:00 +00:00
2020-04-29 17:08:27 +00:00
* 24-bit truecolor
* Wide characters
Also needs a UTF8 locale and a font that covers:
2020-05-01 22:16:00 +00:00
2020-04-29 17:08:27 +00:00
* Unicode Block “Braille Patterns” U+2800 - U+28FF
* Unicode Block “Geometric Shapes” U+25A0 - U+25FF
* Unicode Block "Box Drawing" and "Block Elements" U+2500 - U+259F
2020-04-05 18:53:08 +00:00
2020-05-02 09:28:16 +00:00
#### Notice
2020-05-02 01:17:57 +00:00
Dropbear seems to not be able to set correct locale. So if accessing bashtop over ssh, OpenSSH is recommended.
2020-04-05 18:53:08 +00:00
## Dependencies
2020-05-23 16:21:41 +00:00
## Linux, OSX and FreeBSD
2020-05-22 22:57:35 +00:00
2020-05-10 00:59:29 +00:00
**[bash](https://www.gnu.org/software/bash/)** (v4.4 or later) Script functionality will most probably break with earlier versions.
2020-04-28 02:43:12 +00:00
Bash version 5 is highly recommended to make use of $EPOCHREALTIME variable instead of a lot of external date command calls.
2020-04-05 18:53:08 +00:00
2020-05-22 22:57:35 +00:00
**[GNU coreutils](https://www.gnu.org/software/coreutils/)**
2020-04-25 12:26:06 +00:00
2020-05-22 22:57:35 +00:00
**[GNU sed](https://www.gnu.org/software/sed/)**
## Linux using /proc for data collection
**[GNU grep](https://www.gnu.org/software/grep/)**
2020-04-25 12:26:06 +00:00
2020-04-26 08:22:11 +00:00
**[ps from procps-ng](https://gitlab.com/procps-ng/procps)** (v3.1.15 or later)
2020-04-25 12:26:06 +00:00
2020-05-22 22:57:35 +00:00
**[GNU awk](https://www.gnu.org/software/gawk/)**
2020-05-23 16:21:41 +00:00
## OSX and FreeBSD or Linux using psutil for data collection
2020-04-25 12:26:06 +00:00
2020-05-22 22:57:35 +00:00
**[Python3](https://www.python.org/downloads/)** (v3.6 or later)
2020-04-25 12:32:16 +00:00
2020-05-22 22:57:35 +00:00
**[psutil python module](https://github.com/giampaolo/psutil)**
2020-04-25 12:26:06 +00:00
2020-05-22 22:57:35 +00:00
## Optionals for additional stats
2020-04-16 19:04:57 +00:00
2020-05-22 22:57:35 +00:00
(Optional OSX) ** [osx-cpu-temp ](https://github.com/lavoiesl/osx-cpu-temp )** Needed to show CPU temperatures.
(Optional Linux) ** [lm-sensors ](https://github.com/lm-sensors/lm-sensors )** Needed to show CPU temperatures.
(Optional Linux) ** [iostat (part of sysstat) ](https://github.com/sysstat/sysstat )** Needed if you want disk read/write stats and are not using psutil data collection.
2020-05-23 16:21:41 +00:00
(Optional OSX/Linux/FreeBSD) ** [curl ](https://curl.haxx.se/download.html )** (v7.16.2 or later) Needed if you want messages about updates and the ability to download themes.
2020-05-01 22:16:00 +00:00
2020-03-28 10:04:34 +00:00
## Screenshots
2020-05-10 00:59:29 +00:00
Main UI showing details for a selected process.
2020-04-30 09:52:27 +00:00

2020-03-28 10:04:34 +00:00
2020-05-10 00:59:29 +00:00
Main menu.
2020-04-30 09:52:27 +00:00

2020-03-28 10:04:34 +00:00
2020-05-10 00:59:29 +00:00
Options menu.
2020-04-30 09:52:27 +00:00

2020-03-28 10:04:34 +00:00
2020-04-05 19:01:20 +00:00
## Installation
2020-05-22 22:57:35 +00:00
#### Dependencies installation OSX
2020-04-27 19:11:51 +00:00
2020-05-22 22:57:35 +00:00
>Install homebrew if not already installed
``` bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```
2020-05-01 12:04:52 +00:00
2020-05-22 22:57:35 +00:00
>Install dependencies
2020-05-01 12:04:52 +00:00
``` bash
2020-05-22 22:57:35 +00:00
brew install bash coreutils gnu-sed python3 git
pip3 install psutil
```
>Install optional dependency osx-cpu-temp
``` bash
2020-05-25 09:38:23 +00:00
brew install osx-cpu-temp
2020-05-22 22:57:35 +00:00
```
2020-05-23 16:21:41 +00:00
#### Dependencies installation FreeBSD
>Install with pkg and pip
``` bash
sudo pkg install coreutils gsed python3 git
sudo python3 -m ensurepip
sudo pip3 install psutil
```
2020-05-22 22:57:35 +00:00
2020-05-23 16:21:41 +00:00
#### Manual installation Linux, OSX and FreeBSD
2020-05-22 22:57:35 +00:00
>Clone and install
``` bash
git clone https://github.com/aristocratos/bashtop.git
cd bashtop
sudo make install
2020-05-01 12:04:52 +00:00
```
>to uninstall it
``` bash
2020-05-22 22:57:35 +00:00
sudo make uninstall
2020-05-01 12:04:52 +00:00
```
2020-04-27 19:11:51 +00:00
#### Arch based
2020-05-01 12:04:52 +00:00
Available in the AUR as [bashtop-git ](https://aur.archlinux.org/packages/bashtop-git/ )
2020-04-26 09:06:53 +00:00
2020-05-23 16:34:06 +00:00
Available in the Arch Linux repository as [bashtop ](https://www.archlinux.org/packages/community/any/bashtop/ )
2020-04-09 22:49:04 +00:00
2020-04-27 19:11:51 +00:00
#### Debian based
2020-04-10 23:49:37 +00:00
2020-04-27 19:11:51 +00:00
Available for debian/ubuntu from [Azlux's repository ](http://packages.azlux.fr/ )
2020-04-27 00:42:32 +00:00
2020-04-27 19:11:51 +00:00
Or use quick installation:
>Quick install go to DEB folder and type
``` bash
2020-04-27 00:42:32 +00:00
sudo ./build
```
2020-04-27 19:11:51 +00:00
>to uninstall it go to DEB folder and type
2020-04-27 00:42:32 +00:00
2020-04-27 19:11:51 +00:00
``` bash
2020-04-27 00:42:32 +00:00
sudo ./build --remove
```
2020-05-01 22:16:00 +00:00
2020-04-29 10:38:42 +00:00
#### Ubuntu based
Available for Ubuntu from [PPA repository ](https://code.launchpad.net/~bashtop-monitor/+archive/ubuntu/bashtop )
>Add PPA repository and install bashtop
``` bash
sudo add-apt-repository ppa:bashtop-monitor/bashtop
sudo apt update
sudo apt install bashtop
```
2020-04-27 00:42:32 +00:00
2020-05-02 06:11:52 +00:00
#### Fedora
Available in the Fedora repository.
2020-05-02 09:28:16 +00:00
>Installation
2020-05-02 06:11:52 +00:00
``` bash
sudo dnf install bashtop
```
2020-05-05 15:29:46 +00:00
#### CentOS
>Installation
``` bash
dnf config-manager --set-enabled PowerTools
dnf install epel-release
dnf install bashtop
```
#### RHEL 8
>Installation
``` bash
ARCH=$( /bin/arch )
subscription-manager repos --enable
"codeready-builder-for-rhel-8-${ARCH}-rpms"
dnf install epel-release
dnf install bashtop
```
2020-03-28 10:04:34 +00:00
## Configurability
2020-04-05 18:29:12 +00:00
All options changeable from within UI.
Config files stored in "$HOME/.config/bashtop" folder
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
#### bashtop.cfg: (auto generated if not found)
2020-03-28 11:05:39 +00:00
2020-03-28 10:04:34 +00:00
```bash
2020-05-22 23:52:41 +00:00
#? Config file for bashtop v. 0.9.0
2020-04-16 19:39:15 +00:00
#* Color theme, looks for a .theme file in "$HOME/.config/bashtop/themes", "Default" for builtin default theme
color_theme="Default"
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
#* Update time in milliseconds, increases automatically if set below internal loops processing time, recommended 2000 ms or above for better sample times for graphs
update_ms="2500"
2020-03-28 11:05:39 +00:00
2020-05-02 23:02:32 +00:00
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu responsive" "tree"
2020-04-28 02:43:12 +00:00
#* "cpu lazy" updates sorting over time, "cpu responsive" updates sorting directly at a cpu usage cost
2020-04-05 18:29:12 +00:00
proc_sorting="cpu lazy"
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
#* Reverse sorting order, "true" or "false"
proc_reversed="false"
2020-03-28 11:05:39 +00:00
2020-05-22 23:52:41 +00:00
#* Check cpu temperature, only works if "sensors", "vcgencmd" or "osx-cpu-temp" commands is available
2020-04-05 18:29:12 +00:00
check_temp="true"
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable
2020-04-30 18:09:11 +00:00
draw_clock="%X"
2020-03-28 10:04:34 +00:00
2020-04-06 20:52:48 +00:00
#* Update main ui when menus are showing, set this to false if the menus is flickering too much for comfort
background_update="true"
2020-04-05 18:29:12 +00:00
#* Custom cpu model name, empty string to disable
custom_cpu_name=""
#* Enable error logging to "$HOME/.config/bashtop/error.log", "true" or "false"
error_logging="true"
2020-04-30 18:09:11 +00:00
#* Show color gradient in process list, "true" or "false"
proc_gradient="true"
2020-05-02 23:02:32 +00:00
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power
proc_per_core="false"
2020-04-30 18:09:11 +00:00
#* Optional filter for shown disks, should be names of mountpoints, "root" replaces "/", separate multiple values with space
disks_filter=""
2020-05-10 00:59:29 +00:00
#* Enable check for new version from github.com/aristocratos/bashtop at start
update_check="true"
#* Enable graphs with double the horizontal resolution, increases cpu usage
hires_graphs="false"
2020-05-22 22:57:35 +00:00
#* Enable the use of psutil python3 module for data collection, default on OSX
use_psutil="true"
2020-04-05 18:29:12 +00:00
```
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
#### Command line options: (not yet implemented)
2020-03-28 10:04:34 +00:00
2020-04-27 15:41:27 +00:00
``` bash
2020-04-05 18:29:12 +00:00
USAGE: bashtop
2020-03-28 10:04:34 +00:00
2020-04-05 18:29:12 +00:00
```
2020-03-28 10:04:34 +00:00
## TODO
2020-04-28 16:26:18 +00:00
Might finish off items out of order since I usually work on multiple at a time.
- [x] Add options to change colors for text, graphs and meters.
2020-05-23 16:21:41 +00:00
- [x] Fix cross platform compatibility for Mac OSX and *BSD: Working on OSX, and FreeBSD.
2020-04-29 23:15:31 +00:00
- [x] Add support for showing AMD cpu temperatures.
2020-05-02 23:02:32 +00:00
- [x] Add option to show tree view of processes.
2020-04-30 18:09:11 +00:00
- [x] Add option to reset network download/upload totals.
- [x] Add option to turn of gradient in processes list.
2020-04-28 16:26:18 +00:00
- [ ] Add gpu temp and usage. (If feasible)
2020-05-01 22:24:01 +00:00
- [x] Add io stats for disks.
2020-05-06 18:47:40 +00:00
- [ ] Add cpu and mem stats for docker containers. (If feasible)
- [ ] Change process list to line scroll instead of page change.
- [ ] Add option for custom color gradient in process list in theme settings.
- [ ] Add optional window for tailing log files.
2020-04-28 16:26:18 +00:00
- [ ] Add options for resizing all boxes.
- [ ] Add command line argument parsing.
- [ ] Miscellaneous optimizations and code cleanup.
- [ ] Add more commenting where it's sparse.
2020-04-05 18:29:12 +00:00
2020-05-06 18:47:40 +00:00
- [ ] Python port.
2020-03-28 10:04:34 +00:00
## LICENSE
2020-04-27 15:41:27 +00:00
2020-03-28 10:04:34 +00:00
[Apache License 2.0 ](LICENSE )