diff --git a/sources/ptm/contents/code/configdef.py b/sources/ptm/contents/code/configdef.py index 8a63379..c820b5f 100644 --- a/sources/ptm/contents/code/configdef.py +++ b/sources/ptm/contents/code/configdef.py @@ -98,6 +98,7 @@ class ConfigDefinition: for i in range(self.configpage['dataengine'].ui.listWidget_customCommand.count()): item.append(self.configpage['dataengine'].ui.listWidget_customCommand.item(i).text()) deConfigFile.write("CUSTOM=" + str(item.join(QString('@@'))) + "\n") + deConfigFile.write("DESKTOPCMD=" + str(self.configpage['dataengine'].ui.lineEdit_desktopCmd.text()) + "\n") deConfigFile.write("GPUDEV=" + str(self.configpage['dataengine'].ui.comboBox_gpudev.currentText()) + "\n") deConfigFile.write("HDDDEV=" + str(self.configpage['dataengine'].ui.comboBox_hdddev.currentText()) + "\n") deConfigFile.write("HDDTEMPCMD=" + str(self.configpage['dataengine'].ui.lineEdit_hddtempCmd.text()) + "\n") @@ -124,7 +125,7 @@ class ConfigDefinition: # disconnecting from source and clear layout self.parent.disconnectFromSource() - labelOrder = "---------------" + labelOrder = "----------------" for label in self.defaults['order'].keys(): if (self.configpage['widget'].checkboxes[self.defaults['order'][label]].checkState() > 0): pos = self.configpage['widget'].sliders[self.defaults['order'][label]].value() - 1 @@ -221,9 +222,9 @@ class ConfigDefinition: self.configpage['tooltip'].ui.kcolorcombo_down.setColor(QColor(str(settings.get('down_color', '#00ffff')))) self.configpage['tooltip'].ui.kcolorcombo_up.setColor(QColor(str(settings.get('up_color', '#ff00ff')))) - deSettings = {'CUSTOM':'wget -qO- http://ifconfig.me/ip', 'GPUDEV':'auto', 'HDDDEV':'all', - 'HDDTEMPCMD':'sudo hddtemp', 'MPDADDRESS':'localhost', 'MPDPORT':'6600', 'PKGCMD':'pacman -Qu', - 'PKGNULL':'0', 'PLAYER':'amarok'} + deSettings = {'CUSTOM':'wget -qO- http://ifconfig.me/ip', 'DESKTOPCMD':'qdbus org.kde.kwin /KWin currentDesktop', + 'GPUDEV':'auto', 'HDDDEV':'all', 'HDDTEMPCMD':'sudo hddtemp', 'MPDADDRESS':'localhost', + 'MPDPORT':'6600', 'PKGCMD':'pacman -Qu', 'PKGNULL':'0', 'PLAYER':'amarok'} dataengineConfig = unicode(KGlobal.dirs().localkdedir()) + "/share/config/extsysmon.conf" try: with open(dataengineConfig, 'r') as deConfigFile: @@ -235,6 +236,7 @@ class ConfigDefinition: for item in deSettings['CUSTOM'].split('@@'): self.configpage['dataengine'].ui.listWidget_customCommand.addItem(item) index = self.configpage['dataengine'].ui.comboBox_gpudev.findText(deSettings['GPUDEV']) + self.configpage['dataengine'].ui.lineEdit_desktopCmd.setText(deSettings['DESKTOPCMD']) self.configpage['dataengine'].ui.comboBox_gpudev.setCurrentIndex(index) self.configpage['dataengine'].ui.comboBox_hdddev.addItem("all") self.configpage['dataengine'].ui.comboBox_hdddev.addItem("disable") diff --git a/sources/ptm/contents/code/dataengine.py b/sources/ptm/contents/code/dataengine.py index 1acd04f..fb722b7 100644 --- a/sources/ptm/contents/code/dataengine.py +++ b/sources/ptm/contents/code/dataengine.py @@ -59,6 +59,8 @@ 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['desktop'] > 0): + dataEngines['ext'].connectSource("desktop", self.parent, interval) if (bools['disk'] > 0): for item in names['disk']: dataEngines['system'].connectSource(item + "/Rate/rblk", self.parent, interval) @@ -138,6 +140,11 @@ class DataEngine: updatedData['value'] = {} for singleData in data.keys(): updatedData['value'][str(singleData.toLower())] = str(data[singleData].toUtf8()).decode("utf-8") + elif (sourceName == "desktop"): + updatedData['name'] = "desktop" + updatedData['value'] = {} + updatedData['value']['current'] = data[QString(u'currentNumber')] + updatedData['value']['names'] = [str(desktop.toUtf8()).decode("utf-8") for desktop in data[QString(u'list')].split(';;')] elif ((sourceName[:4] == "disk") and (sourceName[-4:] == "rblk")): updatedData['name'] = "disk-r" updatedData['type'] = '/'.join(str(sourceName).split('/')[0:2]) @@ -311,6 +318,8 @@ class DataEngine: dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/clock", self.parent) elif (name == "custom"): dataEngines['ext'].disconnectSource("custom", self.parent) + elif (name == "desktop"): + dataEngines['ext'].disconnectSource("desktop", self.parent) elif (name == "disk"): for item in keys['disk']: dataEngines['system'].disconnectSource(item + "/Rate/rblk", self.parent) diff --git a/sources/ptm/contents/code/main.py b/sources/ptm/contents/code/main.py index 799c399..da5d000 100644 --- a/sources/ptm/contents/code/main.py +++ b/sources/ptm/contents/code/main.py @@ -217,32 +217,34 @@ class pyTextWidget(plasmascript.Applet): # defaults self.ptm['defaults'] = {} self.ptm['defaults']['confBool'] = {'bat':'batBool', 'cpu':'cpuBool', - 'cpuclock':'cpuclockBool', 'custom':'customBool', 'disk':'diskBool', - 'gpu':'gpuBool', 'gputemp':'gputempBool', 'hdd':'hddBool', + 'cpuclock':'cpuclockBool', 'custom':'customBool', 'desktop':'desktopBool', + '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', 'disk':'diskFormat', - 'gpu':'gpuFormat', 'gputemp':'gputempFormat', 'hdd':'hddFormat', + 'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'desktop':'desktopFormat', + '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, - '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} + 'desktop':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]', 'disk':'[disk: $hddr0/$hddw0 KB/s]', - 'gpu':'[gpu: $gpu%]', 'gputemp':'[gpu temp: $gputemp°C]', 'hdd':'[hdd: $hdd0%]', + 'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'desktop':'[$number/$total: $name]', + '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', 'i':'disk'} + 'c':'hddtemp', 'd':'player', 'e':'time', 'f':'custom', 'g':'ps', 'h':'pkg', 'i':'disk', + 'j':'desktop'} # disk devices for r/w speed self.ptm['defaults']['disk'] = [] # labels @@ -269,6 +271,7 @@ 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']['desktop'] = {'names':[], 'current':1} self.ptm['values']['disk-r'] = {} self.ptm['values']['disk-w'] = {} self.ptm['values']['hdd'] = {} @@ -316,6 +319,8 @@ class pyTextWidget(plasmascript.Applet): self.cpuText() if (self.ptm['vars']['bools']['cpuclock'] > 0): self.cpuclockText() + if (self.ptm['vars']['bools']['desktop'] > 0): + self.desktopText() if (self.ptm['vars']['bools']['disk'] > 0): self.diskText() if (self.ptm['vars']['bools']['hdd'] > 0): @@ -454,6 +459,26 @@ class pyTextWidget(plasmascript.Applet): self.setText("cpuclock", text) + def desktopText(self): + """function to update desktop text""" + if self.debug: qDebug("[PTM] [main.py] [desktopText]") + line = self.ptm['vars']['formats']['desktop'] + if (line.split('$name')[0] != line): + line = line.split('$name')[0] + \ + self.ptm['values']['desktop']['names'][self.ptm['values']['desktop']['current']-1] + \ + line.split('$name')[1] + if (line.split('$number')[0] != line): + line = line.split('$number')[0] + \ + str(self.ptm['values']['desktop']['current']) + \ + line.split('$number')[1] + if (line.split('$total')[0] != line): + line = line.split('$total')[0] + \ + str(len(self.ptm['values']['desktop']['names'])) + \ + line.split('$total')[1] + text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1] + self.setText("desktop", text) + + def diskText(self): """function to update hdd speed text""" if self.debug: qDebug("[PTM] [main.py] [diskText]") diff --git a/sources/ptm/contents/code/ptmnotify.py b/sources/ptm/contents/code/ptmnotify.py index 2d81fcf..3359a5c 100644 --- a/sources/ptm/contents/code/ptmnotify.py +++ b/sources/ptm/contents/code/ptmnotify.py @@ -218,6 +218,8 @@ class PTMNotify: return self.createText("processor") elif (name == "custom"): return self.createText("system") + elif (name == "desktop"): + return self.createText("system") elif (name == "disk"): return self.createText("disk") elif (name == "gpu"): diff --git a/sources/ptm/contents/code/widget.py b/sources/ptm/contents/code/widget.py index d5c3bf5..d25786c 100644 --- a/sources/ptm/contents/code/widget.py +++ b/sources/ptm/contents/code/widget.py @@ -40,31 +40,34 @@ class WidgetWindow(QWidget): self.parent = parent self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu, 'cpuclock':self.ui.checkBox_cpuclock, 'custom':self.ui.checkBox_custom, - '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} + 'desktop':self.ui.checkBox_desktop, '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, - '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} + 'desktop':self.ui.lineEdit_desktop, '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, - '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} + 'desktop':self.ui.slider_desktop, '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} for item in self.sliders.values(): QObject.connect(item, SIGNAL("valueChanged(int)"), self.setSlider) diff --git a/sources/ptm/contents/ui/deconfig.ui b/sources/ptm/contents/ui/deconfig.ui index e8ab70d..9eb18ad 100644 --- a/sources/ptm/contents/ui/deconfig.ui +++ b/sources/ptm/contents/ui/deconfig.ui @@ -99,7 +99,7 @@ del - remove item - + @@ -152,7 +152,7 @@ del - remove item - + @@ -185,7 +185,7 @@ del - remove item - + @@ -209,7 +209,7 @@ del - remove item - + @@ -233,7 +233,7 @@ del - remove item - + @@ -288,7 +288,7 @@ del - remove item - + @@ -403,7 +403,7 @@ del - remove item - + @@ -456,7 +456,7 @@ del - remove item - + Qt::Vertical @@ -469,12 +469,53 @@ del - remove item + + + + + + + 200 + 0 + + + + Desktop check cmd + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + scrollArea_dattaengine + lineEdit_customCommand + pushButton_customCommand + listWidget_customCommand + lineEdit_desktopCmd + comboBox_gpudev + comboBox_hdddev + lineEdit_hddtempCmd + lineEdit_mpdaddress + spinBox_mpdport + comboBox_pkgCommand + spinBox_pkgCommandNum + pushButton_pkgCommand + listWidget_pkgCommand + comboBox_playerSelect + diff --git a/sources/ptm/contents/ui/widget.ui b/sources/ptm/contents/ui/widget.ui index e10bdc4..4e01806 100644 --- a/sources/ptm/contents/ui/widget.ui +++ b/sources/ptm/contents/ui/widget.ui @@ -54,9 +54,9 @@ 0 - -103 + -139 666 - 660 + 696 @@ -104,7 +104,7 @@ $custom - custom time format 1 - 18 + 19 1 @@ -160,7 +160,7 @@ $custom - custom format 1 - 18 + 19 1 @@ -226,7 +226,7 @@ $cpuN - load CPU for core N, % 1 - 18 + 19 1 @@ -292,7 +292,7 @@ $cpuclN - CPU clock for core N, MHz 1 - 18 + 19 1 @@ -350,7 +350,7 @@ $cpuclN - CPU clock for core N, MHz 1 - 18 + 19 1 @@ -408,7 +408,7 @@ $cpuclN - CPU clock for core N, MHz 1 - 18 + 19 1 @@ -466,7 +466,7 @@ $cpuclN - CPU clock for core N, MHz 1 - 18 + 19 1 @@ -531,7 +531,7 @@ $memtotgb - total RAM, GB 1 - 18 + 19 1 @@ -596,7 +596,7 @@ $swaptotgb - total swap, GB 1 - 18 + 19 1 @@ -658,7 +658,7 @@ $hddtotgbN - total size of mount point N (from 0), GB. Example: $hddtotgb01 - 18 + 19 1 @@ -717,7 +717,7 @@ $hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0 1 - 18 + 19 1 @@ -775,7 +775,7 @@ $hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0 1 - 18 + 19 1 @@ -838,7 +838,7 @@ $netdev - current network device 1 - 18 + 19 1 @@ -897,7 +897,7 @@ $ac - AC status 1 - 18 + 19 1 @@ -959,7 +959,7 @@ $title - song title 1 - 18 + 19 1 @@ -1019,7 +1019,7 @@ $ps - list of running processes comma separated 1 - 18 + 19 1 @@ -1077,7 +1077,7 @@ $ps - list of running processes comma separated 1 - 18 + 19 1 @@ -1135,7 +1135,7 @@ $ps - list of running processes comma separated 1 - 18 + 19 1 @@ -1153,6 +1153,66 @@ $ps - list of running processes comma separated + + + + + + + 200 + 0 + + + + Current desktop + + + true + + + + + + + $name - desktop name +$number - desktop number +$total - total number of desktops + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 16777215 + + + + 1 + + + 19 + + + 1 + + + 19 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + + +