moved player settings from plasmoid to dataengine

try to fix creating a lot of zombies
This commit is contained in:
arcan1s 2014-05-27 09:11:53 +04:00
parent 926c283338
commit 6ba1288c50
15 changed files with 135 additions and 156 deletions

View File

@ -5,6 +5,7 @@ Ver.1.9.1:
+ added tags $memtotmb, $memtotgb, $swaptotmb, $swaptotgb
+ added Brazillian Portuguese translation (@underr)
+ added Ukrainian translation (Виктор Слободян)
* player settings was moved from plasmoid to dataengine
* edited readme call
* changed readme from md to html

View File

@ -5,6 +5,7 @@
+ добавлены теги $memtotmb, $memtotgb, $swaptotmb, $swaptotgb
+ добавлен перевод Brazillian Portuguese (@underr)
+ добавлена украинская локализация (Виктор Слободян)
* настройки плеера были перенесены из виджета в dataengine
* исправлен вызов readme под четырехсимвольное обозначение
* перенос readme с md на html

View File

@ -20,7 +20,7 @@ optdepends=("amarok: for music player monitor"
makedepends=('automoc4' 'cmake')
source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install
md5sums=('9338f4db03d1b0d7ab540fd5be69ef89')
md5sums=('eb49cc4c68b161500ba103bd00090b65')
backup=('usr/share/config/extsysmon.conf')
prepare() {

View File

@ -135,10 +135,6 @@ Line which will be shown when AC is offline.
File with AC information. File (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online.
**Music player**
Select one of supported music playes for player label.
Tooltip settings
----------------
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.
@ -181,6 +177,9 @@ List of commands, which will be run. Number of null lines is a number of unneede
* *FreeBSD*: `PKGCMD=pkg_version -I -l '<'`, `PKGNULL=0`
* *Mandriva*: `PKGCMD=urpmq --auto-select`, `PKGNULL=0`
**Music player**
Select one of supported music playes for player label.
DataEngine configuration
------------------------

View File

@ -28,9 +28,13 @@ For edited output you must open Settings window and setup output format in lines
* 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`
@ -131,10 +135,6 @@ Line which will be shown when AC is offline.
File with AC information. File (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online.
**Music player**
Select one of supported music playes for player label.
Tooltip settings
----------------
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.
@ -177,6 +177,9 @@ List of commands, which will be run. Number of null lines is a number of unneede
* *FreeBSD*: `PKGCMD=pkg_version -I -l '<'`, `PKGNULL=0`
* *Mandriva*: `PKGCMD=urpmq --auto-select`, `PKGNULL=0`
**Music player**
Select one of supported music playes for player label.
DataEngine configuration
------------------------

View File

@ -135,10 +135,6 @@ PyTextMonitor - минималистичный плазмоид, написан
Файл с информацией об адапторе питания. Данный файл (`/sys/class/power_supply/AC/online` по умолчанию) должен содержать `1`, если адаптор подключен.
**Музыкальные плеер**
Выберете один из поддерживаемых музыкальных плееров.
Настройки тултипа
-----------------
Начиная с версии 1.7.0 поля CPU, частота CPU, память, swap и сеть поддерживают графический тултип. Чтобы включить их, просто сделайте требуемые чекбоксы полностью чекнутыми. Число хранимых значений может быть выставленно в данной вкладке. Цвета графиков также настраиваются.
@ -181,6 +177,10 @@ PyTextMonitor - минималистичный плазмоид, написан
* *FreeBSD*: `PKGCMD=pkg_version -I -l '<'`, `PKGNULL=0`
* *Mandriva*: `PKGCMD=urpmq --auto-select`, `PKGNULL=0`
**Музыкальные плеер**
Выберете один из поддерживаемых музыкальных плееров.
Настройка DataEngine
--------------------
Вы можете отредактировать настройки DataEngine вручную. Откройте файл `/usr/share/config/extsysmon.conf` или `$HOME/.kde4/share/config/extsysmon.conf`, в зависимости от типа установки. Раскомментируйте требуемые строки и отредактируйте их.

View File

@ -1,5 +1,5 @@
--- README.md.orig 2014-05-21 19:56:55.000000000 +0400
+++ README.md 2014-05-27 01:20:30.845903666 +0400
+++ README.md 2014-05-27 09:07:25.548819808 +0400
@@ -10,6 +10,7 @@
Configuration
-------------
@ -22,7 +22,18 @@
* 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`
@@ -154,6 +159,10 @@
@@ -130,10 +135,6 @@
File with AC information. File (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online.
-**Music player**
-
-Select one of supported music playes for player label.
-
Tooltip settings
----------------
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.
@@ -154,6 +155,10 @@
Select one of HDDs for HDD temperature monitor. `all` will enable monitor for all devices. Default is `all`.
@ -33,7 +44,17 @@
**MPD address**
Address of MPD server. Default is `localhost`.
@@ -191,7 +200,7 @@
@@ -172,6 +177,9 @@
* *FreeBSD*: `PKGCMD=pkg_version -I -l '<'`, `PKGNULL=0`
* *Mandriva*: `PKGCMD=urpmq --auto-select`, `PKGNULL=0`
+**Music player**
+
+Select one of supported music playes for player label.
DataEngine configuration
------------------------
@@ -191,7 +199,7 @@
---------------------
* proprietary video driver
* hddtemp (make sure that it may be run with `sudo` without password. Just add following line to `/etc/sudoers`: `$USERNAME ALL=NOPASSWD: /usr/bin/hddtemp`)

View File

@ -1,7 +1,7 @@
# Configuration file for Extended Systemmonitor DataEngine
# Uncomment needed lines
# Custom command
# Custom command, separator is '@@'
#CUSTOM=wget -qO- http://ifconfig.me/ip
# Set GPU device
@ -27,3 +27,6 @@
#PKGCMD=pacman -Qu
# Number of null lines for commands, comma separated
#PKGNULL=0
# Player name. Supported players are amarok, clementine, mpd, qmmp
#PLAYER=amarok

View File

@ -95,6 +95,7 @@ void ExtendedSysMon::readConfiguration()
rawConfig[QString("MPDPORT")] = QString("6600");
rawConfig[QString("PKGCMD")] = QString("pacman -Qu");
rawConfig[QString("PKGNULL")] = QString("0");
rawConfig[QString("PLAYER")] = QString("amarok");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf");
QFile confFile(fileName);
@ -456,55 +457,18 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
}
else if (source == QString("player")) {
QStringList value;
// amarok
value = getPlayerInfo(QString("amarok"));
key = QString("amarok_album");
setData(source, key, value[0]);
key = QString("amarok_artist");
setData(source, key, value[1]);
key = QString("amarok_progress");
setData(source, key, value[2]);
key = QString("amarok_duration");
setData(source, key, value[3]);
key = QString("amarok_title");
setData(source, key, value[4]);
// clementine
value = getPlayerInfo(QString("clementine"));
key = QString("clementine_album");
setData(source, key, value[0]);
key = QString("clementine_artist");
setData(source, key, value[1]);
key = QString("clementine_progress");
setData(source, key, value[2]);
key = QString("clementine_duration");
setData(source, key, value[3]);
key = QString("clementine_title");
setData(source, key, value[4]);
// mpd
value = getPlayerInfo(QString("mpd"),
value = getPlayerInfo(configuration[QString("PLAYER")],
configuration[QString("MPDADDRESS")],
configuration[QString("MPDPORT")]);
key = QString("mpd_album");
key = QString("album");
setData(source, key, value[0]);
key = QString("mpd_artist");
key = QString("artist");
setData(source, key, value[1]);
key = QString("mpd_progress");
key = QString("progress");
setData(source, key, value[2]);
key = QString("mpd_duration");
key = QString("duration");
setData(source, key, value[3]);
key = QString("mpd_title");
setData(source, key, value[4]);
// qmmp
value = getPlayerInfo(QString("qmmp"));
key = QString("qmmp_album");
setData(source, key, value[0]);
key = QString("qmmp_artist");
setData(source, key, value[1]);
key = QString("qmmp_progress");
setData(source, key, value[2]);
key = QString("qmmp_duration");
setData(source, key, value[3]);
key = QString("qmmp_title");
key = QString("title");
setData(source, key, value[4]);
}
else if (source == QString("ps")) {

View File

@ -72,7 +72,6 @@ class ConfigDefinition:
settings.set('ac_device', str(self.configpage.ui.lineEdit_acdev.text()))
settings.set('ac_online', str(self.configpage.ui.lineEdit_acOnline.text()))
settings.set('ac_offline', str(self.configpage.ui.lineEdit_acOffline.text()))
settings.set('player_name', str(self.configpage.ui.comboBox_playerSelect.currentText()))
settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value())
for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']:
@ -104,6 +103,7 @@ class ConfigDefinition:
pkgNull.append("0")
deConfigFile.write("PKGCMD=" + ','.join(pkgCmd) + "\n")
deConfigFile.write("PKGNULL=" + ','.join(pkgNull) + "\n")
deConfigFile.write("PLAYER=" + str(self.configpage.ui.comboBox_playerSelect.currentText()) + "\n")
except:
pass
@ -192,8 +192,6 @@ class ConfigDefinition:
self.configpage.ui.lineEdit_acdev.setText(str(settings.get('ac_device', '/sys/class/power_supply/AC/online')))
self.configpage.ui.lineEdit_acOnline.setText(str(settings.get('ac_online', '(*)')))
self.configpage.ui.lineEdit_acOffline.setText(str(settings.get('ac_offline', '( )')))
index = self.configpage.ui.comboBox_playerSelect.findText(str(settings.get('player_name', "amarok")))
self.configpage.ui.comboBox_playerSelect.setCurrentIndex(index)
self.configpage.ui.spinBox_tooltipNum.setValue(settings.get('tooltip_num', 100).toInt()[0])
self.configpage.ui.kcolorcombo_cpu.setColor(QColor(str(settings.get('cpu_color', '#ff0000'))))
@ -205,7 +203,7 @@ class ConfigDefinition:
deSettings = {'CUSTOM':'wget -qO- http://ifconfig.me/ip', 'GPUDEV':'auto', 'HDDDEV':'all',
'HDDTEMPCMD':'sudo hddtemp', 'MPDADDRESS':'localhost', 'MPDPORT':'6600', 'PKGCMD':'pacman -Qu',
'PKGNULL':'0'}
'PKGNULL':'0', 'PLAYER':'amarok'}
dataengineConfig = unicode(KGlobal.dirs().localkdedir()) + "/share/config/extsysmon.conf"
try:
with open(dataengineConfig, 'r') as deConfigFile:
@ -238,6 +236,8 @@ class ConfigDefinition:
except:
num = "0"
self.configpage.ui.listWidget_pkgCommand.addItem(deSettings['PKGCMD'].split(',')[i] + ':' + num)
index = self.configpage.ui.comboBox_playerSelect.findText(deSettings['PLAYER'])
self.configpage.ui.comboBox_playerSelect.setCurrentIndex(index)
labelOrder = str(settings.get('label_order', '1345'))
for label in self.defaults['order'].keys():

View File

@ -198,30 +198,11 @@ class DataEngine:
elif (sourceName == "player"):
updatedData['name'] = "player"
updatedData['value'] = {}
if (adv['player'] == "amarok"):
updatedData['value']['album'] = str(data[QString(u'amarok_album')].toUtf8()).decode("utf-8")
updatedData['value']['artist'] = str(data[QString(u'amarok_artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'amarok_progress')].toUtf8()).decode("utf-8")
updatedData['value']['time'] = str(data[QString(u'amarok_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'amarok_title')].toUtf8()).decode("utf-8")
elif (adv['player'] == "clementine"):
updatedData['value']['album'] = str(data[QString(u'clementine_album')].toUtf8()).decode("utf-8")
updatedData['value']['artist'] = str(data[QString(u'clementine_artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'clementine_progress')].toUtf8()).decode("utf-8")
updatedData['value']['time'] = str(data[QString(u'clementine_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'clementine_title')].toUtf8()).decode("utf-8")
elif (adv['player'] == "mpd"):
updatedData['value']['album'] = str(data[QString(u'mpd_album')].toUtf8()).decode("utf-8")
updatedData['value']['artist'] = str(data[QString(u'mpd_artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'mpd_progress')].toUtf8()).decode("utf-8")
updatedData['value']['time'] = str(data[QString(u'mpd_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'mpd_title')].toUtf8()).decode("utf-8")
elif (adv['player'] == "qmmp"):
updatedData['value']['album'] = str(data[QString(u'qmmp_album')].toUtf8()).decode("utf-8")
updatedData['value']['artist'] = str(data[QString(u'qmmp_artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'qmmp_progress')].toUtf8()).decode("utf-8")
updatedData['value']['time'] = str(data[QString(u'qmmp_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'qmmp_title')].toUtf8()).decode("utf-8")
updatedData['value']['album'] = str(data[QString(u'album')].toUtf8()).decode("utf-8")
updatedData['value']['artist'] = str(data[QString(u'artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'progress')].toUtf8()).decode("utf-8")
updatedData['value']['time'] = str(data[QString(u'duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'title')].toUtf8()).decode("utf-8")
elif (sourceName == "ps"):
updatedData['name'] = "ps"
updatedData['value'] = {}

View File

@ -47,7 +47,6 @@ class Reinit():
ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0]
ptmVars['adv']['netdev'] = str(settings.get('custom_netdev', 'lo'))
ptmVars['adv']['netDir'] = str(settings.get('netdir', '/sys/class/net'))
ptmVars['adv']['player'] = str(settings.get('player_name', "amarok"))
ptmVars['app'] = {}
ptmVars['app']['format'] = ["<pre><p align=\"center\"><span style=\" font-family:'" + str(settings.get('font_family', 'Terminus')) +\

View File

@ -1194,9 +1194,9 @@ $ps - list of running processes comma separated</string>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>328</width>
<height>754</height>
<y>-183</y>
<width>526</width>
<height>723</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
@ -1717,59 +1717,6 @@ del - remove item</string>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_playerSelect">
<item>
<widget class="QLabel" name="label_playerSelect">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Music player</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_playerSelect">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">amarok</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">clementine</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">mpd</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">qmmp</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="spacer_advanced">
<property name="orientation">
@ -2485,8 +2432,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>326</width>
<height>414</height>
<width>544</width>
<height>540</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
@ -2841,6 +2788,59 @@ del - remove item</string>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_playerSelect">
<item>
<widget class="QLabel" name="label_playerSelect">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Music player</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_playerSelect">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string notr="true">amarok</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">clementine</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">mpd</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">qmmp</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="spacer_dataengine">
<property name="orientation">
@ -2951,7 +2951,6 @@ del - remove item</string>
<tabstop>lineEdit_acOnline</tabstop>
<tabstop>lineEdit_acOffline</tabstop>
<tabstop>lineEdit_acdev</tabstop>
<tabstop>comboBox_playerSelect</tabstop>
<tabstop>scrollArea_tooltip</tabstop>
<tabstop>spinBox_tooltipNum</tabstop>
<tabstop>kcolorcombo_cpuclock</tabstop>

View File

@ -28,9 +28,13 @@
<li>tag <code>$mem</code> - usage memory, <em>%</em></li>
<li>tag <code>$memmb</code> - usage memory, <em>MB</em></li>
<li>tag <code>$memgb</code> - usage memory, <em>GB</em></li>
<li>tag <code>$memtotmb</code> - total RAM, <em>MB</em></li>
<li>tag <code>$memtotgb</code> - total RAM, <em>GB</em></li>
<li>tag <code>$swap</code> - swap, <em>%</em></li>
<li>tag <code>$swapmb</code> - swap, <em>MB</em></li>
<li>tag <code>$swapgb</code> - swap, <em>GB</em></li>
<li>tag <code>$swaptotmb</code> - total swap, <em>MB</em></li>
<li>tag <code>$swaptotgb</code> - total swap, <em>GB</em></li>
<li>tag <code>$hddN</code> - usage for mount point N, <em>%</em>. For example, <code>$hdd0</code></li>
<li>tag <code>$hddmbN</code> - usage for mount point N, <em>MB</em>. For example, <code>$hddmb0</code></li>
<li>tag <code>$hddgbN</code> - usage for mount point N, <em>GB</em>. For example, <code>$hddgb0</code></li>
@ -136,10 +140,6 @@
<p>File with AC information. File (<code>/sys/class/power_supply/AC/online</code> by default) must contain <code>1</code> if AC is online.</p>
<p><strong>Music player</strong></p>
<p>Select one of supported music playes for player label.</p>
<h2>Tooltip settings</h2>
<p>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.</p>
@ -182,6 +182,10 @@
* <em>FreeBSD</em>: <code>PKGCMD=pkg_version -I -l '&lt;'</code>, <code>PKGNULL=0</code>
* <em>Mandriva</em>: <code>PKGCMD=urpmq --auto-select</code>, <code>PKGNULL=0</code></p>
<p><strong>Music player</strong></p>
<p>Select one of supported music playes for player label.</p>
<h2>DataEngine configuration</h2>
<p>You may edit DataEngine configuration. It is <code>/usr/share/config/extsysmon.conf</code> or <code>$HOME/share/config/extsysmon.conf</code> depending on the type of installation. Uncomment needed line and edit it.</p>

View File

@ -26,9 +26,13 @@
* тег <code>$mem</code> - использование RAM, <em>%</em>
* тег <code>$memmb</code> - использование RAM, <em>MB</em>
* тег <code>$memgb</code> - использование RAM, <em>GB</em>
* тег <code>$memtotmb</code> - RAM, <em>MB</em>
* тег <code>$memtotgb</code> - RAM, <em>GB</em>
* тег <code>$swap</code> - swap, <em>%</em>
* тег <code>$swapmb</code> - swap, <em>MB</em>
* тег <code>$swapgb</code> - swap, <em>GB</em>
* тег <code>$swaptotmb</code> - размер swap, <em>MB</em>
* тег <code>$swaptotgb</code> - размер swap, <em>GB</em>
* тег <code>$hddN</code> - использование точки монтирования N, <em>%</em>. Например, <code>$hdd0</code>
* тег <code>$hddmbN</code> - использование точки монтирования N, <em>KB/s</em>. Например, <code>$hddmb0</code>
* тег <code>$hddgbN</code> - использование точки монтирования N, <em>KB/s</em>. Например, <code>$hddgb0</code>
@ -133,10 +137,6 @@
<p>Файл с информацией об адапторе питания. Данный файл (<code>/sys/class/power_supply/AC/online</code> по умолчанию) должен содержать <code>1</code>, если адаптор подключен.</p>
<p><strong>Музыкальные плеер</strong></p>
<p>Выберете один из поддерживаемых музыкальных плееров.</p>
<h2>Настройки тултипа</h2>
<p>Начиная с версии 1.7.0 поля CPU, частота CPU, память, swap и сеть поддерживают графический тултип. Чтобы включить их, просто сделайте требуемые чекбоксы полностью чекнутыми. Число хранимых значений может быть выставленно в данной вкладке. Цвета графиков также настраиваются.</p>
@ -179,6 +179,10 @@
* <em>FreeBSD</em>: <code>PKGCMD=pkg_version -I -l '&lt;'</code>, <code>PKGNULL=0</code>
* <em>Mandriva</em>: <code>PKGCMD=urpmq --auto-select</code>, <code>PKGNULL=0</code></p>
<p><strong>Музыкальные плеер</strong></p>
<p>Выберете один из поддерживаемых музыкальных плееров.</p>
<h2>Настройка DataEngine</h2>
<p>Вы можете отредактировать настройки DataEngine вручную. Откройте файл <code>/usr/share/config/extsysmon.conf</code> или <code>$HOME/.kde4/share/config/extsysmon.conf</code>, в зависимости от типа установки. Раскомментируйте требуемые строки и отредактируйте их.</p>