added hdd speed label

This commit is contained in:
arcan1s 2014-05-19 02:48:00 +04:00
parent b09e90a0e5
commit 1a6d97800c
9 changed files with 292 additions and 84 deletions

View File

@ -31,6 +31,8 @@ For edited output you must open Settings window and setup output format in lines
* tag `$swapmb` - swap, *MB*
* tag `$swapgb` - swap, *GB*
* tag `$hddN` - usage for mount point N, *%*. For example, `$hdd0`
* 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*
@ -94,9 +96,13 @@ List of devices, which will be observed in temp label (combo box items come from
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.
**HDD**
**HDD (speed)**
List of hard disk devices, which will be observed in hddtem label (combo box items come from `find`). List widget is editable, delete key will remove current item.
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.
**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**

View File

@ -61,6 +61,10 @@ class ConfigDefinition:
for i in range(self.configpage.ui.listWidget_hddDevice.count()):
item.append(self.configpage.ui.listWidget_hddDevice.item(i).text())
settings.set('hdd', str(item.join(QString('@@'))))
item = QStringList()
for i in range(self.configpage.ui.listWidget_hddSpeedDevice.count()):
item.append(self.configpage.ui.listWidget_hddSpeedDevice.item(i).text())
settings.set('disk', str(item.join(QString('@@'))))
settings.set('netdir', str(self.configpage.ui.lineEdit_netdir.text()))
settings.set('netdevBool', self.configpage.ui.checkBox_netdev.checkState())
settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText()))
@ -168,6 +172,12 @@ class ConfigDefinition:
self.configpage.ui.listWidget_hddDevice.clear()
for item in str(settings.get('hdd', '/dev/sda')).split('@@'):
self.configpage.ui.listWidget_hddDevice.addItem(item)
self.configpage.ui.comboBox_hddSpeedDevice.clear()
for item in self.defaults['disk']:
self.configpage.ui.comboBox_hddSpeedDevice.addItem(item)
self.configpage.ui.listWidget_hddSpeedDevice.clear()
for item in str(settings.get('disk', 'disk/sda_(8:0)')).split('@@'):
self.configpage.ui.listWidget_hddSpeedDevice.addItem(item)
self.configpage.ui.lineEdit_netdir.setText(str(settings.get('netdir', '/sys/class/net')))
self.configpage.ui.checkBox_netdev.setCheckState(settings.get('netdevBool', 0).toInt()[0])
for item in QDir.entryList(QDir(str(settings.get('netdir', '/sys/class/net'))), QDir.Dirs | QDir.NoDotAndDotDot):

View File

@ -36,34 +36,35 @@ class ConfigWindow(QWidget):
'up':self.ui.kcolorcombo_up}
self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu,
'cpuclock':self.ui.checkBox_cpuclock, 'custom':self.ui.checkBox_custom,
'gpu':self.ui.checkBox_gpu, 'gputemp':self.ui.checkBox_gpuTemp,
'hdd':self.ui.checkBox_hdd, 'hddtemp':self.ui.checkBox_hddTemp,
'mem':self.ui.checkBox_mem, 'net':self.ui.checkBox_net,
'swap':self.ui.checkBox_swap, 'temp':self.ui.checkBox_temp,
'uptime':self.ui.checkBox_uptime, 'pkg':self.ui.checkBox_pkg,
'player':self.ui.checkBox_player, 'ps':self.ui.checkBox_ps,
'time':self.ui.checkBox_time}
'disk':self.ui.checkBox_hddSpeed, 'gpu':self.ui.checkBox_gpu,
'gputemp':self.ui.checkBox_gpuTemp, 'hdd':self.ui.checkBox_hdd,
'hddtemp':self.ui.checkBox_hddTemp, 'mem':self.ui.checkBox_mem,
'net':self.ui.checkBox_net, 'swap':self.ui.checkBox_swap,
'temp':self.ui.checkBox_temp, 'uptime':self.ui.checkBox_uptime,
'pkg':self.ui.checkBox_pkg, 'player':self.ui.checkBox_player,
'ps':self.ui.checkBox_ps, 'time':self.ui.checkBox_time}
self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu,
'cpuclock':self.ui.lineEdit_cpuclock, 'custom':self.ui.lineEdit_custom,
'gpu':self.ui.lineEdit_gpu, 'gputemp':self.ui.lineEdit_gpuTemp,
'hdd':self.ui.lineEdit_hdd, 'hddtemp':self.ui.lineEdit_hddTemp,
'mem':self.ui.lineEdit_mem, 'net':self.ui.lineEdit_net,
'swap':self.ui.lineEdit_swap, 'temp':self.ui.lineEdit_temp,
'uptime':self.ui.lineEdit_uptime, 'pkg':self.ui.lineEdit_pkg,
'player':self.ui.lineEdit_player, 'ps':self.ui.lineEdit_ps,
'time':self.ui.lineEdit_time}
'disk':self.ui.lineEdit_hddSpeed, 'gpu':self.ui.lineEdit_gpu,
'gputemp':self.ui.lineEdit_gpuTemp, 'hdd':self.ui.lineEdit_hdd,
'hddtemp':self.ui.lineEdit_hddTemp, 'mem':self.ui.lineEdit_mem,
'net':self.ui.lineEdit_net, 'swap':self.ui.lineEdit_swap,
'temp':self.ui.lineEdit_temp, 'uptime':self.ui.lineEdit_uptime,
'pkg':self.ui.lineEdit_pkg, 'player':self.ui.lineEdit_player,
'ps':self.ui.lineEdit_ps, 'time':self.ui.lineEdit_time}
self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu,
'cpuclock':self.ui.slider_cpuclock, 'custom':self.ui.slider_custom,
'gpu':self.ui.slider_gpu, 'gputemp':self.ui.slider_gpuTemp,
'hdd':self.ui.slider_hdd, 'hddtemp':self.ui.slider_hddTemp,
'mem':self.ui.slider_mem, 'net':self.ui.slider_net,
'swap':self.ui.slider_swap, 'temp':self.ui.slider_temp,
'uptime':self.ui.slider_uptime, 'pkg':self.ui.slider_pkg,
'player':self.ui.slider_player, 'ps':self.ui.slider_ps,
'time':self.ui.slider_time}
'disk':self.ui.slider_hddSpeed, 'gpu':self.ui.slider_gpu,
'gputemp':self.ui.slider_gpuTemp, 'hdd':self.ui.slider_hdd,
'hddtemp':self.ui.slider_hddTemp, 'mem':self.ui.slider_mem,
'net':self.ui.slider_net, 'swap':self.ui.slider_swap,
'temp':self.ui.slider_temp, 'uptime':self.ui.slider_uptime,
'pkg':self.ui.slider_pkg, 'player':self.ui.slider_player,
'ps':self.ui.slider_ps, 'time':self.ui.slider_time}
QObject.connect(self.ui.checkBox_netdev, SIGNAL("stateChanged(int)"), self.setNetdevEnabled)
QObject.connect(self.ui.pushButton_hddDevice, SIGNAL("clicked()"), self.addHddDevice)
QObject.connect(self.ui.pushButton_hddSpeedDevice, SIGNAL("clicked()"), self.addHddSpeedDevice)
QObject.connect(self.ui.pushButton_mount, SIGNAL("clicked()"), self.addMount)
QObject.connect(self.ui.pushButton_tempDevice, SIGNAL("clicked()"), self.addTempDevice)
QObject.connect(self.ui.pushButton_pkgCommand, SIGNAL("clicked()"), self.addPkgCommand)
@ -85,6 +86,9 @@ class ConfigWindow(QWidget):
if (self.ui.listWidget_hddDevice.hasFocus() and
(self.ui.listWidget_hddDevice.currentRow() > -1)):
self.ui.listWidget_hddDevice.takeItem(self.ui.listWidget_hddDevice.currentRow())
elif (self.ui.listWidget_hddSpeedDevice.hasFocus() and
(self.ui.listWidget_hddSpeedDevice.currentRow() > -1)):
self.ui.listWidget_hddSpeedDevice.takeItem(self.ui.listWidget_hddSpeedDevice.currentRow())
elif (self.ui.listWidget_mount.hasFocus() and
(self.ui.listWidget_mount.currentRow() > -1)):
self.ui.listWidget_mount.takeItem(self.ui.listWidget_mount.currentRow())
@ -102,6 +106,12 @@ class ConfigWindow(QWidget):
self.ui.listWidget_hddDevice.addItem(self.ui.comboBox_hddDevice.currentText())
def addHddSpeedDevice(self):
"""function to add disk device"""
self.ui.listWidget_hddSpeedDevice.clearSelection()
self.ui.listWidget_hddSpeedDevice.addItem(self.ui.comboBox_hddSpeedDevice.currentText())
def addMount(self):
"""function to add mount points"""
self.ui.listWidget_mount.clearSelection()

View File

@ -47,6 +47,10 @@ class DataEngine:
dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/clock", self.parent, interval)
if (bools['custom'] > 0):
dataEngines['ext'].connectSource("custom", self.parent, interval)
if (bools['disk'] > 0):
for item in names['disk']:
dataEngines['system'].connectSource(item + "/Rate/rblk", self.parent, interval)
dataEngines['system'].connectSource(item + "/Rate/wblk", self.parent, interval)
if (bools['gpu'] > 0):
dataEngines['ext'].connectSource("gpu", self.parent, interval)
if (bools['gputemp'] > 0):
@ -116,6 +120,16 @@ class DataEngine:
updatedData['name'] = "custom"
value = str(data[QString(u'custom')].toUtf8()).decode("utf-8")
updatedData['value'] = value
elif ((sourceName[:4] == "disk") and (sourceName[-4:] == "rblk")):
updatedData['name'] = "disk-r"
updatedData['type'] = '/'.join(str(sourceName).split('/')[0:2])
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif ((sourceName[:4] == "disk") and (sourceName[-4:] == "wblk")):
updatedData['name'] = "disk-w"
updatedData['type'] = '/'.join(str(sourceName).split('/')[0:2])
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif (sourceName == "gpu"):
updatedData['name'] = "gpu"
value = round(data[QString(u'GPU')], 1)
@ -282,6 +296,10 @@ class DataEngine:
dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/clock", self.parent)
elif (name == "custom"):
dataEngines['ext'].disconnectSource("custom", self.parent)
elif (name == "disk"):
for item in keys['disk']:
dataEngines['system'].disconnectSource(item + "/Rate/rblk", self.parent)
dataEngines['system'].disconnectSource(item + "/Rate/rblk", self.parent)
elif (name == "gpu"):
dataEngines['ext'].disconnectSource("gpu", self.parent)
elif (name == "gputemp"):

View File

@ -106,7 +106,7 @@ class pyTextWidget(plasmascript.Applet):
"""function to create actions"""
self.ptmActions = {}
self.ptmActions['ksysguard'] = QAction(i18n("Run ksysguard"), self)
QObject.connect(self.ptmActions['ksysguard'], SIGNAL("triggered(bool)"), self.showReadme)
QObject.connect(self.ptmActions['ksysguard'], SIGNAL("triggered(bool)"), self.runKsysguard)
self.ptmActions['readme'] = QAction(i18n("Show README"), self)
QObject.connect(self.ptmActions['readme'], SIGNAL("triggered(bool)"), self.showReadme)
@ -119,6 +119,11 @@ class pyTextWidget(plasmascript.Applet):
return contextMenu
def runKsysguard(self, event):
"""function to run ksysguard"""
os.system("ksysguard &")
def showReadme(self):
"""function to show readme file"""
kdehome = unicode(KGlobal.dirs().localkdedir())
@ -138,12 +143,13 @@ class pyTextWidget(plasmascript.Applet):
os.system("kioclient exec " + str(filePath) + " &")
def runKsysguard(self, event):
"""function to run ksysguard"""
os.system("ksysguard &")
# internal functions
def addDiskDevice(self, sourceName):
diskRegexp = QRegExp("disk/(?:md|sd|hd)[a-z|0-9]_.*/Rate/(?:rblk)")
if (diskRegexp.indexIn(sourceName) > -1):
self.ptm['defaults']['disk'].append('/'.join(str(sourceName).split('/')[0:2]))
def createConfigurationInterface(self, parent):
"""function to setup configuration window"""
self.configpage = configwindow.ConfigWindow(self)
@ -182,38 +188,41 @@ class pyTextWidget(plasmascript.Applet):
# defaults
self.ptm['defaults'] = {}
self.ptm['defaults']['confBool'] = {'bat':'batBool', 'cpu':'cpuBool',
'cpuclock':'cpuclockBool', 'custom':'customBool', 'gpu':'gpuBool',
'gputemp':'gputempBool', 'hdd':'hddBool', 'hddtemp':'hddtempBool',
'mem':'memBool', 'net':'netBool', 'pkg':'pkgBool', 'player':'playerBool',
'ps':'psBool', 'swap':'swapBool', 'temp':'tempBool', 'uptime':'uptimeBool',
'time':'timeBool'}
'cpuclock':'cpuclockBool', 'custom':'customBool', 'disk':'diskBool',
'gpu':'gpuBool', 'gputemp':'gputempBool', 'hdd':'hddBool',
'hddtemp':'hddtempBool', 'mem':'memBool', 'net':'netBool', 'pkg':'pkgBool',
'player':'playerBool', 'ps':'psBool', 'swap':'swapBool', 'temp':'tempBool',
'uptime':'uptimeBool', 'time':'timeBool'}
self.ptm['defaults']['confColor'] = {'cpu':'cpu_color', 'cpuclock':'cpuclock_color',
'down':'down_color', 'mem':'mem_color', 'swap':'swap_color', 'up':'up_color'}
self.ptm['defaults']['confFormat'] = {'bat':'batFormat', 'cpu':'cpuFormat',
'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'gpu':'gpuFormat',
'gputemp':'gputempFormat', 'hdd':'hddFormat', 'hddtemp':'hddtempFormat',
'mem':'memFormat', 'net':'netFormat', 'pkg':'pkgFormat',
'player':'playerFormat', 'ps':'psFormat', 'swap':'swapFormat',
'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'disk':'diskFormat',
'gpu':'gpuFormat', 'gputemp':'gputempFormat', 'hdd':'hddFormat',
'hddtemp':'hddtempFormat', 'mem':'memFormat', 'net':'netFormat',
'pkg':'pkgFormat', 'player':'playerFormat', 'ps':'psFormat', 'swap':'swapFormat',
'temp':'tempFormat', 'time':'timeFormat', 'uptime':'uptimeFormat'}
self.ptm['defaults']['bool'] = {'bat':0, 'cpu':2, 'cpuclock':0, 'custom':0,
'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2, 'pkg':0,
'player':0, 'ps':0, 'swap':2, 'temp':0, 'time':0, 'uptime':0}
'disk':0, 'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2,
'pkg':0, 'player':0, 'ps':0, 'swap':2, 'temp':0, 'time':0, 'uptime':0}
self.ptm['defaults']['format'] = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]',
'gputemp':'[gpu temp: $gputemp°C]', 'hdd':'[hdd: $hdd0%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'disk':'[disk: $hddr0/$hddw0 KB/s]',
'gpu':'[gpu: $gpu%]', 'gputemp':'[gpu temp: $gputemp°C]', 'hdd':'[hdd: $hdd0%]',
'hddtemp':'[hdd temp: $hddtemp0°C]', 'mem':'[mem: $mem%]',
'net':'[$netdev: $down/$upKB/s]', 'pkg':'[upgrade: $pkgcount0]',
'player':'[$artist - $title]', 'ps':'[proc: $pscount]', 'swap':'[swap: $swap%]',
'temp':'[temp: $temp0°C]', 'time':'[$time]', 'uptime':'[uptime: $uptime]'}
self.ptm['defaults']['order'] = {'1':'cpu', '2':'temp', '3':'mem', '4':'swap', '5':'net',
'6':'bat', '7':'cpuclock', '8':'uptime', '9':'gpu', 'a':'gputemp', 'b':'hdd',
'c':'hddtemp', 'd':'player', 'e':'time', 'f':'custom', 'g':'ps', 'h':'pkg'}
'c':'hddtemp', 'd':'player', 'e':'time', 'f':'custom', 'g':'ps', 'h':'pkg', 'i':'disk'}
# disk devices for r/w speed
self.ptm['defaults']['disk'] = []
# labels
self.ptm['labels'] = {}
self.ptm['layout'] = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
self.ptm['layout'].setContentsMargins(1, 1, 1, 1)
# names
self.ptm['names'] = {}
self.ptm['names']['disk'] = []
self.ptm['names']['hdd'] = []
self.ptm['names']['hddtemp'] = []
self.ptm['names']['net'] = ""
@ -232,6 +241,8 @@ class pyTextWidget(plasmascript.Applet):
for i in range(numCores):
self.ptm['values']['cpu'][i] = 0.0
self.ptm['values']['cpuclock'][i] = 0.0
self.ptm['values']['disk-r'] = {}
self.ptm['values']['disk-w'] = {}
self.ptm['values']['hdd'] = {}
self.ptm['values']['hddmb'] = {}
self.ptm['values']['hddtemp'] = {}
@ -271,6 +282,8 @@ class pyTextWidget(plasmascript.Applet):
self.cpuText()
if (self.ptm['vars']['bools']['cpuclock'] > 0):
self.cpuclockText()
if (self.ptm['vars']['bools']['disk'] > 0):
self.diskText()
if (self.ptm['vars']['bools']['hdd'] > 0):
self.hddText()
if (self.ptm['vars']['bools']['hddtemp'] > 0):
@ -393,6 +406,25 @@ class pyTextWidget(plasmascript.Applet):
self.setText("cpuclock", text)
def diskText(self):
line = self.ptm['vars']['formats']['disk']
devices = range(len(self.ptm['names']['disk']))
devices.reverse()
for i in devices:
if (line.split('$hddr' + str(i))[0] != line):
hdd = "%4i" % (self.ptm['values']['disk-r'][self.ptm['names']['disk'][i]])
line = line.split('$hddr' + str(i))[0] +\
hdd +\
line.split('$hddr' + str(i))[1]
if (line.split('$hddw' + str(i))[0] != line):
hdd = "%4i" % (self.ptm['values']['disk-w'][self.ptm['names']['disk'][i]])
line = line.split('$hddw' + str(i))[0] +\
hdd +\
line.split('$hddw' + str(i))[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("disk", text)
def hddText(self):
"""function to set hdd text"""
line = self.ptm['vars']['formats']['hdd']
@ -517,11 +549,16 @@ class pyTextWidget(plasmascript.Applet):
"""function to read settings"""
self.ptm[name] = ptm
if (name == "names"):
for item in ['hdd', 'hddtemp', 'temp']:
for item in ['hddtemp', 'temp']:
for value in self.ptm['names'][item]:
self.ptm['values'][item][value] = 0.0
if (item == "hdd"):
self.ptm['values']['hddmb'][value] = 0.0
for value in self.ptm['names']['hdd']:
self.ptm['values']['hdd'][value] = 0.0
self.ptm['values']['hddmb'][value] = 0.0
for value in self.ptm['names']['disk']:
self.ptm['values']['disk-r'][value] = 0.0
self.ptm['values']['disk-w'][value] = 0.0
def connectToEngine(self):
@ -529,6 +566,7 @@ class pyTextWidget(plasmascript.Applet):
self.ptm['dataengine']['ext'] = self.dataEngine("ext-sysmon")
self.ptm['dataengine']['system'] = self.dataEngine("systemmonitor")
self.ptm['dataengine']['time'] = self.dataEngine("time")
QObject.connect(self.ptm['dataengine']['system'], SIGNAL("sourceAdded(QString)"), self.addDiskDevice)
self.dataengine.connectToEngine(self.ptm['vars']['bools'], self.ptm['dataengine'],
self.ptm['vars']['app']['interval'], self.ptm['names'])
@ -539,8 +577,8 @@ class pyTextWidget(plasmascript.Applet):
if (self.ptm['vars']['bools'][label] > 0):
self.addLabel(label, None, False)
keys = {'cpu':self.ptm['values']['cpu'].keys(), 'cpuclock':self.ptm['values']['cpuclock'].keys(),
'hdd':self.ptm['values']['hdd'].keys(), 'net':self.ptm['names']['net'],
'temp':self.ptm['values']['temp'].keys()}
'disk':self.ptm['values']['disk-r'].keys(), 'hdd':self.ptm['values']['hdd'].keys(),
'net':self.ptm['names']['net'], 'temp':self.ptm['values']['temp'].keys()}
self.dataengine.disconnectFromSource(self.ptm['dataengine'], keys, label)

View File

@ -194,6 +194,8 @@ class PTMNotify:
return self.createText("processor")
elif (name == "custom"):
return self.createText("system")
elif (name == "disk"):
return self.createText("disk")
elif (name == "gpu"):
return self.createText("graphical")
elif (name == "gputemp"):

View File

@ -71,6 +71,7 @@ class Reinit():
ptmVars['bools'][label] = settings.get(self.defaults['confBool'][label], self.defaults['bool'][label]).toInt()[0]
ptmNames = {}
ptmNames['disk'] = str(settings.get('disk', 'disk/sda_(8:0)')).split('@@')
ptmNames['hdd'] = str(settings.get('mount', '/')).split('@@')
ptmNames['hddtemp'] = str(settings.get('hdd', '/dev/sda')).split('@@')
if (ptmVars['adv']['netdevBool'] > 0):

View File

@ -66,7 +66,7 @@
<x>0</x>
<y>0</y>
<width>526</width>
<height>624</height>
<height>660</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
@ -114,7 +114,7 @@ $custom - custom time format</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -170,7 +170,7 @@ $custom - custom format</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -236,7 +236,7 @@ $cpuN - load CPU for core N, %</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -302,7 +302,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -360,7 +360,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -418,7 +418,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -476,7 +476,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -539,7 +539,7 @@ $memgb - RAM usage, GB</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -602,7 +602,7 @@ $swapgb - swap usage, GB</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -662,7 +662,7 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -680,6 +680,65 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_hddSpeed">
<item>
<widget class="QCheckBox" name="checkBox_hddSpeed">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD speed</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_hddSpeed">
<property name="toolTip">
<string>$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0
$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="slider_hddSpeed">
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>11</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksAbove</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_hddTemp">
<item>
@ -691,7 +750,7 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
</size>
</property>
<property name="text">
<string>HDD Temp</string>
<string>HDD temp</string>
</property>
<property name="checked">
<bool>true</bool>
@ -720,13 +779,13 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>11</number>
<number>12</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -783,13 +842,13 @@ $netdev - current network device</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>12</number>
<number>13</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -842,13 +901,13 @@ $ac - AC status</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>13</number>
<number>14</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -904,13 +963,13 @@ $title - song title</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>14</number>
<number>15</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -964,13 +1023,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>15</number>
<number>16</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1022,13 +1081,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>16</number>
<number>17</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1080,13 +1139,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>17</number>
<number>18</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1131,9 +1190,9 @@ $ps - list of running processes comma separated</string>
<property name="geometry">
<rect>
<x>0</x>
<y>-102</y>
<y>0</y>
<width>526</width>
<height>642</height>
<height>754</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
@ -1370,6 +1429,58 @@ del - remove item</string>
<widget class="QListWidget" name="listWidget_mount">
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="layout_hddSpeedDevice">
<item>
<layout class="QHBoxLayout" name="layout_hddSpeedDeviceSelect">
<item>
<widget class="QLabel" name="label_hddSpeedDevice">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD devices (speed)</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_hddSpeedDevice">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_hddSpeedDevice">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget_hddSpeedDevice">
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
</widget>
@ -1389,7 +1500,7 @@ del - remove item</string>
</size>
</property>
<property name="text">
<string>HDD devices</string>
<string>HDD devices (temp)</string>
</property>
</widget>
</item>
@ -1697,8 +1808,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>504</height>
<width>326</width>
<height>227</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
@ -2031,8 +2142,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>540</height>
<width>326</width>
<height>190</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
@ -2365,8 +2476,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>540</height>
<width>326</width>
<height>302</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
@ -2736,6 +2847,9 @@ del - remove item</string>
<tabstop>lineEdit_hdd</tabstop>
<tabstop>slider_hdd</tabstop>
<tabstop>checkBox_hddTemp</tabstop>
<tabstop>checkBox_hddSpeed</tabstop>
<tabstop>lineEdit_hddSpeed</tabstop>
<tabstop>slider_hddSpeed</tabstop>
<tabstop>lineEdit_hddTemp</tabstop>
<tabstop>slider_hddTemp</tabstop>
<tabstop>checkBox_net</tabstop>
@ -2766,6 +2880,9 @@ del - remove item</string>
<tabstop>comboBox_mount</tabstop>
<tabstop>pushButton_mount</tabstop>
<tabstop>listWidget_mount</tabstop>
<tabstop>comboBox_hddSpeedDevice</tabstop>
<tabstop>pushButton_hddSpeedDevice</tabstop>
<tabstop>listWidget_hddSpeedDevice</tabstop>
<tabstop>comboBox_hddDevice</tabstop>
<tabstop>pushButton_hddDevice</tabstop>
<tabstop>listWidget_hddDevice</tabstop>

View File

@ -29,6 +29,8 @@ PyTextMonitor - минималистичный плазмоид, написан
* тег `$swapmb` - swap, *MB*
* тег `$swapgb` - swap, *GB*
* тег `$hddN` - использование точки монтирования N, *%*. Например, `$hdd0`
* тег `$hddrN` - скорость записи на диск N, *KB/s*. Например, `$hddr0`
* тег `$hddwN` - скорость чтения с диска N, *KB/s*. Например, `$hddw0`
* тег `$hddtempN` - температура HDD N. Например, `$hddtemp0`
* тег `$down` - скорость загрузки, *KB/s*
* тег `$up` - скорость отдачи, *KB/s*
@ -92,7 +94,11 @@ PyTextMonitor - минималистичный плазмоид, написан
Список точек монтирования, которые будут наблюдаться в поле hdd (содержимое комбо бокса берется из `mount`). Виджет редактируем, клавиша delete удалит текущую строку.
**HDD**
**HDD (скорость)**
Список HDD, которые будут наблюдаться в поле hddspeed (содержимое комбо бокса берется из DataEngine). Виджет редактируем, клавиша delete удалит текущую строку.
**HDD (температура)**
Список HDD, которые будут наблюдаться в поле hddtemp (содержимое комбо бокса берется из `find`). Виджет редактируем, клавиша delete удалит текущую строку.