--- layout: project title: py-text-monitor short: pytextmonitor hasgui: true developers: - Evgeniy Alelseev - Ernesto Avilés Vzqz (Spanish translation) - Mermouy (French translation) - underr (Brazillian Portuguese translation) - Виктор Слободян (Ukrainian translation) license: GPLv3 links: - Plasmoid page on kde-look.org - DataEngine page on kde-look.org - Archlinux AUR package ---

## Information

A minimalistic Plasmoid script written on `Python2`. It looks like widgets in Awesome WM. My plasmoid is highly and easily configurable and does not clutter your KDE system. Also this packages has an additional DataEngine written on `CPP` (old version was written on `Python2`).

NOTE: LOOKING FOR TRANSLATORS!

### Developers and contributors

{% for devel in page.developers %}
- {{ devel }}
{% endfor %}

### License

- {{ page.license }}

### Changelog

CHANGELOG

## Installation

### Instruction

- Download an archive with latest version of source files.

- Extract it and install:

  {% highlight bash %} cd /where/is/applet/ mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../ make make install {% endhighlight %}

  For global isntallation type:

  {% highlight bash %} cd /where/is/applet/ mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../ make sudo make install {% endhighlight %}

### Dependencies

I want note that all were tested on latest version of dependencies.

- kdebase-workspace
- kdebindings-python2
- lm_sensors
- automoc4 (make)
- cmake (make)
- net-tools (optional, for popup messages)
- sysstat (optional, for popup messages)
- hddtemp (optional, for HDD temperature monitor)
- one of supported music player - amarok, clementine, mpd or qmmp (optional, for music player monitor)
- proprietary video driver (optional, for GPU monitor)

## How to use

Open your Plasma widgetes and select `Py Text Monitor`.

### Tips & tricks

You may use different colors for labels. Just put label text into html code. See issue for more details.

Numbering of elements of temperature, HDD usage, HDD speed, HDD temperature refers to elements order from second tab (Advanced settings). You should add item to the required listWidget first. And the first element in the listWidget will be `$tag0`. See issue for more details.

## Configuration

### DataEngine configuration

You may edit DataEngine configuration. It is `/usr/share/config/extsysmon.conf` or `$HOME/.kde4/share/config/extsysmon.conf` depending on the type of installation. Uncomment needed line and edit it.

#### DataEngine options

CUSTOM | Custom commands to run. Default is `wget -qO- http://ifconfig.me/ip`. Separator is `@@`.
DESKTOPCMD | Command which defines the current desktop. Default is `qdbus org.kde.kwin /KWin currentDesktop`.
GPUDEV | Set GPU device. May be `nvidia` (for nVidia), `ati` (for ATI Radeon), `disable` or `auto`. Default is `auto`.
HDDDEV | Set block device for `hddtemp` comma separated or use `all`. `disable` will disable HDD temperature monitor. Default is `all`.
HDDTEMPCMD | A command which will be run for hddtemp DataEngine. Default is `sudo hddtemp`.
MPDADDRESS | MPD host address. Default is `localhost`.
MPDPORT | MPD host port. Default is `6600`.
PKGCMD | Commands to run for package manager, comma separated.
PKGNULL | Number of null lines for commands, comma separated.
PLAYER | Set music player. Supported players are amarok, clementine, mpd, qmmp.

### Widget configuration

For edited output you must open Settings window and setup output format in lines. Label order will changed if you change slider position. HTML tags in label work normally.
NOTE You do not may set to show `$cpu` in swap label for example. `$cpu` will work only in cpu label.

Available flags are in the table below.
NOTE The numbering of all arrays in variables starts at 0.

Time label | `$time` | Time in default format. For example, `fri Nov 6 04:48:01 2013`.
`$isotime` | Time in ISO format.
`$shorttime` | Time in short locale format.
`$longtime` | Time in long locale format.
`$custom` | Will enable custom time format.
Uptime label | `$uptime` | System uptime, `---d--h--m`.
`$custom` | Will enable custom uptime format.
CPU label | `$cpu` | Total load CPU, %, `-----`.
`$cpuN` | Load CPU for core N, %, `-----`.
CPU clock label | `$cpucl` | Average CPU clock, MHz, `----`.
`$cpuclN` | CPU clock for core N, MHz, `----`.
Temperature label | `$tempN` | Temperature for device N, °C, `----`. For example, `$temp0`.
GPU label | `$gpu` | GPU usage, %, `-----`. `aticonfig` or `nvidia-smi` must be installed.
GPU temperature label | `$gputemp` | GPU temperature, °C, `----`. `aticonfig` or `nvidia-smi` must be installed.
Memory label | `$mem` | Memory usage, %, `-----`.
`$memmb` | Memory usage, MB, `-----`.
`$memgb` | Memory usage, GB, `----`.
`$memtotmb` | RAM, MB, `-----`.
`$memtotgb` | RAM, GB, `----`.
Swap label | `$swap` | Swap usage, %, `-----`.
`$swapmb` | Swap usage, MB, `-----`.
`$swapgb` | Swap usage, GB, `----`.
`$swaptotmb` | Swap, MB, `-----`.
`$swaptotgb` | Swap, GB, `----`.
HDD usage label | `$hddN` | Usage for mount point N, %, `-----`. For example `$hdd0`.
`$hddmbN` | Usage for mount point N, MB, `-----`. For example `$hddmb0`.
`$hddgbN` | Usage for mount point N, GB, `-----`. For example `$hddgb0`.
`$hddtotmbN` | Total size of mount point N, MB, `-----`. For example `$hddtotmb0`.
`$hddtotgbN` | Total size of mount point N, GB, `-----`. For example `$hddtotgb0`.
HDD speed label | `$hddrN` | Read speed of disk N, KB/s, `-----`. For example `$hddr0`.
`$hddwN` | Write speed of disk N, KB/s, `-----`. For example `$hddw0`.
HDD temperature label | `$hddtempN` | Temperature for HDD N, °C, `----`. For example `$hddtemp0`. `hddtemp` must be installed.
Network label | `$down` | Download speed, KB/s, `----`.
`$up` | Upload speed, KB/s, `----`.
`$netdev` | Current network device.
Battery label | `$bat` | Battery charge, %, `---`.
`$ac` | Status of AC device. Returns `(*)` if AC device is online or `( )` if offline.
Music player label | `$album` | Current song album. One of supported music players must be installed.
`$artist` | Current song artist. One of supported music players must be installed.
`$progress` | Current song progress. One of supported music players must be installed.
`$time` | Current song duration. One of supported music players must be installed.
`$title` | Current song title. One of supported music players must be installed.
Process label | `$ps` | List of running processes comma separated.
`$pscount` | Number of running processes.
`$pstotal` | Total number of processes.
Package manager label | `$pkgcountN` | Number of packages, which available to upgrade for command N.
Custom label | `$customN` | Get output from custom command N. For example `$custom0`.
Desktop label | `$name` | Name of the current desktop.
`$number` | Number of the current desktop.
`$total` | Total number of desktops.

#### Advanced settings

Enable background: Uncheck to disable default background and set transparent one.

Vertical layout: Use vertical layout instead of horizontal one.

Enable popup: Uncheck box if you do not use popup messages.

Add stretch: Add stretch (spacer) to the selected side of the widget.

Custom time format:

`$dddd` | Weekday in long format.
`$ddd` | Weekday in short format.
`$dd` | Day.
`$d` | Day without zero.
`$MMMM` | Month in long format.
`$MMM` | Month in short format.
`$MM` | Month.
`$M` | Month without zero.
`$yyyy` | Year.
`$yy` | Year in short format.
`$hh` | Hours.
`$h` | Hours without zero.
`$mm` | Minutes.
`$m` | Minutes without zero.
`$ss` | Seconds.
`$s` | Seconds without zero.

Custom uptime format:

`$dd` | Uptime days.
`$d` | Uptime days without zero.
`$hh` | Uptime hours.
`$h` | Uptime hours without zero.
`$mm` | Uptime minutes.
`$m` | Uptime minutes without zero.

Temperature units: Select units for temperature. Available units are Celsius, Farenheit and Kelvin.

Temperature devices: List of devices, which will be observed in temperature label (combo box items come from `sensors`). List widget is editable, delete key will remove current item.

Mount points: List of mount points, which will be observed in HDD label (combo box items come from `mount`). List widget is editable, delete key will remove current item.

HDDs (speed): List of hard disk devices, which will be observed in HDD speed label (combo box items come from DataEngine). List widget is editable, delete key will remove current item.

HDDs (temperature): List of hard disk devices, which will be observed in HDD temperature label (combo box items come from `find`). List widget is editable, delete key will remove current item.

Network directory: Path to directory, which contains network devices information. Default is `/sys/class/net`. It is required for auto select of network device.

Network device: Use specified device as active. Combo box items come from network directory. This option will disable auto select network device.

Battery device: File with battery information. The file (`/sys/class/power_supply/BAT0/capacity` by default) should contain only battery charge in percent.

AC online tag: Line which will be shown when AC is online. Default is `(*)`.

AC offline tag: Line which will be shown when AC is offline. Default is `( )`.

AC device: File with AC information. The file (`/sys/class/power_supply/AC/online` by default) should contain `1` if AC is online.

#### Tooltips

Since version 1.7.0 CPU, CPU clock, memory, swap and network labels support graphical tooltip. To enable them just make the needed checkboxes a fully checked. The number of stored values can be set in the tab. Colors of graphs are configurable too.

#### DataEngine settings

Custom command: NOTE this label may cause the computer freeze. Commands, which will be run for custom label. For example, `wget -qO- http://ifconfig.me/ip` will return external IP.

Desktop cmd: Type a command which will be run for desktop DataEngine. Default is `qdbus org.kde.kwin /KWin currentDesktop`.

GPU device: Select one of supported GPU devices. `auto` will enable auto selection, `disable` will disable all GPU monitors. Default is `auto`.

HDD: Select one of HDDs for HDD temperature monitor. `all` will enable monitor for all devices, `disable` will disable HDD temperature monitor. Default is `all`.

hddtemp cmd: Type a command which will be run for hddtemp DataEngine. Default is `sudo hddtemp`.

MPD address: Address of MPD server. Default is `localhost`.

MPD port: Port of MPD server. Default is `6600`.

Package manager: List of commands, which will be run. Number of null lines is a number of unneeded lines. Defaults are:

Distro | Command | Number
Arch | `pacman -Qu` | `0`
Debian | `apt-show-versions -u -b` | `0`
Ubuntu | `aptitude search '~U'` | `0`
Fedora | `yum list updates` | `3`
FreeBSD | `pkg_version -I -l '<'` | `0`
Mandriva | `urpmq --auto-select` | `0`

Music player: Select one of supported music playes for player label.

### PTM desktop panel

Since version 1.11.0 PyTextMonitor provides a minimalistic panel for monitoring on desktops written on `C++`. And yes, it looks like the same panel in Awesome.

#### Desktop panel configuration

Enable background: Uncheck to disable default background and set transparent one.

Vertical layout: Use vertical layout instead of horizontal one.

Add stretch: Add stretch (spacer) to the selected side of the widget.

Mark: Type symbol (or string) which will be shown if this desktop is active now.

Pattern tags

`$mark` | Show mark if this desktop is active.
`$name` | Name of the desktop.
`$number` | Number of the desktop.
`$total` | Total number of desktops.

Command: Type command which will be run on left click on the selected desktop. Available variables are same as for pattern. Default is `dbus org.kde.kwin /KWin setCurrentDesktop $number`.

## Graphical user interface

## Screenshots

Widget (clickable):
Configuration window:
Tooltips: