edit supported information

update desktop panel to tag changes
This commit is contained in:
arcan1s 2014-09-02 03:29:17 +04:00
parent fd81fda9a1
commit 54174974b1
8 changed files with 153 additions and 155 deletions

View File

@ -1,12 +1,12 @@
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
pkgname=kdeplasma-applets-pytextmonitor
_pkgname=pytextmonitor
pkgname=kdeplasma-applets-awesome-widgets
_pkgname=awesome-widgets
pkgver=1.11.0
pkgrel=1
pkgdesc="Minimalistic Plasmoid script written on Python2. It looks like widgets in Awesome WM"
pkgdesc="Collection of minimalistic Plasmoids which looks like Awesome WM widgets"
arch=('i686' 'x86_64')
url="http://arcanis.name/projects/pytextmonitor"
url="http://arcanis.name/projects/awesome-widgets"
license=('GPL3')
depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors')
optdepends=("amarok: for music player monitor"
@ -19,11 +19,10 @@ optdepends=("amarok: for music player monitor"
"qmmp: for music player monitor"
"sysstat: for popup messages")
makedepends=('automoc4' 'cmake')
source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
source=(https://github.com/arcan1s/awesome-widgets/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install
md5sums=('23b3f2f2d0a8bd87354d721cbf43ee22')
backup=('usr/share/config/extsysmon.conf')
changelog=CHANGELOG
prepare() {
rm -rf "${srcdir}/build"

218
README.md
View File

@ -1,79 +1,83 @@
pytextmonitor
=============
awesome-widgets
===============
Information
-----------
PyTextMonitor is a minimalistic Plasmoid script written on Python2. It looks like widgets in awesome-wm.
A collection of minimalistic widgets which looks like Awesome WM widgets.
**NOTE** [LOOKING FOR TRANSLATORS!](https://github.com/arcan1s/pytextmonitor/issues/14)
**NOTE** [LOOKING FOR TRANSLATORS!](https://github.com/arcan1s/awesome-widgets/issues/14)
Configuration
-------------
For edited output you must open Settings window and setup output format in lines:
* tag `$time` - time in default format. For example, *fri Nov 6 04:48:01 2013*
* tag `$isotime` - time in iso format
* tag `$shorttime` - time in short locale format
* tag `$longtime` - time in long locale format
* tag `$custom` - custom time format
* tag `$uptime` - uptime, *---d--h--m*
* tag `$custom` - custom uptime format
* tag `$cpu` - total load cpu, *%*
* tag `$cpuN` - load CPU for core N, *%*
* tag `$cpucl` - average cpu clock, *MHz*
* tag `$cpuclN` - cpu clock for core N, *MHz*
* tag `$tempN` - temperature for device N. For example, `$temp0`
* tag `$gpu` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* tag `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* tag `$mem` - usage memory, *%*
* tag `$memmb` - usage memory, *MB*
* tag `$memgb` - usage memory, *GB*
* tag `$memtotmb` - total RAM, *MB*
* tag `$memtotgb` - total RAM, *GB*
* tag `$swap` - swap, *%*
* tag `$swapmb` - swap, *MB*
* tag `$swapgb` - swap, *GB*
* tag `$swaptotmb` - total swap, *MB*
* tag `$swaptotgb` - total swap, *GB*
* tag `$hddN` - usage for mount point N, *%*. For example, `$hdd0`
* tag `$hddmbN` - usage for mount point N, *MB*. For example, `$hddmb0`
* tag `$hddgbN` - usage for mount point N, *GB*. For example, `$hddgb0`
* tag `$hddtotmbN` - total size of mount point N, *MB*. For example, `$hddtotmb0`
* tag `$hddtotgbN` - total size of mount point N, *GB*. For example, `$hddtotgb0`
* tag `$hddrN` - read speed of disk N, *KB/s*. For example, `$hddr0`
* tag `$hddwN` - write speed of disk N, *KB/s*. For example, `$hddw0`
* tag `$hddtempN` - temperature for HDD N. For example, `$hddtemp0`
* tag `$down` - download speed, *KB/s*
* tag `$up` - upload speed, *KB/s*
* tag `$netdev` - current network device
* tag `$bat` - battery charge, *%*
* tag `$ac` - status AC device. Return (\*) if AC device is online or *( )* if offline
* tag `$album` - current song album. One of supported music players must be installed
* tag `$artist` - current song artist. One of supported music players must be installed
* tag `$progress` - current song progress. One of supported music players must be installed
* tag `$time` - current song duration. One of supported music players must be installed
* tag `$title` - current song title. One of supported music players must be installed
* tag `$pscount` - number of running processes
* tag `$pstotal` - total number of processes
* tag `$ps` - list of running processes
* tag `$pkgcountN` - number of packages, which available to upgrade for command N. For example, `$pkgcount0`
* tag `$customN` - returns output for custom command N. For example, `$custom0`
* tag `$name` - name of the current desktop
* tag `$number` - number of the current desktop
* tag `$total` - total number of desktops
Label order will changed if you change slider position. HTML tags in label work normally.
**NOTE** you don't may set to show `$cpu` tag in swap label for example. **`$cpu` will work only in cpu label**.
* tag `$time$` - time in default format. For example, *fri Nov 6 04:48:01 2013*
* tag `$isotime$` - time in iso format
* tag `$shorttime$` - time in short locale format
* tag `$longtime$` - time in long locale format
* tag `$ctime$` - custom time format
* tag `$uptime$` - uptime, *---d--h--m*
* tag `$cuptime$` - custom uptime format
* tag `$cpu$` - total load cpu, *%*
* tag `$cpuN$` - load CPU for core N, *%*
* tag `$cpucl$` - average cpu clock, *MHz*
* tag `$cpuclN$` - cpu clock for core N, *MHz*
* tag `$tempN$` - temperature for device N. For example, `$temp0`
* tag `$gpu$` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* tag `$gputemp$` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* tag `$mem$` - usage memory, *%*
* tag `$memmb$` - usage memory, *MB*
* tag `$memgb$` - usage memory, *GB*
* tag `$memfreemb$` - free RAM, *MB*
* tag `$memfreegb$` - free RAM, *GB*
* tag `$memtotmb$` - total RAM, *MB*
* tag `$memtotgb$` - total RAM, *GB*
* tag `$memusedmb$` - used and cached RAM, *MB*
* tag `$memusedgb$` - used and cached RAM, *GB*
* tag `$swap$` - swap, *%*
* tag `$swapmb$` - swap, *MB*
* tag `$swapgb$` - swap, *GB*
* tag `$swapfreemb$` - free swap, *MB*
* tag `$swapfreegb$` - free swap, *GB*
* tag `$swaptotmb$` - total swap, *MB*
* tag `$swaptotgb$` - total swap, *GB*
* tag `$hddN$` - usage for mount point N, *%*. For example, `$hdd0`
* tag `$hddmbN$` - usage for mount point N, *MB*. For example, `$hddmb0`
* tag `$hddgbN$` - usage for mount point N, *GB*. For example, `$hddgb0`
* tag `$hddfreembN$` - free space for mount point N, *MB*. For example, `$hddfreemb0`
* tag `$hddfreegbN$` - free space for mount point N, *GB*. For example, `$hddfreegb0`
* tag `$hddtotmbN$` - total size of mount point N, *MB*. For example, `$hddtotmb0`
* tag `$hddtotgbN$` - total size of mount point N, *GB*. For example, `$hddtotgb0`
* tag `$hddrN$` - read speed of disk N, *KB/s*. For example, `$hddr0`
* tag `$hddwN$` - write speed of disk N, *KB/s*. For example, `$hddw0`
* tag `$hddtempN$` - temperature for HDD N. For example, `$hddtemp0`
* tag `$down$` - download speed, *KB/s*
* tag `$up$` - upload speed, *KB/s*
* tag `$netdev$` - current network device
* tag `$bat$` - battery charge, *%*
* tag `$ac$` - status AC device. Return (\*) if AC device is online or *( )* if offline
* tag `$album$` - current song album. One of supported music players must be installed
* tag `$artist$` - current song artist. One of supported music players must be installed
* tag `$duration$` - current song duration. One of supported music players must be installed
* tag `$progress$` - current song progress. One of supported music players must be installed
* tag `$title$` - current song title. One of supported music players must be installed
* tag `$pscount$` - number of running processes
* tag `$pstotal$` - total number of processes
* tag `$ps$` - list of running processes
* tag `$pkgcountN$` - number of packages, which available to upgrade for command N. For example, `$pkgcount0`
* tag `$customN$` - returns output for custom command N. For example, `$custom0`
* tag `$desktop$` - name of the current desktop
* tag `$ndesktop$` - number of the current desktop
* tag `$tdesktops$` - total number of desktops
Tips & tricks
-------------
You may use different colors for labels. Just put label text into html code. See [issue](https://github.com/arcan1s/pytextmonitor/issues/9) for more details.
You may use different colors for labels. Just put label text into html code. See [issue](https://github.com/arcan1s/awesome-widgets/issues/9) 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](https://github.com/arcan1s/pytextmonitor/issues/17) 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](https://github.com/arcan1s/awesome-widgets/issues/17) for more details.
Advanced settings
-----------------
@ -96,63 +100,55 @@ Add stretch (spacer) to the selected side of the widget.
**Custom time**
* tag `$dddd` - weekday in long format
* tag `$ddd` - weekday in short format
* tag `$dd` - day
* tag `$d` - day without zero
* tag `$MMMM` - month in long format
* tag `$MMM` - month in short format
* tag `$MM` - month
* tag `$M` - month without zero
* tag `$yyyy` - year
* tag `$yy` - year in short format
* tag `$hh` - hours
* tag `$h` - hours without zero
* tag `$mm` - minutes
* tag `$m` - minutes without zero
* tag `$ss` - seconds
* tag `$s` - seconds without zero
* tag `$dddd$` - weekday in long format
* tag `$ddd$` - weekday in short format
* tag `$dd$` - day
* tag `$d$` - day without zero
* tag `$MMMM$` - month in long format
* tag `$MMM$` - month in short format
* tag `$MM$` - month
* tag `$M$` - month without zero
* tag `$yyyy$` - year
* tag `$yy$` - year in short format
* tag `$hh$` - hours
* tag `$h$` - hours without zero
* tag `$mm$` - minutes
* tag `$m$` - minutes without zero
* tag `$ss$` - seconds
* tag `$s$` - seconds without zero
**Custom uptime**
* tag `$dd` - uptime days
* tag `$d` - uptime days without zero
* tag `$hh` - uptime hours
* tag `$h` - uptime hours without zero
* tag `$mm` - uptime minutes
* tag `$m` - uptime minutes without zero
* tag `$dd$` - uptime days
* tag `$d$` - uptime days without zero
* tag `$hh$` - uptime hours
* tag `$h$` - uptime hours without zero
* tag `$mm$` - uptime minutes
* tag `$m$` - uptime minutes without zero
**Temperature units**
Select units for temperature. Available units are Celsius, Farenheit and Kelvin.
Select units for temperature. Available units are Celsius, Farenheit, Kelvin, Reaumur, cm^-1, kJ/mol, kcal/mol.
**Temperature devices**
List of devices, which will be observed in temp label (combo box items come from `sensors`). List widget is editable, delete key will remove current item.
List of devices, which will be observed in temp label (items come from `sensors`). List widget is editable,
**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.
List of mount points, which will be observed in hdd label (items come from `mount`). List widget is editable.
**HDD (speed)**
List of hard disk devices, which will be observed in hddspeed label (combo box items come from DataEngine). List widget is editable, delete key will remove current item.
List of hard disk devices, which will be observed in hddspeed label (items come from DataEngine). List widget is editable.
**HDD (temperature)**
List of hard disk devices, which will be observed in hddtemp 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`. Required for auto select network device.
List of hard disk devices, which will be observed in hddtemp label (items come from `find`). List widget is editable.
**Network device**
Use specified device as active. Combo box items come from **network directory**. Will disable auto select network device.
**Battery device**
File with battery information. File (`/sys/class/power_supply/BAT0/capacity` by default) should contain only battery charge in percent.
Use specified device as active. Will disable auto select network device.
**AC online tag**
@ -162,10 +158,6 @@ Line which will be shown when AC is online.
Line which will be shown when AC is offline.
**AC device**
File with AC information. File (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online.
Tooltip settings
----------------
@ -174,9 +166,15 @@ Since version 1.7.0 CPU, CPU clock, memory, swap and network labels support grap
DataEngine settings
-------------------
**Custom command**
**AC device**
*NOTE* This can cause the computer freeze.
File with AC information. File (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online.
**Battery device**
File with battery information. File (`/sys/class/power_supply/BAT0/capacity` by default) should contain only battery charge in percent.
**Custom command**
Commands, which will be run for custom label.
@ -226,7 +224,7 @@ 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.
Since version 1.11.0 it provides a minimalistic panel for monitoring on desktops written on `C++`. And yes, it looks like the same panel in Awesome.
Desktop panel configuration
---------------------------
@ -249,14 +247,14 @@ Type symbol (or string) which will be shown if this desktop is active now.
**Pattern tags**
* tag `$mark` - show mark if this desktop is active
* tag `$name` - name of the current desktop
* tag `$number` - number of the current desktop
* tag `$total` - total number of desktops
* tag `$mark$` - show mark if this desktop is active
* tag `$name$` - name of the current desktop
* tag `$number$` - number of the current desktop
* tag `$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`.
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$`.
Instruction
===========
@ -307,7 +305,7 @@ TODO (wish list)
Links
-----
* [Homepage](http://arcanis.name/projects/pytextmonitor/)
* [Homepage](http://arcanis.name/projects/awesome-widgets/)
* Plasmoid on [kde-look](http://kde-look.org/content/show.php/Py+Text+Monitor?content=157124)
* DataEngine on [kde-look](http://kde-look.org/content/show.php/Extended+Systemmonitor+DataEngine?content=158773)
* Archlinux [AUR](https://aur.archlinux.org/packages/kdeplasma-applets-pytextmonitor/) package
* Archlinux [AUR](https://aur.archlinux.org/packages/kdeplasma-applets-awesome-widgets/) package

View File

@ -18,7 +18,7 @@ tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}"
rm -rf "${ARCHIVE}"
# build widget
ARCHIVE="pytextmonitor"
ARCHIVE="awesome-widgets"
FILES="AUTHORS CHANGELOG CHANGELOG-RU COPYING"
IGNORELIST="build usr"
# create archive

View File

@ -6,8 +6,8 @@ cmake_policy (SET CMP0011 NEW)
cmake_policy (SET CMP0015 NEW)
project (pytextmonitor)
set (PROJECT_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 11)
set (PROJECT_VERSION_MAJOR 2)
set (PROJECT_VERSION_MINOR 0)
set (PROJECT_VERSION_PATCH 0)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
set (PROJECT_TRDPARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)

View File

@ -47,7 +47,7 @@ QMap<QString, QString> AwesomeWidget::readDataEngineConfiguration()
rawConfig[QString("PKGNULL")] = QString("0");
rawConfig[QString("PLAYER")] = QString("mpris");
QString fileName = KGlobal::dirs()->findResource("config", "ext-sysmon.conf");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly))
@ -78,7 +78,7 @@ void AwesomeWidget::writeDataEngineConfiguration(const QMap<QString, QString> se
if (debug) qDebug() << PDEBUG;
QMap<QString, QString> config = updateDataEngineConfiguration(settings);
QString fileName = KGlobal::dirs()->locateLocal("config", "ext-sysmon.conf");
QString fileName = KGlobal::dirs()->locateLocal("config", "extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName);
if (!configFile.open(QIODevice::WriteOnly)) return;
@ -126,6 +126,7 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
if (debug) qDebug() << PDEBUG;
QString cmd, qoutput;
QStringList headerList;
TaskResult process;
QWidget *advWidget = new QWidget;
uiAdvancedConfig.setupUi(advWidget);
@ -165,11 +166,11 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
Qt::MatchFixedString));
cmd = QString("sensors");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult sensorsProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << sensorsProcess.exitCode;
if (sensorsProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << sensorsProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(sensorsProcess.output);
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
uiAdvancedConfig.listWidget_tempDevice->clear();
for (int i=0; i<qoutput.split(QString("\n\n")).count(); i++) {
QString sensor = qoutput.split(QString("\n\n"))[i];
@ -191,11 +192,11 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
}
cmd = QString("mount");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult mountProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << mountProcess.exitCode;
if (mountProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << mountProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(mountProcess.output);
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
uiAdvancedConfig.listWidget_mount->clear();
for (int i=0; i<qoutput.split(QChar('\n')).count(); i++) {
QString mountPoint = qoutput.split(QChar('\n'))[i].split(QString(" on "))[1].split(QString(" type "))[0];
@ -223,11 +224,11 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
}
cmd = QString("find /dev -name [hms]d[a-z]");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult findProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << findProcess.exitCode;
if (findProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << findProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(findProcess.output).trimmed();
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
uiAdvancedConfig.listWidget_hddDevice->clear();
for (int i=0; i<qoutput.split(QChar('\n')).count(); i++) {
QListWidgetItem *item = new QListWidgetItem(qoutput.split(QChar('\n'))[i]);
@ -325,11 +326,11 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
uiDEConfig.comboBox_gpudev->findText(deSettings[QString("GPUDEV")], Qt::MatchFixedString));
cmd = QString("find /dev -name [hms]d[a-z]");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
TaskResult hddProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << hddProcess.exitCode;
if (hddProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << hddProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(hddProcess.output).trimmed();
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
uiDEConfig.comboBox_hdddev->clear();
uiDEConfig.comboBox_hdddev->addItem(QString("all"));
uiDEConfig.comboBox_hdddev->addItem(QString("disable"));

View File

@ -167,21 +167,21 @@ QString DesktopPanel::parsePattern(const QString rawLine, const int num)
mark = configuration[QString("mark")];
else
mark = QString("");
if (line.split(QString("$mark"))[0] != line) {
if (line.split(QString("$mark$"))[0] != line) {
if (debug) qDebug() << PDEBUG << ":" << "Found mark";
line = line.split(QString("$mark"))[0] + mark + line.split(QString("$mark"))[1];
line = line.split(QString("$mark$"))[0] + mark + line.split(QString("$mark$"))[1];
}
if (line.split(QString("$name"))[0] != line) {
if (line.split(QString("$name$"))[0] != line) {
if (debug) qDebug() << PDEBUG << ":" << "Found name";
line = line.split(QString("$name"))[0] + desktopNames[num] + line.split(QString("$name"))[1];
line = line.split(QString("$name$"))[0] + desktopNames[num] + line.split(QString("$name$"))[1];
}
if (line.split(QString("$number"))[0] != line) {
if (line.split(QString("$number$"))[0] != line) {
if (debug) qDebug() << PDEBUG << ":" << "Found number";
line = line.split(QString("$number"))[0] + QString::number(num + 1) + line.split(QString("$number"))[1];
line = line.split(QString("$number$"))[0] + QString::number(num + 1) + line.split(QString("$number$"))[1];
}
if (line.split(QString("$total"))[0] != line) {
if (line.split(QString("$total$"))[0] != line) {
if (debug) qDebug() << PDEBUG << ":" << "Found total";
line = line.split(QString("$total"))[0] + QString::number(desktopNames.count()) + line.split(QString("$total"))[1];
line = line.split(QString("$total$"))[0] + QString::number(desktopNames.count()) + line.split(QString("$total$"))[1];
}
return line;
@ -443,13 +443,13 @@ void DesktopPanel::configChanged()
KConfigGroup cg = config();
configuration[QString("background")] = cg.readEntry("background", "2");
configuration[QString("desktopcmd")] = cg.readEntry("desktopcmd", "qdbus org.kde.kwin /KWin setCurrentDesktop $number");
configuration[QString("desktopcmd")] = cg.readEntry("desktopcmd", "qdbus org.kde.kwin /KWin setCurrentDesktop $number$");
configuration[QString("interval")] = cg.readEntry("interval", "1000");
configuration[QString("layout")] = cg.readEntry("layout", "0");
configuration[QString("leftStretch")] = cg.readEntry("leftStretch", "2");
configuration[QString("mark")] = cg.readEntry("mark", "¤");
configuration[QString("panels")] = cg.readEntry("panels", "-1");
configuration[QString("pattern")] = cg.readEntry("pattern", "[$mark$number/$total: $name]");
configuration[QString("pattern")] = cg.readEntry("pattern", "[$mark$$number$/$total$: $name$]");
configuration[QString("rightStretch")] = cg.readEntry("rightStretch", "2");
extsysmonEngine->connectSource(QString("desktop"), this, configuration[QString("interval")].toInt());

View File

@ -233,10 +233,10 @@
<item>
<widget class="QLineEdit" name="lineEdit_pattern">
<property name="toolTip">
<string>$mark - show mark if the current desktop is active
$name - desktop name
$number - desktop number
$total - total number of desktops</string>
<string>$mark$ - show mark if the current desktop is active
$name$ - desktop name
$number$ - desktop number
$total$ - total number of desktops</string>
</property>
</widget>
</item>