Compare commits

...

29 Commits

Author SHA1 Message Date
831b98f836 release 1.7.3 2014-04-05 19:21:22 +04:00
2295e80b67 commit before merging 2014-04-05 19:17:56 +04:00
f21fea1393 fix bug with none type value 2014-04-05 18:53:22 +04:00
2675beb106 fixed bugs 2014-04-05 18:44:05 +04:00
329457955d edited notifications 2014-04-05 18:11:51 +04:00
614e15d336 configuration window refactoring
type "player_name" is str now
2014-04-05 17:15:21 +04:00
2e93325601 fixed types of variables 2014-04-05 16:30:09 +04:00
6f6af548ef edited main.py 2014-04-05 15:56:03 +04:00
5dc3d4e212 Merge branch 'master' into refactoring
(fr translation)
2014-04-05 13:16:51 +04:00
d8ae9a4c2a Added french .po 2014-04-05 02:34:29 +02:00
ce74cdb2d5 intermediate commit 2014-04-05 02:17:59 +04:00
0fdb7317cc refactoring dataengine 2014-04-04 13:23:21 +04:00
c1d55962a7 start 2014-04-04 05:09:09 +04:00
7353fdfe0f created 'refactoring' branch 2014-04-03 18:48:17 +04:00
032953eac2 edited readme 2014-04-03 14:29:20 +04:00
4766ef5675 added readme directory 2014-04-03 14:28:31 +04:00
1b6c8faf49 edited readme 2014-04-03 13:27:09 +04:00
fc104b4549 change PKGBUILD 2014-04-03 13:19:45 +04:00
975b575db5 edited tooltip in configuration window 2014-04-03 13:17:08 +04:00
4547815549 added russian changelog 2014-04-03 12:58:07 +04:00
73e921a8f5 release 1.7.2
edited readme, changelog
2014-04-03 12:05:07 +04:00
7ee4a5dc9d added tooltip screenshot 2014-04-03 12:02:08 +04:00
89efe6c846 edited screenshots 2014-04-03 11:58:49 +04:00
4218a4da08 added scalling to tooltip 2014-04-03 11:46:51 +04:00
0db909d914 Prerelease 1.7.2 2014-04-03 02:32:56 +04:00
d7cc354432 edited changelog. Release 1.7.1 2014-04-02 23:50:09 +04:00
aab456924f update archives 2014-04-02 23:49:22 +04:00
20c2a4eb6b release 1.7.1
* fix bug with zero values in tooltip
- removed error label
2014-04-02 23:48:44 +04:00
d63b33903a fix configuration window size 2014-04-02 23:30:55 +04:00
36 changed files with 3163 additions and 1637 deletions

View File

@ -1,3 +1,26 @@
Ver.1.7.3:
+ added tags $memgb, $swapgb
+ added readme directory
+ added french translation (@Mermouy)
- fix tooltip for custom uptime format
- fix #12
* more refactoring to the god of refactoring
* network device update interval now is 30*interval
* $swap, $swapmb and $swapgb tags now work simultaneously ($mem* tags too)
* player_name now has str type
Ver.1.7.2:
+ added tags $dd, $d, $hh, $h, $mm, $m to custom uptime format
+ added scalling to tooltips
+ added dataengine configuration from ptm
+ added custom command to dataengine
- removed custom command from ptm
- removed tags $ds, $hs, $ms
Ver.1.7.1:
- removed error label
* fix bug with zero values in tooltip
Ver.1.7.0: Ver.1.7.0:
+ added support of several tags in temperature label + added support of several tags in temperature label
+ added tags $cpuN, $cpuclN, $hddN, $tempN, $hddtempN, $up, $down + added tags $cpuN, $cpuclN, $hddN, $tempN, $hddtempN, $up, $down
@ -55,7 +78,7 @@ Ver.1.3.2b:
Ver.1.3.2: Ver.1.3.2:
+ added GPU, GPU temperature, HDD and HDD temperature labels + added GPU, GPU temperature, HDD and HDD temperature labels
+ added $ccpu and $ccpucl tags + added $ccpu and $ccpucl tags
* bug fixes - bug fixes
* optimization and refactoring * optimization and refactoring
Ver.1.2.2: Ver.1.2.2:
@ -86,9 +109,9 @@ Ver.1.1.2:
Ver.1.1.1: Ver.1.1.1:
+ added $swapmb, $memmb, $netdev, @@netdev=...@@ tags + added $swapmb, $memmb, $netdev, @@netdev=...@@ tags
- some bug fixes
* widget consists of several labels * widget consists of several labels
* edited configuration interface * edited configuration interface
- some bug fixes
Ver.1.0: Ver.1.0:
First release First release

117
CHANGELOG-RU Normal file
View File

@ -0,0 +1,117 @@
Вер.1.7.3:
+ добавлены тэги $memgb, $swapgb
+ добавлена директория readme
+ добавлен французский перевод (@Mermouy)
- фикс подсказки для кастомного формата аптайма
- фикс #12
* больше рефакторинга богу рефакторинга
* интервал обновления сетевого интерфейса теперь 30*interval
* тэги $swap, $swapmb и $swapgb теперь работают одновременно (тэги $mem* тоже)
* player_name теперь имеет тип str
Вер.1.7.2:
+ добавлены тэги $dd, $d, $hh, $h, $mm, $m в кастомный формат аптайма
+ добавлено масштабирование в тултипы
+ добавлена конфигурация DE из виджета
+ добавлена кастомная команда в DE
- удалена кастомная команда из виджета
- удалены тэги $ds, $hs, $ms
Вер.1.7.1:
- удалено поле с ошибкой
* пофикшен баг с нулевым значением в тултипе
Вер.1.7.0:
+ добавлена поддержка нескольких тэгов в поле температуры
+ добавлены тэги $cpuN, $cpuclN, $hddN, $tempN, $hddtempN, $up, $down
+ добавлено поле с кастомной командой
+ добавлены тултипы для полей CPU, частоты CPU, памяти, swap и сеть
- удалены тэги @@...@@, $temp, $ccpu, $ccpucl, $net
* изменения в настройках
* виджет не требует больше net-tools
* рефакторинг
Вер.1.6.1:
+ добавлена поддержка нескольких девайсов в поле hddtemp
- фикс #6
Вер.1.6.0:
+ добавлен тэг $custom в поля time и uptime (#8)
+ русский перевод
- фикс #6, #10
* лицензия изменена на GPLv3
* изменения в сборке проекта
Вер.1.5.3:
+ добавлены тэги $album, $progress и $time tags в поле плеера (#7)
- фикс бага с нулевым свопом
Вер.1.5.2:
+ добавлены тэги $isotime, $shorttime и $longtime в поле time
Вер.1.5.1:
+ добавлено поле time
Вер.1.5.0:
+ добавлено поле player
Вер.1.4.0:
+ добавлены уведомления
Вер.1.3.6:
- фикс #1, #2
Вер.1.3.5:
- фикс бага с определением сетевого устройства
Вер.1.3.4:
+ добавлено событие по двойному щелчку
+ добавлен автовыбор сетевого устройства
- фикс еще одного падения Плазмы
Вер.1.3.3:
* редактирование чтения температурного устройства
Вер.1.3.2b:
- фикс падения Плазмы
Вер.1.3.2:
+ добавлены поля GPU, GPU temp, HDD и HDD temp
+ добавлены тэги $ccpu и $ccpucl
- фикс некоторых багов
* оптимизация и рефакторинг
Вер.1.2.2:
+ добавлен тултип в строки
Вер.1.2.1:
* если батарея не существует, возвращает off
* если AC не существует, возвращает '(?)'
Вер.1.2.0:
+ добавлен тэг $ac в поле battery
+ добавлена настройка устройств батареи и AC
+ добавлена проверка ошибок
* тэг $bat теперь читается из /sys/*
Вер.1.1.4:
* изменения в парсинге acpi (поле battery)
Вер.1.1.3:
+ добавлена настройка ширины шрифта
- небольшие фиксы
* отредактирована настройка шрифта. Теперь настройки для шрифта работают нормально
Вер.1.1.2:
+ добавлено поле CPU clock
+ добавлена функция для обновления сетевого интерфейса (100*time_interval)
* изменено обновление слайдеров
Вер.1.1.1:
+ добавлены тэги $swapmb, $memmb, $netdev, @@netdev=...@@
- небольшие фиксы
* виджет теперь состоит из нескольких полей
* отредактирован конфигурационный интерфейс
Вер.1.0:
Первый релиз

View File

@ -1,35 +1,37 @@
# Author: Evgeniy "arcanis" Alexeev <esalexeev@gmail.com> # Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
# Maintainer: Evgeniy "arcanis" Alexeev <esalexeev@gmail.com>
pkgname=kdeplasma-applets-pytextmonitor pkgname=kdeplasma-applets-pytextmonitor
_pkgname=pytextmonitor _pkgname=pytextmonitor
pkgver=1.7.0 pkgver=1.7.3
pkgrel=1 pkgrel=1
pkgdesc="Minimalistic Plasmoid script written on Python2. It looks like widgets in awesome-wm" pkgdesc="Minimalistic Plasmoid script written on Python2. It looks like widgets in Awesome WM"
arch=('i686' 'x86_64') arch=('i686' 'x86_64')
url="http://arcanis.name/projects/pytextmonitor" url="http://arcanis.name/projects/pytextmonitor"
license=('GPLv3') license=('GPLv3')
depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors' 'sysstat') depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors')
optdepends=("hddtemp: for HDD temperature monitor" optdepends=("amarok: for music player monitor"
"catalyst: for GPU monitor" "catalyst: for GPU monitor"
"nvidia-utils: for GPU monitor" "hddtemp: for HDD temperature monitor"
"amarok: for music player monitor"
"mpd: for music player monitor" "mpd: for music player monitor"
"qmmp: for music player monitor") "net-tools for popup messages"
"nvidia-utils: for GPU monitor"
"qmmp: for music player monitor"
"sysstat: for popup messages")
makedepends=('automoc4' 'cmake') makedepends=('automoc4' 'cmake')
source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz) source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install install=${pkgname}.install
md5sums=('bedeb6f30641b718c5020b1c16673ba2') md5sums=('de9de52ffae7d94bd123cea801a411da')
backup=('usr/share/config/extsysmon.conf') backup=('usr/share/config/extsysmon.conf')
build () { prepare() {
if [[ -d ${srcdir}/build ]]; then [[ -d ${srcdir}/build ]] && rm -rf "${srcdir}/build"
rm -rf "${srcdir}/build"
fi
mkdir "${srcdir}/build" mkdir "${srcdir}/build"
}
build () {
cd "${srcdir}/build" cd "${srcdir}/build"
cmake -DCMAKE_BUILD_TYPE=Release \ cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` \ -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) \
"../${_pkgname}" "../${_pkgname}"
make make
} }

143
README.md
View File

@ -10,68 +10,73 @@ PyTextMonitor is a minimalistic Plasmoid script written on Python2. It looks lik
Configuration Configuration
------------- -------------
For edited output you must open Settings window and setup output format in lines: For edited output you must open Settings window and setup output format in lines:
* label `$time` - time in default format. For example, `fri Nov 6 04:48:01 2013` * tag `$time` - time in default format. For example, *fri Nov 6 04:48:01 2013*
* label `$isotime` - time in iso format * tag `$isotime` - time in iso format
* label `$shorttime` - time in short locale format * tag `$shorttime` - time in short locale format
* label `$longtime` - time in long locale format * tag `$longtime` - time in long locale format
* label `$custom` - custom time format * tag `$custom` - custom time format
* label `$uptime` - uptime, <i>---d--h--m</i> * tag `$uptime` - uptime, *---d--h--m*
* label `$custom` - custom uptime format * tag `$custom` - custom uptime format
* label `$cpu` - total load cpu, <i>%</i> * tag `$cpu` - total load cpu, *%*
* label `$cpuN` - load CPU for core N, <i>%</i>. N should be in range 0 to 8 * tag `$cpuN` - load CPU for core N, *%*. N should be in range 0 to 9
* label `$cpucl` - average cpu clock, <i>MHz</i> * tag `$cpucl` - average cpu clock, *MHz*
* label `$cpuclN` - cpu clock for core N, <i>MHz</i>. N should be in range 0 to 8 * tag `$cpuclN` - cpu clock for core N, *MHz*. N should be in range 0 to 9
* label `$tempN` - temperature for device N. For example, `$temp0` * tag `$tempN` - temperature for device N. For example, `$temp0`
* label `$gpu` - GPU usage, <i>%</i>. `aticonfig` or `nvidia-smi` must be installed * tag `$gpu` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* label `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed * tag `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* label `$mem` - usage memory, <i>%</i> * tag `$mem` - usage memory, *%*
* label `$memmb` - usage memory, <i>MB</i> * tag `$memmb` - usage memory, *MB*
* label `$swap` - swap, <i>%</i> * tag `$memgb` - usage memory, *GB*
* label `$swapmb` - swap, <i>MB</i> * tag `$swap` - swap, *%*
* label `$hddN` - usage for mount point N, <i>%</i>. For example, `$hdd0` * tag `$swapmb` - swap, *MB*
* label `$hddtempN` - temperature for HDD N. For example, `$hddtemp0` * tag `$swapgb` - swap, *GB*
* label `$down` - download speed, <i>KB/s</i> * tag `$hddN` - usage for mount point N, *%*. For example, `$hdd0`
* label `$up` - upload speed, <i>KB/s</i> * tag `$hddtempN` - temperature for HDD N. For example, `$hddtemp0`
* label `$netdev` - current network device * tag `$down` - download speed, *KB/s*
* label `$bat` - battery charge, <i>%</i> * tag `$up` - upload speed, *KB/s*
* label `$ac` - status AC device. Return <i>(*)</i> if AC device is online or <i>( )</i> if offline * tag `$netdev` - current network device
* label `$album` - current song album. One of supported music players must be installed * tag `$bat` - battery charge, *%*
* label `$artist` - current song artist. One of supported music players must be installed * tag `$ac` - status AC device. Return (\*) if AC device is online or *( )* if offline
* label `$progress` - current song progress. One of supported music players must be installed (mpd does not support yet) * tag `$album` - current song album. One of supported music players must be installed
* label `$time` - current song duration. One of supported music players must be installed * tag `$artist` - current song artist. One of supported music players must be installed
* label `$title` - current song title. One of supported music players must be installed * tag `$progress` - current song progress. One of supported music players must be installed
* label `$custom` - returns output for custom command * 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 `$custom` - returns output for custom command
Label order will changed if you change slider position. HTML tags in label work normally. Label order will changed if you change slider position. HTML tags in label work normally.
**NOTE** you don't may set to show $cpu in swap label for example. <b>$cpu will work only in cpu label</b>. **NOTE** you don't may set to show `$cpu` tag in swap label for example. **`$cpu` will work only in cpu label**.
Advanced settings Advanced settings
----------------- -----------------
**Custom time** **Custom time**
* label `$dddd` - weekday in long format * tag `$dddd` - weekday in long format
* label `$ddd` - weekday in short format * tag `$ddd` - weekday in short format
* label `$dd` - day * tag `$dd` - day
* label `$d` - day without zero * tag `$d` - day without zero
* label `$MMMM` - month in long format * tag `$MMMM` - month in long format
* label `$MMM` - month in short format * tag `$MMM` - month in short format
* label `$MM` - month * tag `$MM` - month
* label `$M` - month without zero * tag `$M` - month without zero
* label `$yyyy` - year * tag `$yyyy` - year
* label `$yy` - year in short format * tag `$yy` - year in short format
* label `$hh` - hours * tag `$hh` - hours
* label `$h` - hours without zero * tag `$h` - hours without zero
* label `$mm` - minutes * tag `$mm` - minutes
* label `$m` - minutes without zero * tag `$m` - minutes without zero
* label `$ss` - seconds * tag `$ss` - seconds
* label `$s` - seconds without zero * tag `$s` - seconds without zero
**Custom uptime** **Custom uptime**
* label `$ds` - uptime days * tag `$dd` - uptime days
* label `$hs` - uptime hours * tag `$d` - uptime days without zero
* label `$ms` - uptime minutes * tag `$hh` - uptime hours
* tag `$h` - uptime hours without zero
* tag `$mm` - uptime minutes
* tag `$m` - uptime minutes without zero
**Temperature devices** **Temperature devices**
@ -105,16 +110,34 @@ File with AC information. File (`/sys/class/power_supply/AC/online` by default)
Select one of supported music playes for player label. 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.
DataEngine settings
-------------------
**GPU device**
Select one of supported GPU devices. `auto` will enable auto selection. Default is `auto`.
**HDD**
Select one of HDDs for HDD temperature monitor. `all` will enable monitor for all devices. Default is `all`.
**MPD address**
Address of MPD server. Default is `localhost`.
**MPD port**
Port of MPD server. Default is `6600`.
**Custom command** **Custom command**
*NOTE* This can cause the computer freeze. *NOTE* This can cause the computer freeze.
A command, which will be run for custom label. A command, which will be run for custom 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.
DataEngine configuration DataEngine configuration
------------------------ ------------------------
You may edit DataEngine configuration. It is `/usr/share/config/extsysmon.conf` or `$HOME/share/config/extsysmon.conf` depending on the type of installation. Uncomment needed line and edit it. You may edit DataEngine configuration. It is `/usr/share/config/extsysmon.conf` or `$HOME/share/config/extsysmon.conf` depending on the type of installation. Uncomment needed line and edit it.
@ -126,20 +149,20 @@ Dependencies
------------ ------------
* kdebase-workspace * kdebase-workspace
* kdebindings-python2 * kdebindings-python2
* lm_sensors (for definition temperature device) * lm_sensors (*for definition temperature device*)
* sysstat (for notification) * sysstat (*for notification*)
Optional dependencies Optional dependencies
--------------------- ---------------------
ext-sysmon (for GPU, GPU temp, HDD temp and player labels):
* proprietary video driver * proprietary video driver
* hddtemp * 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`)
* music player (amarok, mpd or qmmp) * music player (amarok, mpd or qmmp)
Make dependencies Make dependencies
----------------- -----------------
* automoc4 * automoc4
* cmake * cmake
* kdebase-runtime
Installation Installation
------------ ------------
@ -150,7 +173,7 @@ Installation
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../
make && make install make && make install
Also you may install it to "/": Also you may install it to `/`:
mkdir build && cd build mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../

View File

@ -1,5 +1,8 @@
#!/bin/bash #!/bin/bash
# update english readme
cp readme/en.md README.md
SRCDIR="sources" SRCDIR="sources"
VERSION=$(grep -m1 PROJECT_VERSION_MAJOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\ VERSION=$(grep -m1 PROJECT_VERSION_MAJOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\
$(grep -m1 PROJECT_VERSION_MINOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\ $(grep -m1 PROJECT_VERSION_MINOR sources/CMakeLists.txt | awk '{print $3}' | cut -c 1).\
@ -16,13 +19,13 @@ rm -rf "${ARCHIVE}"
# build widget # build widget
ARCHIVE="pytextmonitor" ARCHIVE="pytextmonitor"
FILES="AUTHORS CHANGELOG COPYING README.md" FILES="AUTHORS CHANGELOG CHANGELOG-RU COPYING readme"
IGNORELIST="build usr" IGNORELIST="build usr"
# create archive # create archive
[[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f "${ARCHIVE}-${VERSION}-src.tar.xz" [[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f "${ARCHIVE}-${VERSION}-src.tar.xz"
[[ -d ${ARCHIVE} ]] && rm -rf "${ARCHIVE}" [[ -d ${ARCHIVE} ]] && rm -rf "${ARCHIVE}"
cp -r "${SRCDIR}" "${ARCHIVE}" cp -r "${SRCDIR}" "${ARCHIVE}"
for FILE in ${FILES[*]}; do cp "$FILE" "${ARCHIVE}"; done for FILE in ${FILES[*]}; do cp -r "$FILE" "${ARCHIVE}"; done
for FILE in ${IGNORELIST[*]}; do rm -rf "${ARCHIVE}/${FILE}"; done for FILE in ${IGNORELIST[*]}; do rm -rf "${ARCHIVE}/${FILE}"; done
tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}" tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}"
rm -rf "${ARCHIVE}" rm -rf "${ARCHIVE}"

190
readme/en.md Normal file
View File

@ -0,0 +1,190 @@
pytextmonitor
=============
Information
-----------
PyTextMonitor is a minimalistic Plasmoid script written on Python2. It looks like widgets in awesome-wm.
**NOTE** LOOKING FOR TRANSLATORS!
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, *%*. N should be in range 0 to 9
* tag `$cpucl` - average cpu clock, *MHz*
* tag `$cpuclN` - cpu clock for core N, *MHz*. N should be in range 0 to 9
* 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 `$swap` - swap, *%*
* tag `$swapmb` - swap, *MB*
* tag `$swapgb` - swap, *GB*
* tag `$hddN` - usage for mount point N, *%*. For example, `$hdd0`
* 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 `$custom` - returns output for custom command
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**.
Advanced settings
-----------------
**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
**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
**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.
**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.
**HDD**
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.
**Network directory**
Path to directory, which contains network devices information. Default is `/sys/class/net`. Required for auto select network device.
**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.
**AC device**
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.
DataEngine settings
-------------------
**GPU device**
Select one of supported GPU devices. `auto` will enable auto selection. Default is `auto`.
**HDD**
Select one of HDDs for HDD temperature monitor. `all` will enable monitor for all devices. Default is `all`.
**MPD address**
Address of MPD server. Default is `localhost`.
**MPD port**
Port of MPD server. Default is `6600`.
**Custom command**
*NOTE* This can cause the computer freeze.
A command, which will be run for custom label.
DataEngine configuration
------------------------
You may edit DataEngine configuration. It is `/usr/share/config/extsysmon.conf` or `$HOME/share/config/extsysmon.conf` depending on the type of installation. Uncomment needed line and edit it.
Instruction
===========
Dependencies
------------
* kdebase-workspace
* kdebindings-python2
* lm_sensors (*for definition temperature device*)
* sysstat (*for notification*)
Optional dependencies
---------------------
* 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`)
* music player (amarok, mpd or qmmp)
Make dependencies
-----------------
* automoc4
* cmake
* kdebase-runtime
Installation
------------
* download sources
* install
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../
make && make install
Also you may install it to `/`:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../
make && sudo make install
Additional information
======================
Links
-----
* [Homepage](http://arcanis.name/projects/pytextmonitor/)
* 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

188
readme/ru.md Normal file
View File

@ -0,0 +1,188 @@
pytextmonitor
=============
Информация
----------
PyTextMonitor - минималистичный плазмоид, написанный на Python2. Он выглядит, как виджеты в Awesome WM.
Настройка
---------
Для редактирования внешнего виде, откройте окно настроек и установите требуемый формат в поля:
* тэг `$time` - время в стандартном формате. Например, *fri Nov 6 04:48:01 2013*
* тэг `$isotime` - время в ISO формате
* тэг `$shorttime` - время в коротком формате
* тэг `$longtime` - время в длинном формате
* тэг `$custom` - свой формат времени
* тэг `$uptime` - время работы, *---d--h--m*
* тэг `$custom` - свой формат аптайма
* тэг `$cpu` - общая загрузка CPU, *%*
* тэг `$cpuN` - загрузка CPU для ядра N, *%*. N должно быть в промежутке от 0 до 9
* тэг `$cpucl` - средняя частота CPU, *MHz*
* тэг `$cpuclN` - частота CPU для ядра N, *MHz*. N должно быть в промежутке от 0 до 9
* тэг `$tempN` - температура для устройства N. Например, `$temp0`
* тэг `$gpu` - использование GPU, *%*. `aticonfig` или `nvidia-smi` должны быть установлены
* тэг `$gputemp` - температура GPU. `aticonfig` или `nvidia-smi` должны быть установлены
* тэг `$mem` - использование RAM, *%*
* тэг `$memmb` - использование RAM, *MB*
* тэг `$memgb` - использование RAM, *GB*
* тэг `$swap` - swap, *%*
* тэг `$swapmb` - swap, *MB*
* тэг `$swapgb` - swap, *GB*
* тэг `$hddN` - использование точки монтирования N, *%*. Например, `$hdd0`
* тэг `$hddtempN` - температура HDD N. Например, `$hddtemp0`
* тэг `$down` - скорость загрузки, *KB/s*
* тэг `$up` - скорость отдачи, *KB/s*
* тэг `$netdev` - текущий сетевой интерфейс
* тэг `$bat` - заряд батареи, *%*
* тэг `$ac` - статус адаптора питания. Возвращает (\*), если AC подключен или *( )*, если нет
* тэг `$album` - альбом. Один из поддерживаемых плееров должен быть установлен
* тэг `$artist` - исполнитель. Один из поддерживаемых плееров должен быть установлен
* тэг `$progress` - прогресс. Один из поддерживаемых плееров должен быть установлен
* тэг `$time` - длительность. Один из поддерживаемых плееров должен быть установлен
* тэг `$title` - название. Один из поддерживаемых плееров должен быть установлен
* тэг `$custom` - возвращает результат своей команды
Порядок полей изменится, если вы измените позицию слайдеров. HTML тэги в полях работают корректно.
**ЗАМЕЧАНИЕ** вы не можете установить тэг `$cpu`, например, в поле swap. **`$cpu` будет работать только в поле CPU**.
Расширенные настройки
---------------------
**Свой формат времени**
* тэг `$dddd` - день недели в длинном формате
* тэг `$ddd` - день недели в коротком формате
* тэг `$dd` - день
* тэг `$d` - день без нуля
* тэг `$MMMM` - месяц в длинном формате
* тэг `$MMM` - месяц в коротком формате
* тэг `$MM` - месяц
* тэг `$M` - месяц без нуля
* тэг `$yyyy` - год
* тэг `$yy` - год в коротком формате
* тэг `$hh` - часы
* тэг `$h` - часы без нуля
* тэг `$mm` - минуты
* тэг `$m` - минуты без нуля
* тэг `$ss` - секунды
* тэг `$s` - секунды без нуля
**Свой формат аптайма**
* тэг `$dd` - дни аптайма
* тэг `$d` - дни аптайма без нуля
* тэг `$hh` - часы аптайма
* тэг `$h` - часы аптайма без нуля
* тэг `$mm` - минуты аптайма
* тэг `$m` - минуты аптайма без нуля
**Датчики температуры**
Список датчиков, которые будут наблюдаться в поле temo (содержимое комбо бокса берется из `sensors`). Виджет редактируем, клавиша delete удалит текущую строку.
**Точки монтирования**
Список точек монтирования, которые будут наблюдаться в поле hdd (содержимое комбо бокса берется из `mount`). Виджет редактируем, клавиша delete удалит текущую строку.
**HDD**
Список HDD, которые будут наблюдаться в поле hddtemp (содержимое комбо бокса берется из `find`). Виджет редактируем, клавиша delete удалит текущую строку.
**Директория с сетевыми интерфейсами**
Путь к директории, которая содержит информацию о сетевых интерфейсах. По умолчанию `/sys/class/net`. Требуется для определения сетевого устройства.
**Сетевое устройство**
Использовать указанный интерфейс, как активный. Содержимое комбо бокса берется из **директории с сетевыми интерфейсами**. Эта опция отключит авто определение интерфейса.
**Устройство батареи**
Файл с информацией о батарее. Данный файл (`/sys/class/power_supply/BAT0/capacity` по умолчанию) должен содержать только заряд батареи в процентах.
**Устройство AC**
Файл с информацией об адапторе питания. Данный файл (`/sys/class/power_supply/AC/online` по умолчанию) должен содержать `1`, если адаптор подключен.
**Музыкальные плеер**
Выберете один из поддерживаемых музыкальных плееров.
Настройки тултипа
-----------------
Начиная с версии 1.7.0 поля CPU, частота CPU, память, swap и сеть поддерживают графический тултип. Чтобы включить их, просто сделайте требуемые чекбоксы полностью чекнутыми. Число хранимых значений может быть выставленно в данной вкладке. Цвета графиков также настраиваются.
Настройки DataEngine
--------------------
**Устройство GPU**
Выберете одно из поддерживаемых устройств GPU. `auto` включит автоматическое определение. По умолчанию `auto`.
**HDD**
Выберете один из HDD для монитора его температуры. `all` включит монитор для всех доступных устройств. По умолчанию `all`.
**Адрес MPD**
Адрес MPD сервера. По умолчанию `localhost`.
**Порт MPD**
Порт MPD сервера. По умолчанию `6600`.
**Своя команда**
*ЗАМЕЧАНИЕ* Может вызвать зависание компьютера.
Команда, которая будет запущена для соответствующего поля.
Настройка DataEngine
--------------------
Вы можете отредактировать настройки DataEngine вручную. Откройте файл `/usr/share/config/extsysmon.conf` или `$HOME/.kde4/share/config/extsysmon.conf`, в зависимости от типа установки. Раскомментируйте требуемые строки и отредактируйте их.
Инструкция
==========
Зависимости
-----------
* kdebase-workspace
* kdebindings-python2
* lm_sensors (*для определения датчиков температуры*)
* sysstat (*для уведомлений*)
Опциональные зависимости
------------------------
* проприетарный видеодрайвер
* hddtemp (убедитесь, что может быть запущен с `sudo` без пароля. Просто добавьте следующую строку в `/etc/sudoers`: `$USERNAME ALL=NOPASSWD: /usr/bin/hddtemp`)
* музыкальный плеер (amarok, mpd или qmmp)
Зависимости сборки
------------------
* automoc4
* cmake
* kdebase-runtime
Установка
---------
* скачать исходный архив
* установить
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../
make && make install
Для установки в `/`:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../
make && sudo make install
Дополнительная информация
=========================
Ссылки
------
* [Домашняя страница](http://arcanis.name/projects/pytextmonitor/)
* Виджет на [kde-look](http://kde-look.org/content/show.php/Py+Text+Monitor?content=157124)
* DataEngine на [kde-look](http://kde-look.org/content/show.php/Extended+Systemmonitor+DataEngine?content=158773)
* Пакет для Archlinux в [AUR](https://aur.archlinux.org/packages/kdeplasma-applets-pytextmonitor/)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
screenshots/tooltips.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -8,7 +8,7 @@ cmake_policy (SET CMP0015 NEW)
project (pytextmonitor) project (pytextmonitor)
set (PROJECT_VERSION_MAJOR 1) set (PROJECT_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 7) set (PROJECT_VERSION_MINOR 7)
set (PROJECT_VERSION_PATCH 0) set (PROJECT_VERSION_PATCH 3)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
message (STATUS "Version: ${PROJECT_VERSION}") message (STATUS "Version: ${PROJECT_VERSION}")

View File

@ -11,3 +11,6 @@
# Set MPD settings # Set MPD settings
#MPDADDRESS=localhost #MPDADDRESS=localhost
#MPDPORT=6600 #MPDPORT=6600
# Custom command
#CUSTOM=wget -qO- http://ifconfig.me/ip

View File

@ -43,6 +43,7 @@ QStringList ExtendedSysMon::sources() const
source.append(QString("gputemp")); source.append(QString("gputemp"));
source.append(QString("hddtemp")); source.append(QString("hddtemp"));
source.append(QString("player")); source.append(QString("player"));
source.append(QString("custom"));
return source; return source;
} }
@ -73,6 +74,8 @@ bool ExtendedSysMon::readConfiguration()
mpdAddress = QString("localhost"); mpdAddress = QString("localhost");
mpdPort = QString("6600"); mpdPort = QString("6600");
customCommand = QString("wget -qO- http://ifconfig.me/ip");
QString fileStr; QString fileStr;
// FIXME: define configuration file // FIXME: define configuration file
QString confFileName = QString(getenv("HOME")) + QString("/.kde4/share/config/extsysmon.conf"); QString confFileName = QString(getenv("HOME")) + QString("/.kde4/share/config/extsysmon.conf");
@ -111,6 +114,8 @@ bool ExtendedSysMon::readConfiguration()
mpdAddress = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed(); mpdAddress = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed();
else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("MPDPORT")) else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("MPDPORT"))
mpdPort = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed(); mpdPort = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed();
else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("CUSTOM"))
customCommand = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed();
} }
} }
if (confFile.atEnd()) if (confFile.atEnd())
@ -350,6 +355,14 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
key = QString("mpd_title"); key = QString("mpd_title");
setData(source, key, value); setData(source, key, value);
} }
else if (source == QString("custom")) {
QProcess custom;
custom.start(QString("bash -c \"") + QString(customCommand) + QString("\""));
custom.waitForFinished(-1);
value = QTextCodec::codecForMib(106)->toUnicode(custom.readAllStandardOutput()).trimmed();
key = QString("custom");
setData(source, key, value);
}
return true; return true;
} }

View File

@ -35,9 +35,9 @@ protected:
// main configuration // main configuration
QStringList hddDev; QStringList hddDev;
QString gpuDev; QString gpuDev;
// configuration
QString mpdAddress; QString mpdAddress;
QString mpdPort; QString mpdPort;
QString customCommand;
}; };
#endif /* EXTSYSMON_H */ #endif /* EXTSYSMON_H */

View File

@ -27,8 +27,10 @@ class Config():
self.applet = applet self.applet = applet
self.config = self.applet.config() self.config = self.applet.config()
def get(self, key, default = ''): def get(self, key, default = ''):
return self.config.readEntry(key, default).toString() return self.config.readEntry(key, default).toString()
def set(self, key, value): def set(self, key, value):
self.config.writeEntry(key, value) self.config.writeEntry(key, value)

View File

@ -27,10 +27,11 @@ import config
class ConfigDefinition: class ConfigDefinition:
def __init__(self, parent, configpage): def __init__(self, parent, configpage, defaults):
"""class definition""" """class definition"""
self.parent = parent self.parent = parent
self.configpage = configpage self.configpage = configpage
self.defaults = defaults
def configAccepted(self): def configAccepted(self):
@ -38,160 +39,64 @@ class ConfigDefinition:
settings = config.Config(self.parent) settings = config.Config(self.parent)
# update local variables # update local variables
self.parent.interval = self.configpage.ui.spinBox_interval.value() settings.set('interval', self.configpage.ui.spinBox_interval.value())
settings.set('interval', self.parent.interval) settings.set('font_family', str(self.configpage.ui.fontComboBox.currentFont().family()))
self.parent.font_family = str(self.configpage.ui.fontComboBox.currentFont().family()) settings.set('font_size', self.configpage.ui.spinBox_fontSize.value())
settings.set('font_family', self.parent.font_family) settings.set('font_color', str(self.configpage.ui.kcolorcombo.color().name()))
self.parent.font_size = self.configpage.ui.spinBox_fontSize.value() settings.set('font_style', str(self.configpage.ui.comboBox_style.currentText()))
settings.set('font_size', self.parent.font_size) settings.set('font_weight', self.configpage.ui.spinBox_weight.value())
self.parent.font_color = str(self.configpage.ui.kcolorcombo.color().name())
settings.set('font_color', self.parent.font_color)
if (self.configpage.ui.comboBox_style.currentIndex() == 0):
self.parent.font_style = 'normal'
else:
self.parent.font_style = 'italic'
settings.set('font_style', self.parent.font_style)
self.parent.font_weight = self.configpage.ui.spinBox_weight.value()
settings.set('font_weight', self.parent.font_weight)
self.parent.custom_time = str(self.configpage.ui.lineEdit_timeFormat.text()) settings.set('custom_time', str(self.configpage.ui.lineEdit_timeFormat.text()))
settings.set('custom_time', self.parent.custom_time) settings.set('custom_uptime', str(self.configpage.ui.lineEdit_uptimeFormat.text()))
self.parent.custom_uptime = str(self.configpage.ui.lineEdit_uptimeFormat.text()) item = QStringList()
settings.set('custom_uptime', self.parent.custom_uptime) for i in range(self.configpage.ui.listWidget_tempDevice.count()):
# temp and mount below item.append(self.configpage.ui.listWidget_tempDevice.item(i).text())
self.parent.hddNames = [] settings.set('temp_device', str(item.join(QString('@@'))))
self.parent.hdd = {} item = QStringList()
for i in range(self.configpage.ui.listWidget_mount.count()):
item.append(self.configpage.ui.listWidget_mount.item(i).text())
settings.set('mount', str(item.join(QString('@@'))))
item = QStringList()
for i in range(self.configpage.ui.listWidget_hddDevice.count()): for i in range(self.configpage.ui.listWidget_hddDevice.count()):
item = self.configpage.ui.listWidget_hddDevice.item(i).text() item.append(self.configpage.ui.listWidget_hddDevice.item(i).text())
self.parent.hddNames.append(str(item)) settings.set('hdd', str(item.join(QString('@@'))))
self.parent.hdd[str(item)] =" 0.0" settings.set('netdir', str(self.configpage.ui.lineEdit_netdir.text()))
settings.set('hdd', '@@'.join(self.parent.hddNames)) settings.set('netdevBool', self.configpage.ui.checkBox_netdev.checkState())
self.parent.netdir = str(self.configpage.ui.lineEdit_netdir.text()) settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText()))
settings.set('netdir', self.parent.netdir) settings.set('battery_device', str(self.configpage.ui.lineEdit_batdev.text()))
self.parent.netdevBool = str(self.configpage.ui.checkBox_netdev.checkState()) settings.set('ac_device', str(self.configpage.ui.lineEdit_acdev.text()))
settings.set('netdevBool', self.parent.netdevBool) settings.set('player_name', str(self.configpage.ui.comboBox_playerSelect.currentText()))
self.parent.custom_netdev = str(self.configpage.ui.comboBox_netdev.currentText())
settings.set('custom_netdev', self.parent.custom_netdev)
self.parent.battery_device = str(self.configpage.ui.lineEdit_batdev.text())
settings.set('battery_device', self.parent.battery_device)
self.parent.ac_device = str(self.configpage.ui.lineEdit_acdev.text())
settings.set('ac_device', self.parent.ac_device)
self.parent.player_name = self.configpage.ui.comboBox_playerSelect.currentIndex()
settings.set('player_name', self.parent.player_name)
self.parent.custom_command = str(self.configpage.ui.lineEdit_customCommand.text())
settings.set('custom_command', self.parent.custom_command)
self.parent.tooltipNum = self.configpage.ui.spinBox_tooltipNum.value() settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value())
settings.set('tooltip_num', self.parent.tooltipNum)
for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']: for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']:
exec ('self.parent.tooltipColors["' + label + '"] = str(self.configpage.kcolorcombo_' + label + '.color().name())') settings.set(self.defaults['confColor'][label], str(self.configpage.kcolorcombos[label].color().name()))
exec ('settings.set("' + label + '_color", self.parent.tooltipColors["' + label + '"])')
dataengineConfig = unicode(KGlobal.dirs().localkdedir()) + "/share/config/extsysmon.conf"
try:
with open(dataengineConfig, 'w') as deConfigFile:
deConfigFile.write("GPUDEV=" + str(self.configpage.ui.comboBox_gpudev.currentText()) + "\n")
deConfigFile.write("HDDDEV=" + str(self.configpage.ui.comboBox_hdddev.currentText()) + "\n")
deConfigFile.write("MPDADDRESS=" + str(self.configpage.ui.lineEdit_mpdaddress.text()) + "\n")
deConfigFile.write("MPDPORT=" + str(self.configpage.ui.spinBox_mpdport.value()) + "\n")
deConfigFile.write("CUSTOM=" + str(self.configpage.ui.lineEdit_customCommand.text()) + "\n")
except:
pass
# disconnecting from source and clear layout # disconnecting from source and clear layout
if (self.parent.uptimeBool > 0): self.parent.disconnectFromSource()
self.parent.systemmonitor.disconnectSource("system/uptime", self.parent)
self.parent.label_uptime.setText('')
self.parent.layout.removeItem(self.parent.label_uptime)
if (self.parent.cpuBool > 0):
self.parent.systemmonitor.disconnectSource("cpu/system/TotalLoad", self.parent)
for core in self.parent.cpuCore.keys():
self.parent.systemmonitor.disconnectSource("cpu/cpu"+str(core)+"/TotalLoad", self.parent)
self.parent.label_cpu.setText('')
self.parent.layout.removeItem(self.parent.label_cpu)
if (self.parent.cpuclockBool > 0):
self.parent.systemmonitor.disconnectSource("cpu/system/AverageClock", self.parent)
for core in self.parent.cpuClockCore.keys():
self.parent.systemmonitor.disconnectSource("cpu/cpu"+str(core)+"/clock", self.parent)
self.parent.label_cpuclock.setText('')
self.parent.layout.removeItem(self.parent.label_cpuclock)
if (self.parent.tempBool > 0):
for item in self.parent.temp:
self.parent.systemmonitor.disconnectSource(item, self.parent)
self.parent.label_temp.setText('')
self.parent.layout.removeItem(self.parent.label_temp)
self.parent.tempNames = []
self.parent.temp = {}
for i in range(self.configpage.ui.listWidget_tempDevice.count()):
item = self.configpage.ui.listWidget_tempDevice.item(i).text()
self.parent.tempNames.append(str(item))
self.parent.temp[str(item)] =" 0.0"
settings.set('temp_device', '@@'.join(self.parent.tempNames))
if (self.parent.gpuBool > 0):
self.parent.extsysmon.disconnectSource("gpu", self.parent)
self.parent.label_gpu.setText('')
self.parent.layout.removeItem(self.parent.label_gpu)
if (self.parent.gputempBool > 0):
self.parent.extsysmon.disconnectSource("gputemp", self.parent)
self.parent.label_gputemp.setText('')
self.parent.layout.removeItem(self.parent.label_gputemp)
if (self.parent.memBool > 0):
self.parent.systemmonitor.disconnectSource("mem/physical/application", self.parent)
if (self.parent.memInMb == False):
self.parent.systemmonitor.disconnectSource("mem/physical/free", self.parent)
self.parent.systemmonitor.disconnectSource("mem/physical/used", self.parent)
self.parent.label_mem.setText('')
self.parent.layout.removeItem(self.parent.label_mem)
if (self.parent.swapBool > 0):
self.parent.systemmonitor.disconnectSource("mem/swap/used", self.parent)
if (self.parent.swapInMb == False):
self.parent.systemmonitor.disconnectSource("mem/swap/free", self.parent)
self.parent.label_swap.setText('')
self.parent.layout.removeItem(self.parent.label_swap)
if (self.parent.hddBool > 0):
for item in self.parent.mount:
self.parent.systemmonitor.disconnectSource("partitions" + item + "/filllevel", self.parent)
self.parent.label_hdd.setText('')
self.parent.layout.removeItem(self.parent.label_hdd)
self.parent.mountNames = []
self.parent.mount = {}
for i in range(self.configpage.ui.listWidget_mount.count()):
item = self.configpage.ui.listWidget_mount.item(i).text()
self.parent.mountNames.append(str(item))
self.parent.mount[str(item)] =" 0.0"
settings.set('mount', '@@'.join(self.parent.mountNames))
if (self.parent.hddtempBool > 0):
self.parent.extsysmon.disconnectSource("hddtemp", self.parent)
self.parent.label_hddtemp.setText('')
self.parent.layout.removeItem(self.parent.label_hddtemp)
if (self.parent.netBool > 0):
self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent)
self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent)
self.parent.label_net.setText('')
self.parent.layout.removeItem(self.parent.label_net)
if (self.parent.batBool > 0):
self.parent.label_bat.setText('')
self.parent.layout.removeItem(self.parent.label_bat)
if (self.parent.playerBool > 0):
self.parent.extsysmon.disconnectSource("player", self.parent)
self.parent.label_player.setText('')
self.parent.layout.removeItem(self.parent.label_player)
if (self.parent.timeBool > 0):
self.parent.timemon.disconnectSource("Local", self.parent)
self.parent.label_time.setText('')
self.parent.layout.removeItem(self.parent.label_time)
if (self.parent.customBool > 0):
self.parent.label_custom.setText('')
self.parent.layout.removeItem(self.parent.label_custom)
self.parent.label_order = "---------------" labelOrder = "---------------"
for label in self.defaults['order'].keys():
for label in self.parent.dict_orders.keys(): if (self.configpage.checkboxes[self.defaults['order'][label]].checkState() > 0):
exec ('self.parent.' + self.parent.dict_orders[label] + 'Bool = ' + str(self.configpage.checkboxes[self.parent.dict_orders[label]].checkState())) pos = self.configpage.sliders[self.defaults['order'][label]].value() - 1
if (self.configpage.checkboxes[self.parent.dict_orders[label]].checkState() > 0): labelOrder = labelOrder[:pos] + label + labelOrder[pos+1:]
pos = self.configpage.sliders[self.parent.dict_orders[label]].value() - 1 settings.set(self.defaults['confFormat'][self.defaults['order'][label]], str(self.configpage.lineedits[self.defaults['order'][label]].text()))
self.parent.label_order = self.parent.label_order[:pos] + label + self.parent.label_order[pos+1:] settings.set(self.defaults['confBool'][self.defaults['order'][label]], self.configpage.checkboxes[self.defaults['order'][label]].checkState())
if (self.parent.dict_orders[label] == 'net'): labelOrder = ''.join(labelOrder.split('-'))
exec ('self.parent.' + self.parent.dict_orders[label] + 'NonFormat = str(self.configpage.lineedits[self.parent.dict_orders[label]].text())') settings.set('label_order', labelOrder)
exec ('settings.set("' + self.parent.dict_orders[label] + 'NonFormat", self.parent.' + self.parent.dict_orders[label] + 'NonFormat)')
else:
exec ('self.parent.' + self.parent.dict_orders[label] + 'Format = str(self.configpage.lineedits[self.parent.dict_orders[label]].text())')
exec ('settings.set("' + self.parent.dict_orders[label] + 'Format", self.parent.' + self.parent.dict_orders[label] + 'Format)')
exec ('settings.set("' + self.parent.dict_orders[label] + 'Bool", self.parent.' + self.parent.dict_orders[label] + 'Bool)')
self.parent.label_order = ''.join(self.parent.label_order.split('-'))
settings.set('label_order', self.parent.label_order)
# reinitializate # reinitializate
self.parent.reinit.reinit(confAccept=True) self.parent.reInit()
def createConfigurationInterface(self, parent): def createConfigurationInterface(self, parent):
@ -252,8 +157,8 @@ class ConfigDefinition:
self.configpage.ui.comboBox_netdev.setCurrentIndex(index) self.configpage.ui.comboBox_netdev.setCurrentIndex(index)
self.configpage.ui.lineEdit_batdev.setText(str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity'))) self.configpage.ui.lineEdit_batdev.setText(str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity')))
self.configpage.ui.lineEdit_acdev.setText(str(settings.get('ac_device', '/sys/class/power_supply/AC/online'))) self.configpage.ui.lineEdit_acdev.setText(str(settings.get('ac_device', '/sys/class/power_supply/AC/online')))
self.configpage.ui.comboBox_playerSelect.setCurrentIndex(settings.get('player_name', 0).toInt()[0]) index = self.configpage.ui.comboBox_playerSelect.findText(str(settings.get('player_name', "amarok")))
self.configpage.ui.lineEdit_customCommand.setText(str(settings.get('custom_command', 'wget -qO- http://ifconfig.me/ip'))) self.configpage.ui.comboBox_playerSelect.setCurrentIndex(index)
self.configpage.ui.spinBox_tooltipNum.setValue(settings.get('tooltip_num', 100).toInt()[0]) 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')))) self.configpage.ui.kcolorcombo_cpu.setColor(QColor(str(settings.get('cpu_color', '#ff0000'))))
@ -263,15 +168,41 @@ class ConfigDefinition:
self.configpage.ui.kcolorcombo_down.setColor(QColor(str(settings.get('down_color', '#00ffff')))) self.configpage.ui.kcolorcombo_down.setColor(QColor(str(settings.get('down_color', '#00ffff'))))
self.configpage.ui.kcolorcombo_up.setColor(QColor(str(settings.get('up_color', '#ff00ff')))) self.configpage.ui.kcolorcombo_up.setColor(QColor(str(settings.get('up_color', '#ff00ff'))))
for label in self.parent.dict_orders.keys(): deSettings = {'GPUDEV':'auto', 'HDDDEV':'all', 'MPDADDRESS':'localhost',
exec ('bool = self.parent.' + self.parent.dict_orders[label] + 'Bool') 'MPDPORT':'6600', 'CUSTOM':'wget -qO- http://ifconfig.me/ip'}
self.configpage.checkboxes[self.parent.dict_orders[label]].setCheckState(bool) dataengineConfig = unicode(KGlobal.dirs().localkdedir()) + "/share/config/extsysmon.conf"
try:
with open(dataengineConfig, 'r') as deConfigFile:
for line in deConfigFile:
if ((line[0] != '#') and (line.split('=')[0] != line)):
deSettings[line.split('=')[0]] = line.split('=')[1][:-1]
except:
pass
index = self.configpage.ui.comboBox_gpudev.findText(deSettings['GPUDEV'])
self.configpage.ui.comboBox_gpudev.setCurrentIndex(index)
self.configpage.ui.comboBox_hdddev.addItem("all")
commandOut = commands.getoutput("find /dev -name '[hs]d[a-z]'")
for item in commandOut.split("\n"):
try:
self.configpage.ui.comboBox_hdddev.addItem(item)
except:
pass
index = self.configpage.ui.comboBox_hdddev.findText(deSettings['HDDDEV'])
self.configpage.ui.comboBox_hdddev.setCurrentIndex(index)
self.configpage.ui.lineEdit_mpdaddress.setText(deSettings['MPDADDRESS'])
self.configpage.ui.spinBox_mpdport.setValue(int(deSettings['MPDPORT']))
self.configpage.ui.spinBox_mpdport.setValue(int(deSettings['MPDPORT']))
self.configpage.ui.lineEdit_customCommand.setText(deSettings['CUSTOM'])
labelOrder = str(settings.get('label_order', '1345'))
for label in self.defaults['order'].keys():
bool = settings.get(self.defaults['confBool'][self.defaults['order'][label]],
self.defaults['bool'][self.defaults['order'][label]]).toInt()[0]
self.configpage.checkboxes[self.defaults['order'][label]].setCheckState(bool)
if (bool > 0): if (bool > 0):
self.configpage.sliders[self.parent.dict_orders[label]].setValue(self.parent.label_order.find(label)+1) self.configpage.sliders[self.defaults['order'][label]].setValue(labelOrder.find(label) + 1)
if (self.parent.dict_orders[label] == 'net'): self.configpage.lineedits[self.defaults['order'][label]].setText(str(settings.get(self.defaults['confFormat'][self.defaults['order'][label]],
self.configpage.lineedits[self.parent.dict_orders[label]].setText(str(settings.get(self.parent.dict_orders[label] + 'NonFormat', self.parent.dict_defFormat[self.parent.dict_orders[label]]))) self.defaults['format'][self.defaults['order'][label]])))
else:
self.configpage.lineedits[self.parent.dict_orders[label]].setText(str(settings.get(self.parent.dict_orders[label] + 'Format', self.parent.dict_defFormat[self.parent.dict_orders[label]])))
# add config page # add config page
page = parent.addPage(self.configpage, i18n(self.parent.name())) page = parent.addPage(self.configpage, i18n(self.parent.name()))

View File

@ -21,7 +21,6 @@ from PyQt4.QtCore import *
from PyQt4.QtGui import * from PyQt4.QtGui import *
from PyKDE4.plasma import * from PyKDE4.plasma import *
from PyQt4 import uic from PyQt4 import uic
from PyKDE4 import plasmascript
@ -31,30 +30,34 @@ class ConfigWindow(QWidget):
QWidget.__init__(self) QWidget.__init__(self)
self.ui = uic.loadUi(parent.package().filePath('ui', 'configwindow.ui'), self) self.ui = uic.loadUi(parent.package().filePath('ui', 'configwindow.ui'), self)
self.parent = parent self.parent = parent
self.kcolorcombos = {'cpu':self.ui.kcolorcombo_cpu,
'cpuclock':self.ui.kcolorcombo_cpuclock, 'down':self.ui.kcolorcombo_down,
'mem':self.ui.kcolorcombo_mem, 'swap':self.ui.kcolorcombo_swap,
'up':self.ui.kcolorcombo_up}
self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu, self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu,
'cpuclock':self.ui.checkBox_cpuclock, 'gpu':self.ui.checkBox_gpu, 'cpuclock':self.ui.checkBox_cpuclock, 'custom':self.ui.checkBox_custom,
'gputemp':self.ui.checkBox_gpuTemp, 'hdd':self.ui.checkBox_hdd, 'gpu':self.ui.checkBox_gpu, 'gputemp':self.ui.checkBox_gpuTemp,
'hddtemp':self.ui.checkBox_hddTemp, 'mem':self.ui.checkBox_mem, 'hdd':self.ui.checkBox_hdd, 'hddtemp':self.ui.checkBox_hddTemp,
'net':self.ui.checkBox_net, 'swap':self.ui.checkBox_swap, 'mem':self.ui.checkBox_mem, 'net':self.ui.checkBox_net,
'temp':self.ui.checkBox_temp, 'uptime':self.ui.checkBox_uptime, 'swap':self.ui.checkBox_swap, 'temp':self.ui.checkBox_temp,
'player':self.ui.checkBox_player, 'time':self.ui.checkBox_time, 'uptime':self.ui.checkBox_uptime, 'player':self.ui.checkBox_player,
'custom':self.ui.checkBox_custom} 'time':self.ui.checkBox_time}
self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu, self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu,
'cpuclock':self.ui.lineEdit_cpuclock, 'gpu':self.ui.lineEdit_gpu, 'cpuclock':self.ui.lineEdit_cpuclock, 'custom':self.ui.lineEdit_custom,
'gputemp':self.ui.lineEdit_gpuTemp, 'hdd':self.ui.lineEdit_hdd, 'gpu':self.ui.lineEdit_gpu, 'gputemp':self.ui.lineEdit_gpuTemp,
'hddtemp':self.ui.lineEdit_hddTemp, 'mem':self.ui.lineEdit_mem, 'hdd':self.ui.lineEdit_hdd, 'hddtemp':self.ui.lineEdit_hddTemp,
'net':self.ui.lineEdit_net, 'swap':self.ui.lineEdit_swap, 'mem':self.ui.lineEdit_mem, 'net':self.ui.lineEdit_net,
'temp':self.ui.lineEdit_temp, 'uptime':self.ui.lineEdit_uptime, 'swap':self.ui.lineEdit_swap, 'temp':self.ui.lineEdit_temp,
'player':self.ui.lineEdit_player, 'time':self.ui.lineEdit_time, 'uptime':self.ui.lineEdit_uptime, 'player':self.ui.lineEdit_player,
'custom':self.ui.lineEdit_custom} 'time':self.ui.lineEdit_time}
self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu, self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu,
'cpuclock':self.ui.slider_cpuclock, 'gpu':self.ui.slider_gpu, 'cpuclock':self.ui.slider_cpuclock, 'custom':self.ui.slider_custom,
'gputemp':self.ui.slider_gpuTemp, 'hdd':self.ui.slider_hdd, 'gpu':self.ui.slider_gpu, 'gputemp':self.ui.slider_gpuTemp,
'hddtemp':self.ui.slider_hddTemp, 'mem':self.ui.slider_mem, 'hdd':self.ui.slider_hdd, 'hddtemp':self.ui.slider_hddTemp,
'net':self.ui.slider_net, 'swap':self.ui.slider_swap, 'mem':self.ui.slider_mem, 'net':self.ui.slider_net,
'temp':self.ui.slider_temp, 'uptime':self.ui.slider_uptime, 'swap':self.ui.slider_swap, 'temp':self.ui.slider_temp,
'player':self.ui.slider_player, 'time':self.ui.slider_time, 'uptime':self.ui.slider_uptime, 'player':self.ui.slider_player,
'custom':self.ui.slider_custom} 'time':self.ui.slider_time}
QObject.connect(self.ui.checkBox_netdev, SIGNAL("stateChanged(int)"), self.setNetdevEnabled) 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_hddDevice, SIGNAL("clicked()"), self.addHddDevice)

View File

@ -19,8 +19,6 @@
from PyQt4.QtCore import * from PyQt4.QtCore import *
from PyQt4.QtGui import * from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
import datetime import datetime
@ -36,251 +34,257 @@ class DataEngine:
self.parent = parent self.parent = parent
def connectToEngine(self): def connectToEngine(self, bools=None, dataEngines=None, interval=1000, names=None):
"""function to initializate engine""" """function to initializate engine"""
self.parent.systemmonitor = self.parent.dataEngine("systemmonitor") if (bools['cpu'] > 0):
self.parent.extsysmon = self.parent.dataEngine("ext-sysmon") dataEngines['system'].connectSource("cpu/system/TotalLoad", self.parent, interval)
for core in range(8):
dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/TotalLoad", self.parent, interval)
if (bools['cpuclock'] > 0):
dataEngines['system'].connectSource("cpu/system/AverageClock", self.parent, interval)
for core in range(8):
dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/clock", self.parent, interval)
if (bools['custom'] > 0):
dataEngines['ext'].connectSource("custom", self.parent, interval)
if (bools['gpu'] > 0):
dataEngines['ext'].connectSource("gpu", self.parent, interval)
if (bools['gputemp'] > 0):
dataEngines['ext'].connectSource("gputemp", self.parent, interval)
if (bools['hdd'] > 0):
for item in names['hdd']:
dataEngines['system'].connectSource("partitions" + item + "/filllevel", self.parent, interval)
if (bools['hddtemp'] > 0):
dataEngines['ext'].connectSource("hddtemp", self.parent, interval)
if (bools['mem'] > 0):
dataEngines['system'].connectSource("mem/physical/free", self.parent, interval)
dataEngines['system'].connectSource("mem/physical/used", self.parent, interval)
dataEngines['system'].connectSource("mem/physical/application", self.parent, interval)
if (bools['net'] > 0):
self.updateNetdev = 0
dataEngines['system'].connectSource("network/interfaces/" + names['net'] + "/transmitter/data", self.parent, interval)
dataEngines['system'].connectSource("network/interfaces/" + names['net'] + "/receiver/data", self.parent, interval)
if (bools['player'] > 0):
dataEngines['ext'].connectSource("player", self.parent, interval)
if (bools['swap'] > 0):
dataEngines['system'].connectSource("mem/swap/free", self.parent, interval)
dataEngines['system'].connectSource("mem/swap/used", self.parent, interval)
if (bools['temp'] > 0):
for item in names['temp']:
dataEngines['system'].connectSource(item, self.parent, interval)
if (bools['time'] > 0):
dataEngines['time'].connectSource("Local", self.parent, 1000)
if (bools['uptime'] > 0):
dataEngines['system'].connectSource("system/uptime", self.parent, interval)
if (self.parent.timeBool > 0):
self.parent.timemon = self.parent.dataEngine("time")
self.parent.timemon.connectSource("Local", self.parent, 1000)
if (self.parent.uptimeBool > 0): def dataUpdated(self, sourceName, data, ptm):
self.parent.systemmonitor.connectSource("system/uptime", self.parent, self.parent.interval)
if (self.parent.cpuBool > 0):
self.parent.systemmonitor.connectSource("cpu/system/TotalLoad", self.parent, self.parent.interval)
for core in self.parent.cpuCore.keys():
if (core > -1):
self.parent.systemmonitor.connectSource("cpu/cpu"+str(core)+"/TotalLoad", self.parent, self.parent.interval)
if (self.parent.cpuclockBool > 0):
self.parent.systemmonitor.connectSource("cpu/system/AverageClock", self.parent, self.parent.interval)
for core in self.parent.cpuClockCore.keys():
if (core > -1):
self.parent.systemmonitor.connectSource("cpu/cpu"+str(core)+"/clock", self.parent, self.parent.interval)
if (self.parent.tempBool > 0):
for item in self.parent.tempNames:
self.parent.systemmonitor.connectSource(item, self.parent, self.parent.interval)
if (self.parent.gpuBool > 0):
self.parent.extsysmon.connectSource("gpu", self.parent, self.parent.interval)
if (self.parent.gputempBool > 0):
self.parent.extsysmon.connectSource("gputemp", self.parent, self.parent.interval)
if (self.parent.memBool > 0):
if (self.parent.memInMb):
self.parent.systemmonitor.connectSource("mem/physical/application", self.parent, self.parent.interval)
else:
self.parent.systemmonitor.connectSource("mem/physical/free", self.parent, int(self.parent.interval*0.5))
self.parent.systemmonitor.connectSource("mem/physical/used", self.parent, int(self.parent.interval*0.5))
self.parent.systemmonitor.connectSource("mem/physical/application", self.parent, int(self.parent.interval*0.5))
if (self.parent.swapBool > 0):
if (self.parent.swapInMb):
self.parent.systemmonitor.connectSource("mem/swap/used", self.parent, self.parent.interval)
else:
self.parent.systemmonitor.connectSource("mem/swap/free", self.parent, int(self.parent.interval*0.5))
self.parent.systemmonitor.connectSource("mem/swap/used", self.parent, int(self.parent.interval*0.5))
if (self.parent.hddBool > 0):
for item in self.parent.mountNames:
self.parent.systemmonitor.connectSource("partitions" + item + "/filllevel", self.parent, self.parent.interval)
if (self.parent.hddtempBool > 0):
self.parent.extsysmon.connectSource("hddtemp", self.parent, self.parent.interval)
if (self.parent.netBool > 0):
self.parent.updateNetdev = 0
self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent, self.parent.interval)
self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent, self.parent.interval)
if (self.parent.playerBool > 0):
self.parent.extsysmon.connectSource("player", self.parent, self.parent.interval)
def dataUpdated(self, sourceName, data):
"""function to update data""" """function to update data"""
adv = ptm['vars']['adv']
systemDataEngine = ptm['dataengine']['system']
formats = ptm['vars']['formats']
interval = ptm['vars']['app']['interval']
names = ptm['names']
updatedData = {'name':None, 'type':None, 'value':None}
try: try:
if (sourceName == "system/uptime"): if (sourceName == "cpu/system/TotalLoad"):
updatedData['name'] = "cpu"
updatedData['type'] = -1
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif ((sourceName[:7] == "cpu/cpu") and (sourceName.split('/')[2] == "TotalLoad")):
updatedData['name'] = "cpu"
updatedData['type'] = int(sourceName[7])
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif (sourceName == "cpu/system/AverageClock"):
updatedData['name'] = "cpuclock"
updatedData['type'] = -1
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif ((sourceName[:7] == "cpu/cpu") and (sourceName.split('/')[2] == "clock")):
updatedData['name'] = "cpuclock"
updatedData['type'] = int(sourceName[7])
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif (sourceName == "custom"):
updatedData['name'] = "custom"
value = str(data[QString(u'custom')].toUtf8()).decode("utf-8")
updatedData['value'] = value
elif (sourceName == "gpu"):
updatedData['name'] = "gpu"
value = round(data[QString(u'GPU')].toFloat()[0], 1)
updatedData['value'] = "%4.1f" % (value)
elif (sourceName == "gputemp"):
updatedData['name'] = "gputemp"
value = round(data[QString(u'GPUTemp')].toFloat()[0], 1)
updatedData['value'] = "%4.1f" % (value)
elif (sourceName.split('/')[0] == "partitions"):
updatedData['name'] = "hdd"
updatedData['type'] = '/' + '/'.join(sourceName.split('/')[1:-1])
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = "%5.1f" % (value)
elif (sourceName == "hddtemp"):
updatedData['name'] = "hddtemp"
updatedData['value'] = {}
for item in names['hddtemp']:
value = round(data[QString(item)].toFloat()[0], 1)
updatedData['value'][item] = "%4.1f" % (value)
elif (sourceName == "mem/physical/application"):
updatedData['name'] = "mem"
updatedData['type'] = "app"
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif (sourceName == "mem/physical/free"):
updatedData['name'] = "mem"
updatedData['type'] = "free"
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif (sourceName == "mem/physical/used"):
updatedData['name'] = "mem"
updatedData['type'] = "used"
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif ((sourceName.split('/')[0] == "network") and (sourceName.split('/')[3] == "receiver")):
updatedData['name'] = "net"
updatedData['type'] = "down"
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
# update network device
self.updateNetdev = self.updateNetdev + 1
if (self.updateNetdev == 30):
self.updateNetdev = 0
if (adv['netdevBool'] == 0):
systemDataEngine.disconnectSource("network/interfaces/" + names['net'] + "/transmitter/data", self.parent)
systemDataEngine.disconnectSource("network/interfaces/" + names['net'] + "/receiver/data", self.parent)
names['net'] = self.parent.setNetdev()
systemDataEngine.connectSource("network/interfaces/" + names['net'] + "/transmitter/data", self.parent, interval)
systemDataEngine.connectSource("network/interfaces/" + names['net'] + "/receiver/data", self.parent, interval)
elif ((sourceName.split('/')[0] == "network") and (sourceName.split('/')[3] == "transmitter")):
updatedData['name'] = "net"
updatedData['type'] = "up"
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
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'] == "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")
elif (sourceName == "mem/swap/free"):
updatedData['name'] = "swap"
updatedData['type'] = "free"
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif (sourceName == "mem/swap/used"):
updatedData['name'] = "swap"
updatedData['type'] = "used"
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = value
elif (sourceName.split('/')[0] == "lmsensors"):
updatedData['name'] = "temp"
updatedData['type'] = sourceName
value = round(data[QString(u'value')].toFloat()[0], 1)
updatedData['value'] = "%4.1f" % (value)
elif (sourceName == "Local"):
updatedData['name'] = "time"
if (formats['time'].split('$time')[0] != formats['time']):
value = str(data[QString(u'DateTime')].toString(Qt.TextDate).toUtf8()).decode("utf-8")
elif (formats['time'].split('$isotime')[0] != formats['time']):
value = str(data[QString(u'DateTime')].toString(Qt.ISODate).toUtf8()).decode("utf-8")
elif (formats['time'].split('$shorttime')[0] != formats['time']):
value = str(data[QString(u'DateTime')].toString(Qt.SystemLocaleShortDate).toUtf8()).decode("utf-8")
elif (formats['time'].split('$longtime')[0] != formats['time']):
value = str(data[QString(u'DateTime')].toString(Qt.SystemLocaleLongDate).toUtf8()).decode("utf-8")
elif (formats['time'].split('$custom')[0] != formats['time']):
rawDate = data[QString(u'DateTime')]
value = adv['customTime']
for letters in timeLetters:
if (value.split('$' + letters)[0] != value):
value = value.split('$' + letters)[0] + str(rawDate.toString(letters).toUtf8()).decode("utf-8") + value.split('$' + letters)[1]
updatedData['value'] = value
elif (sourceName == "system/uptime"):
updatedData['name'] = "uptime"
value = datetime.timedelta(0, int(round(float(data[QString(u'value')]), 1))) value = datetime.timedelta(0, int(round(float(data[QString(u'value')]), 1)))
days = value.days days = value.days
hours = int(value.seconds / 60 / 60) hours = int(value.seconds / 60 / 60)
minutes = int(value.seconds / 60 % 60) minutes = int(value.seconds / 60 % 60)
line = self.parent.uptimeFormat if (formats['uptime'].split('$uptime')[0] != formats['uptime']):
if (line.split('$uptime')[0] != line): updatedData['value'] = "%3id%2ih%2im" % (days, hours, minutes)
uptimeText = "%3id%2ih%2im" % (days, hours, minutes) elif (formats['uptime'].split('$custom')[0] != formats['uptime']):
line = line.split('$uptime')[0] + uptimeText + line.split('$uptime')[1] updatedData['value'] = adv['customUptime']
elif (line.split('$custom')[0] != line): if (updatedData['value'].split('$dd')[0] != updatedData['value']):
uptimeText = self.parent.custom_uptime updatedData['value'] = "%s%03i%s" % (updatedData['value'].split('$dd')[0], days, updatedData['value'].split('$dd')[1])
if (uptimeText.split('$ds')[0] != uptimeText): if (updatedData['value'].split('$d')[0] != updatedData['value']):
uptimeText = "%s%3i%s" % (uptimeText.split('$ds')[0], days, uptimeText.split('$ds')[1]) updatedData['value'] = "%s%3i%s" % (updatedData['value'].split('$d')[0], days, updatedData['value'].split('$d')[1])
if (uptimeText.split('$hs')[0] != uptimeText): if (updatedData['value'].split('$hh')[0] != updatedData['value']):
uptimeText = "%s%2i%s" % (uptimeText.split('$hs')[0], hours, uptimeText.split('$hs')[1]) updatedData['value'] = "%s%02i%s" % (updatedData['value'].split('$hh')[0], hours, updatedData['value'].split('$hh')[1])
if (uptimeText.split('$ms')[0] != uptimeText): if (updatedData['value'].split('$h')[0] != updatedData['value']):
uptimeText = "%s%2i%s" % (uptimeText.split('$ms')[0], minutes, uptimeText.split('$ms')[1]) updatedData['value'] = "%s%2i%s" % (updatedData['value'].split('$h')[0], hours, updatedData['value'].split('$h')[1])
line = line.split('$custom')[0] + uptimeText + line.split('$custom')[1] if (updatedData['value'].split('$mm')[0] != updatedData['value']):
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] updatedData['value'] = "%s%02i%s" % (updatedData['value'].split('$mm')[0], minutes, updatedData['value'].split('$mm')[1])
self.parent.label_uptime.setText(text) if (updatedData['value'].split('$m')[0] != updatedData['value']):
elif (sourceName == "cpu/system/TotalLoad"): updatedData['value'] = "%s%2i%s" % (updatedData['value'].split('$m')[0], minutes, updatedData['value'].split('$m')[1])
value = str(round(float(data[QString(u'value')]), 1))
self.parent.cpuCore[-1] = "%5s" % (value)
if (self.parent.cpuBool == 2):
self.parent.tooltipAgent.addValue('cpu', float(value), self.parent.tooltipNum)
elif ((str(sourceName)[:7] == "cpu/cpu") and (str(sourceName).split('/')[2] == "TotalLoad")):
value = str(round(float(data[QString(u'value')]), 1))
self.parent.cpuCore[int(str(sourceName)[7])] = "%5s" % (value)
elif (sourceName == "cpu/system/AverageClock"):
value = str(data[QString(u'value')]).split('.')[0]
self.parent.cpuClockCore[-1] = "%4s" % (value)
if (self.parent.cpuclockBool == 2):
self.parent.tooltipAgent.addValue('cpuclock', float(value), self.parent.tooltipNum)
elif ((str(sourceName)[:7] == "cpu/cpu") and (str(sourceName).split('/')[2] == "clock")):
value = str(data[QString(u'value')]).split('.')[0]
self.parent.cpuClockCore[int(str(sourceName)[7])] = "%4s" % (value)
elif (sourceName == "network/interfaces/"+self.parent.netdev+"/transmitter/data"):
value = str(data[QString(u'value')]).split('.')[0]
self.parent.netSpeed["up"] = "%4s" % (value)
if (self.parent.netBool == 2):
self.parent.tooltipAgent.addValue('up', float(value), self.parent.tooltipNum)
elif (sourceName == "network/interfaces/"+self.parent.netdev+"/receiver/data"):
value = str(data[QString(u'value')]).split('.')[0]
self.parent.netSpeed["down"] = "%4s" % (value)
if (self.parent.netBool == 2):
self.parent.tooltipAgent.addValue('down', float(value), self.parent.tooltipNum)
# update network device
self.parent.updateNetdev = self.parent.updateNetdev + 1
if (self.parent.updateNetdev == 100):
self.parent.updateNetdev = 0
if (self.parent.netNonFormat.split('@@')[0] == self.parent.netNonFormat):
self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent)
self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent)
self.parent.netdev = self.parent.setupNetdev()
self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent, self.parent.interval)
self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent, self.parent.interval)
if (self.parent.netNonFormat.split('$netdev')[0] != self.parent.netNonFormat):
self.parent.netFormat = self.parent.netNonFormat.split('$netdev')[0] + self.parent.netdev + self.parent.netNonFormat.split('$netdev')[1]
else:
self.parent.netFormat = self.parent.netNonFormat
elif (str(sourceName).split('/')[0] == "lmsensors"):
value = str(round(float(data[QString(u'value')]), 1))
self.parent.temp[str(sourceName)] = "%4s" % (value)
elif (str(sourceName).split('/')[0] == "partitions"):
value = str(round(float(data[QString(u'value')]), 1))
self.parent.mount['/'+'/'.join(str(sourceName).split('/')[1:-1])] = "%5s" % (value)
elif (sourceName == "mem/physical/free"):
self.parent.mem_free = float(data[QString(u'value')])
elif (sourceName == "mem/physical/used"):
self.parent.mem_uf = float(data[QString(u'value')])
elif (sourceName == "mem/physical/application"):
if (self.parent.memInMb):
mem = str(round(float(data[QString(u'value')]) / 1024, 0)).split('.')[0]
mem = "%5s" % (mem)
if (self.parent.memFormat.split('$memmb')[0] != self.parent.memFormat):
line = self.parent.memFormat.split('$memmb')[0] + mem + self.parent.memFormat.split('$memmb')[1]
else:
line = self.parent.memFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_mem.setText(text)
else:
self.parent.mem_used = float(data[QString(u'value')])
if (self.parent.memBool == 2):
self.parent.tooltipAgent.addValue('mem', float(data[QString(u'value')]), self.parent.tooltipNum)
elif (sourceName == "mem/swap/free"):
self.parent.swap_free = float(data[QString(u'value')])
elif (sourceName == "mem/swap/used"):
if (self.parent.swapInMb):
mem = str(round(float(data[QString(u'value')]) / 1024, 0)).split('.')[0]
mem = "%5s" % (mem)
if (self.parent.swapFormat.split('$swapmb')[0] != self.parent.swapFormat):
line = self.parent.swapFormat.split('$swapmb')[0] + mem + self.parent.swapFormat.split('$swapmb')[1]
else:
line = self.parent.swapFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_swap.setText(text)
else:
self.parent.swap_used = float(data[QString(u'value')])
if (self.parent.swapBool == 2):
self.parent.tooltipAgent.addValue('swap', float(data[QString(u'value')]), self.parent.tooltipNum)
elif (sourceName == "gpu"):
value = str(data[QString(u'GPU')])
gpuText = "%4s" % (value)
if (self.parent.gpuFormat.split('$gpu')[0] != self.parent.gpuFormat):
line = self.parent.gpuFormat.split('$gpu')[0] + gpuText + self.parent.gpuFormat.split('$gpu')[1]
else:
line = self.parent.gpuFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_gpu.setText(text)
elif (sourceName == "gputemp"):
value = str(data[QString(u'GPUTemp')])
gputempText = "%4s" % (value)
if (self.parent.gputempFormat.split('$gputemp')[0] != self.parent.gputempFormat):
line = self.parent.gputempFormat.split('$gputemp')[0] + gputempText + self.parent.gputempFormat.split('$gputemp')[1]
else:
line = self.parent.gputempFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_gputemp.setText(text)
elif (sourceName == "hddtemp"):
for item in self.parent.hddNames:
value = str(data[QString(item)])
self.parent.hdd[item] = "%4s" % (value)
line = self.parent.hddtempFormat
for i in range(len(self.parent.hddNames)):
if (line.split('$hddtemp'+str(i))[0] != line):
line = line.split('$hddtemp'+str(i))[0] + self.parent.hdd[self.parent.hddNames[i]] + line.split('$hddtemp'+str(i))[1]
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_hddtemp.setText(text)
elif (sourceName == "player"):
if (self.parent.player_name == 0):
album = str(data[QString(u'amarok_album')].toUtf8()).decode("utf-8")
artist = str(data[QString(u'amarok_artist')].toUtf8()).decode("utf-8")
progress = str(data[QString(u'amarok_progress')].toUtf8()).decode("utf-8")
time = str(data[QString(u'amarok_duration')].toUtf8()).decode("utf-8")
title = str(data[QString(u'amarok_title')].toUtf8()).decode("utf-8")
elif (self.parent.player_name == 1):
album = str(data[QString(u'mpd_album')].toUtf8()).decode("utf-8")
artist = str(data[QString(u'mpd_artist')].toUtf8()).decode("utf-8")
progress = str(data[QString(u'mpd_progress')].toUtf8()).decode("utf-8")
time = str(data[QString(u'mpd_duration')].toUtf8()).decode("utf-8")
title = str(data[QString(u'mpd_title')].toUtf8()).decode("utf-8")
elif (self.parent.player_name == 2):
album = str(data[QString(u'qmmp_album')].toUtf8()).decode("utf-8")
artist = str(data[QString(u'qmmp_artist')].toUtf8()).decode("utf-8")
progress = str(data[QString(u'qmmp_progress')].toUtf8()).decode("utf-8")
time = str(data[QString(u'qmmp_duration')].toUtf8()).decode("utf-8")
title = str(data[QString(u'qmmp_title')].toUtf8()).decode("utf-8")
line = self.parent.playerFormat
if (line.split('$album')[0] != line):
line = line.split('$album')[0] + album + line.split('$album')[1]
if (line.split('$artist')[0] != line):
line = line.split('$artist')[0] + artist + line.split('$artist')[1]
if (line.split('$progress')[0] != line):
timeText = '%02i:%02i' % (int(time)/60, int(time)%60)
line = line.split('$progress')[0] + timeText + line.split('$progress')[1]
if (line.split('$time')[0] != line):
timeText = '%02i:%02i' % (int(time)/60, int(time)%60)
line = line.split('$time')[0] + timeText + line.split('$time')[1]
if (line.split('$title')[0] != line):
line = line.split('$title')[0] + title + line.split('$title')[1]
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_player.setText(text)
elif (sourceName == "Local"):
if (self.parent.timeFormat.split('$time')[0] != self.parent.timeFormat):
value = str(data[QString(u'DateTime')].toString(Qt.TextDate).toUtf8())
line = self.parent.timeFormat.split('$time')[0] + value.decode("utf-8") + self.parent.timeFormat.split('$time')[1]
elif (self.parent.timeFormat.split('$isotime')[0] != self.parent.timeFormat):
value = str(data[QString(u'DateTime')].toString(Qt.ISODate).toUtf8())
line = self.parent.timeFormat.split('$isotime')[0] + value.decode("utf-8") + self.parent.timeFormat.split('$isotime')[1]
elif (self.parent.timeFormat.split('$shorttime')[0] != self.parent.timeFormat):
value = str(data[QString(u'DateTime')].toString(Qt.SystemLocaleShortDate).toUtf8())
line = self.parent.timeFormat.split('$shorttime')[0] + value.decode("utf-8") + self.parent.timeFormat.split('$shorttime')[1]
elif (self.parent.timeFormat.split('$longtime')[0] != self.parent.timeFormat):
value = str(data[QString(u'DateTime')].toString(Qt.SystemLocaleLongDate).toUtf8())
line = self.parent.timeFormat.split('$longtime')[0] + value.decode("utf-8") + self.parent.timeFormat.split('$longtime')[1]
elif (self.parent.timeFormat.split('$custom')[0] != self.parent.timeFormat):
rawDate = data[QString(u'DateTime')]
value = self.parent.custom_time
for letters in timeLetters:
if (value.split('$'+letters)[0] != value):
value = value.split('$'+letters)[0] + \
str(data[QString(u'DateTime')].toString(letters).toUtf8()).decode("utf-8") + \
value.split('$'+letters)[1]
line = self.parent.timeFormat.split('$custom')[0] + value + self.parent.timeFormat.split('$custom')[1]
else:
line = self.parent.timeFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_time.setText(text)
self.parent.update()
except: except:
pass pass
return updatedData
def disconnectFromSource(self, dataEngines=None, keys=None, name=None):
"""function to disconnect from sources"""
if (name == "bat"):
pass
elif (name == "cpu"):
dataEngines['system'].disconnectSource("cpu/system/TotalLoad", self.parent)
for item in keys['cpu']:
if (item != -1):
dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/TotalLoad", self.parent)
elif (name == "cpuclock"):
dataEngines['system'].disconnectSource("cpu/system/AverageClock", self.parent)
for item in keys['cpuclock']:
if (item != -1):
dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/clock", self.parent)
elif (name == "custom"):
dataEngines['ext'].disconnectSource("custom", self.parent)
elif (name == "gpu"):
dataEngines['ext'].disconnectSource("gpu", self.parent)
elif (name == "gputemp"):
dataEngines['ext'].disconnectSource("gputemp", self.parent)
elif (name == "hdd"):
for item in keys['hdd']:
dataEngines['system'].disconnectSource("partitions" + item + "/filllevel", self.parent)
elif (name == "hddtemp"):
dataEngines['ext'].disconnectSource("hddtemp", self.parent)
elif (name == "mem"):
dataEngines['system'].disconnectSource("mem/physical/application", self.parent)
dataEngines['system'].disconnectSource("mem/physical/free", self.parent)
dataEngines['system'].disconnectSource("mem/physical/used", self.parent)
elif (name == "net"):
dataEngines['system'].disconnectSource("network/interfaces/" + keys['net'] + "/transmitter/data", self.parent)
dataEngines['system'].disconnectSource("network/interfaces/" + keys['net'] + "/receiver/data", self.parent)
elif (name == "player"):
dataEngines['ext'].disconnectSource("player", self.parent)
elif (name == "swap"):
dataEngines['system'].disconnectSource("mem/swap/used", self.parent)
dataEngines['system'].disconnectSource("mem/swap/free", self.parent)
elif (name == "temp"):
for item in keys['temp']:
dataEngines['system'].disconnectSource(item, self.parent)
elif (name == "time"):
dataEngines['time'].disconnectSource("Local", self.parent)
elif (name == "uptime"):
dataEngines['system'].disconnectSource("system/uptime", self.parent)

View File

@ -24,38 +24,59 @@ from PyKDE4.kdeui import *
from PyKDE4.kio import * from PyKDE4.kio import *
from PyKDE4 import plasmascript from PyKDE4 import plasmascript
from PyKDE4.plasma import Plasma from PyKDE4.plasma import Plasma
import commands, os, shutil, time import commands, os, shutil
import configdef import configdef
import configwindow import configwindow
import dataengine import dataengine
import ptmnotify
import reinit import reinit
import tooltip import tooltip
from util import * from util import *
class CustomPlasmaLabel(Plasma.Label):
"""new Label with defined clicked() event"""
def __init__(self, applet, name):
"""class definition"""
Plasma.Label.__init__(self, applet)
self.name = name
self.notify = ptmnotify.PTMNotify(self)
def mousePressEvent(self, event):
"""mouse click event"""
if (event.button() == Qt.LeftButton):
self.notify.init(self.name)
class pyTextWidget(plasmascript.Applet): class pyTextWidget(plasmascript.Applet):
def __init__(self, parent, args=None): def __init__(self, parent, args=None):
"""widget definition""" """widget definition"""
plasmascript.Applet.__init__(self, parent) plasmascript.Applet.__init__(self, parent)
# initialization
def init(self): def init(self):
"""function to initializate widget""" """function to initializate widget"""
self._name = str(self.package().metadata().pluginName()) self._name = str(self.package().metadata().pluginName())
self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet) self.setupVar()
self.dataengine = dataengine.DataEngine(self) self.dataengine = dataengine.DataEngine(self)
self.reinit = reinit.Reinit(self) self.reinit = reinit.Reinit(self, self.ptm['defaults'])
self.tooltipAgent = tooltip.Tooltip(self) self.tooltipAgent = tooltip.Tooltip(self)
self.timer = QTimer() self.timer = QTimer()
QObject.connect(self.timer, SIGNAL("timeout()"), self.updateLabel) QObject.connect(self.timer, SIGNAL("timeout()"), self.updateLabel)
self.setupVar()
self.initTooltip() self.initTooltip()
self.reinit.reinit(confAccept=False) self.reInit()
self.applet.setLayout(self.ptm['layout'])
self.theme = Plasma.Svg(self)
self.theme.setImagePath("widgets/background")
self.setBackgroundHints(Plasma.Applet.DefaultBackground)
self.setHasConfigurationInterface(True) self.setHasConfigurationInterface(True)
# Create notifyrc file if required # Create notifyrc file if required
@ -65,10 +86,11 @@ class pyTextWidget(plasmascript.Applet):
self.createNotifyrc(kdehome) self.createNotifyrc(kdehome)
# internal functions
def createConfigurationInterface(self, parent): def createConfigurationInterface(self, parent):
"""function to setup configuration window""" """function to setup configuration window"""
self.configpage = configwindow.ConfigWindow(self) self.configpage = configwindow.ConfigWindow(self)
self.configdef = configdef.ConfigDefinition(self, self.configpage) self.configdef = configdef.ConfigDefinition(self, self.configpage, self.ptm['defaults'])
self.configdef.createConfigurationInterface(parent) self.configdef.createConfigurationInterface(parent)
@ -87,76 +109,90 @@ class pyTextWidget(plasmascript.Applet):
self.tooltip.setSubText('') self.tooltip.setSubText('')
Plasma.ToolTipManager.self().registerWidget(self.applet) Plasma.ToolTipManager.self().registerWidget(self.applet)
# graphical tooltip # graphical tooltip
self.tooltip_pixmap = QPixmap() self.tooltipScene = QGraphicsScene()
self.tooltip_scene = QGraphicsScene() self.tooltipView = QGraphicsView(self.tooltipScene)
self.tooltip_view = QGraphicsView(self.tooltip_scene) self.tooltipView.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.tooltip_view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.tooltipView.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.tooltip_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# show tooltip # show tooltip
Plasma.ToolTipManager.self().setContent(self.applet, self.tooltip) Plasma.ToolTipManager.self().setContent(self.applet, self.tooltip)
def updateTooltip(self):
"""function to update tooltip"""
self.tooltip_view.resize(100.0*(len(self.tooltipReq)-self.tooltipReq.count('up')), 100.0)
self.tooltipAgent.createGraphic(self.tooltipReq, self.tooltipColors, self.tooltipValues, self.tooltip_scene)
self.tooltip.setImage(QPixmap.grabWidget(self.tooltip_view))
Plasma.ToolTipManager.self().setContent(self.applet, self.tooltip)
def mouseDoubleClickEvent(self, event): def mouseDoubleClickEvent(self, event):
"""function to doubleclick event""" """function to doubleclick event"""
os.system("ksysguard &") os.system("ksysguard &")
def setupNetdev(self):
"""function to setup network device"""
netdev = "lo"
interfaces = QDir.entryList(QDir(self.netdir), QDir.Dirs | QDir.NoDotAndDotDot)
for device in interfaces:
if (str(device) != "lo"):
try:
with open(self.netdir+"/"+str(device)+"/operstate", "r") as stateFile:
if (stateFile.readline() == "up\n"):
netdev = str(device)
except:
pass
return netdev
def setupVar(self): def setupVar(self):
"""function to setup variables""" """function to setup variables"""
self.netdev = '' self.ptm = {}
self.cpuCore = {-1:" 0.0"} # dataengines
self.cpuClockCore = {-1:" 0"} self.ptm['dataengine'] = {'ext':None, 'system':None, 'time':None}
numCores = int(commands.getoutput("grep -c '^processor' /proc/cpuinfo")) # defaults
for i in range(numCores): self.ptm['defaults'] = {}
self.cpuCore[i] = str(" 0.0") self.ptm['defaults']['confBool'] = {'bat':'batBool', 'cpu':'cpuBool',
self.cpuClockCore[i] = str(" 0") 'cpuclock':'cpuclockBool', 'custom':'customBool', 'gpu':'gpuBool',
self.netSpeed = {"up":" 0", "down":" 0"} 'gputemp':'gputempBool', 'hdd':'hddBool', 'hddtemp':'hddtempBool',
self.tempNames = [] 'mem':'memBool', 'net':'netBool', 'swap':'swapBool', 'temp':'tempBool',
self.temp = {} 'uptime':'uptimeBool', 'player':'playerBool', 'time':'timeBool'}
self.mountNames = [] self.ptm['defaults']['confColor'] = {'cpu':'cpu_color', 'cpuclock':'cpuclock_color',
self.mount = {} 'down':'down_color', 'mem':'mem_color', 'swap':'swap_color', 'up':'up_color'}
self.hddNames = [] self.ptm['defaults']['confFormat'] = {'bat':'batFormat', 'cpu':'cpuFormat',
self.hdd = {} 'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'gpu':'gpuFormat',
self.tooltipColors = {} 'gputemp':'gputempFormat', 'hdd':'hddFormat', 'hddtemp':'hddtempFormat',
self.tooltipNum = 100 'mem':'memFormat', 'net':'netFormat', 'player':'playerFormat',
self.tooltipReq = [] 'swap':'swapFormat', 'temp':'tempFormat', 'time':'timeFormat',
self.tooltipValues = {'cpu':[0.0, 0.01], 'cpuclock':[0.0, 0.01], 'mem':[0.0, 0.01], 'uptime':'uptimeFormat'}
'swap':[0.0, 0.01], 'up':[0.0, 0.01], 'down':[0.0, 0.01]} self.ptm['defaults']['bool'] = {'bat':0, 'cpu':2, 'cpuclock':0, 'custom':0,
'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2, 'player':0,
# create dictionaries 'swap':2, 'temp':0, 'time':0, 'uptime':0}
self.dict_orders = {'6':'bat', '1':'cpu', '7':'cpuclock', 'f':'custom', '9':'gpu', self.ptm['defaults']['format'] = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'a':'gputemp', 'b':'hdd', 'c':'hddtemp', '3':'mem', '5':'net', '4':'swap', '2':'temp',
'8':'uptime', 'd':'player', 'e':'time'}
self.dict_defFormat = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]', 'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]',
'gputemp':'[gpu temp: $gputemp&deg;C]', 'hdd':'[hdd: $hdd0%]', 'gputemp':'[gpu temp: $gputemp&deg;C]', 'hdd':'[hdd: $hdd0%]',
'hddtemp':'[hdd temp: $hddtemp0&deg;C]', 'mem':'[mem: $mem%]', 'hddtemp':'[hdd temp: $hddtemp0&deg;C]', 'mem':'[mem: $mem%]',
'net':'[$netdev: $down/$upKB/s]', 'swap':'[swap: $swap%]', 'net':'[$netdev: $down/$upKB/s]', 'player':'[$artist - $title]',
'temp':'[temp: $temp0&deg;C]', 'uptime':'[uptime: $uptime]', 'swap':'[swap: $swap%]', 'temp':'[temp: $temp0&deg;C]',
'player':'[$artist - $title]', 'time':'[$time]'} 'time':'[$time]', 'uptime':'[uptime: $uptime]'}
self.ptm['defaults']['order'] = {'6':'bat', '1':'cpu', '7':'cpuclock', 'f':'custom', '9':'gpu',
'a':'gputemp', 'b':'hdd', 'c':'hddtemp', '3':'mem', '5':'net', '4':'swap', '2':'temp',
'8':'uptime', 'd':'player', 'e':'time'}
# 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']['hdd'] = []
self.ptm['names']['hddtemp'] = []
self.ptm['names']['net'] = ""
self.ptm['names']['temp'] = []
# tooltips
self.ptm['tooltip'] = {}
self.ptm['tooltip']['bounds'] = {'cpu':100.0, 'cpuclock':4000.0, 'mem':16000.0,
'swap':16000, 'down':10000.0, 'up':10000.0}
self.ptm['tooltip']['values'] = {'cpu':[0.0, 0.0], 'cpuclock':[0, 0], 'mem':[0, 0],
'swap':[0, 0], 'down':[0, 0], 'up':[0, 0]}
# values
self.ptm['values'] = {}
self.ptm['values']['cpu'] = {-1:0.0}
self.ptm['values']['cpuclock'] = {-1:0.0}
numCores = int(commands.getoutput("grep -c '^processor' /proc/cpuinfo"))
for i in range(numCores):
self.ptm['values']['cpu'][i] = 0.0
self.ptm['values']['cpuclock'][i] = 0.0
self.ptm['values']['hdd'] = {}
self.ptm['values']['hddtemp'] = {}
self.ptm['values']['mem'] = {'app':0.0, 'used':0.0, 'free':1.0}
self.ptm['values']['net'] = {"up":0.0, "down":0.0}
self.ptm['values']['player'] = {}
self.ptm['values']['swap'] = {'used':0.0, 'free':1.0}
self.ptm['values']['temp'] = {}
# variables
self.ptm['vars'] = {}
self.ptm['vars']['adv'] = {}
self.ptm['vars']['app'] = {}
self.ptm['vars']['bools'] = {}
self.ptm['vars']['formats'] = {}
self.ptm['vars']['tooltip'] = {}
def showConfigurationInterface(self): def showConfigurationInterface(self):
@ -171,163 +207,338 @@ class pyTextWidget(plasmascript.Applet):
self.tooltip.setSubText('') self.tooltip.setSubText('')
except Exception as strerror: except Exception as strerror:
self.tooltip.setSubText(str(strerror)) self.tooltip.setSubText(str(strerror))
self.label_error = Plasma.Label(self.applet)
self.label_error.setText('<font color="red">ERROR</font>')
self.layout.addItem(self.label_error)
return return
def updateLabel(self): def updateLabel(self):
"""function to update label""" """function to update label"""
if (self.batBool > 0): if (self.ptm['vars']['bools']['bat'] > 0):
self.batText() self.batText()
if (self.cpuBool > 0): if (self.ptm['vars']['bools']['cpu'] > 0):
self.cpuText() self.cpuText()
if (self.cpuclockBool > 0): if (self.ptm['vars']['bools']['cpuclock'] > 0):
self.cpuclockText() self.cpuclockText()
if (self.customBool > 0): if (self.ptm['vars']['bools']['hdd'] > 0):
self.getCustom() self.hddText()
if (self.hddBool > 0): if (self.ptm['vars']['bools']['hddtemp'] > 0):
self.mountText() self.hddtempText()
if ((self.memBool > 0) and (self.memInMb == False)): if (self.ptm['vars']['bools']['mem'] > 0):
self.memText() self.memText()
if (self.netBool > 0): if (self.ptm['vars']['bools']['net'] > 0):
self.netText() self.netText()
if ((self.swapBool > 0) and (self.swapInMb == False)): if (self.ptm['vars']['bools']['swap'] > 0):
self.swapText() self.swapText()
if (self.tempBool > 0): if (self.ptm['vars']['bools']['temp'] > 0):
self.tempText() self.tempText()
self.updateTooltip() self.updateTooltip()
def updateTooltip(self):
"""function to update tooltip"""
self.tooltipView.resize(100.0*(len(self.ptm['vars']['tooltip']['required']) - self.ptm['vars']['tooltip']['required'].count('up')), 100.0)
self.tooltipAgent.createGraphic(self.ptm['vars']['tooltip'], self.ptm['tooltip'], self.tooltipScene)
self.tooltip.setImage(QPixmap.grabWidget(self.tooltipView))
Plasma.ToolTipManager.self().setContent(self.applet, self.tooltip)
# update functions
# update dataengines
@pyqtSignature("dataUpdated(const QString &, const Plasma::DataEngine::Data &)")
def dataUpdated(self, sourceName, data):
"""function to update label"""
updatedData = self.dataengine.dataUpdated(str(sourceName), data, self.ptm)
if (updatedData['value'] == None):
return
# update falues where is needed
if (updatedData['type'] != None):
self.ptm['values'][updatedData['name']][updatedData['type']] = updatedData['value']
else:
self.ptm['values'][updatedData['name']] = updatedData['value']
# update labels where is needed
if (updatedData['name'] in ['custom', 'gpu', 'gputemp', 'player', 'time', 'uptime']):
text = self.textPrepare(updatedData['name'], updatedData['value'])
self.setText(updatedData['name'], text)
# update tooltips
if ((updatedData['name'] in ['cpu', 'cpuclock', 'mem', 'swap', 'net']) and (self.ptm['vars']['bools'][updatedData['name']] == 2)):
if (updatedData['name'] == "net"):
if (len(self.ptm['tooltip']['values'][updatedData['type']]) > self.ptm['vars']['tooltip']['num']):
self.ptm['tooltip']['values'][updatedData['type']] = self.ptm['tooltip']['values'][updatedData['type']][1:]
else:
if (len(self.ptm['tooltip']['values'][updatedData['name']]) > self.ptm['vars']['tooltip']['num']):
self.ptm['tooltip']['values'][updatedData['name']] = self.ptm['tooltip']['values'][updatedData['name']][1:]
if ((updatedData['name'] in ['cpu', 'cpuclock']) and (updatedData['type'] == -1)):
self.ptm['tooltip']['values'][updatedData['name']].append(updatedData['value'])
elif ((updatedData['name'] == "mem") and (updatedData['type'] == "app")):
self.ptm['tooltip']['values'][updatedData['name']].append(updatedData['value'])
elif ((updatedData['name'] == "mem") and (updatedData['type'] == "used")):
self.ptm['tooltip']['bounds']['mem'] = self.ptm['values']['mem']['free'] + self.ptm['values']['mem']['used']
elif ((updatedData['name'] == "swap") and (updatedData['type'] == "used")):
self.ptm['tooltip']['values'][updatedData['name']].append(updatedData['value'])
self.ptm['tooltip']['bounds']['swap'] = self.ptm['values']['swap']['free'] + self.ptm['values']['swap']['used']
elif (updatedData['name'] == "net"):
self.ptm['tooltip']['values'][updatedData['type']].append(updatedData['value'])
self.update()
# update labels
def batText(self): def batText(self):
"""function to set battery text""" """function to set battery text"""
line = self.batFormat line = self.ptm['vars']['formats']['bat']
if (line.split('$bat')[0] != line): if (line.split('$bat')[0] != line):
try: try:
with open (self.battery_device, 'r') as bat_file: with open (self.ptm['vars']['adv']['batDev'], 'r') as batFile:
bat = bat_file.readline().split('\n')[0] bat = batFile.readline()[:-1]
except: except:
bat = 'off' bat = "off"
bat = "%3s" % (bat) bat = "%3s" % (bat)
line = line.split('$bat')[0] + bat + line.split('$bat')[1] line = line.split('$bat')[0] + bat + line.split('$bat')[1]
if (line.split('$ac')[0] != line): if (line.split('$ac')[0] != line):
try: try:
with open (self.ac_device, 'r') as bat_file: with open (self.ptm['vars']['adv']['acDev'], 'r') as batFile:
bat = bat_file.readline().split('\n')[0] bat = batFile.readline()[:-1]
if (bat == '1'): if (bat == '1'):
bat = '(*)' bat = "(*)"
else: else:
bat = '( )' bat = "( )"
except: except:
bat = '(?)' bat = "(?)"
line = line.split('$ac')[0] + bat + line.split('$ac')[1] line = line.split('$ac')[0] + bat + line.split('$ac')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.label_bat.setText(text) self.setText("bat", text)
def cpuText(self): def cpuText(self):
"""function to set cpu text""" """function to set cpu text"""
line = self.cpuFormat line = self.ptm['vars']['formats']['cpu']
for core in self.cpuCore.keys(): for core in self.ptm['values']['cpu'].keys():
if (core > -1): if ((core > -1) and (line.split('$cpu' + str(core))[0] != line)):
if (line.split('$cpu'+str(core))[0] != line): value = "%5.1f" % (self.ptm['values']['cpu'][core])
line = line.split('$cpu'+str(core))[0] + self.cpuCore[core] + line.split('$cpu'+str(core))[1] line = line.split('$cpu' + str(core))[0] + value + line.split('$cpu' + str(core))[1]
if (line.split('$cpu')[0] != line): if (line.split('$cpu')[0] != line):
line = line.split('$cpu')[0] + self.cpuCore[-1] + line.split('$cpu')[1] value = "%5.1f" % (self.ptm['values']['cpu'][-1])
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] line = line.split('$cpu')[0] + value + line.split('$cpu')[1]
self.label_cpu.setText(text) text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.setText("cpu", text)
def cpuclockText(self): def cpuclockText(self):
"""function to set cpu clock text""" """function to set cpu clock text"""
line = self.cpuclockFormat line = self.ptm['vars']['formats']['cpuclock']
for core in self.cpuClockCore.keys(): for core in self.ptm['values']['cpuclock'].keys():
if (core > -1): if ((core > -1) and (line.split('$cpucl' + str(core))[0] != line)):
if (line.split('$cpucl'+str(core))[0] != line): value = "%4.0f" % (self.ptm['values']['cpuclock'][core])
line = line.split('$cpucl'+str(core))[0] + self.cpuClockCore[core] + line.split('$cpucl'+str(core))[1] line = line.split('$cpucl' + str(core))[0] + value + line.split('$cpucl' + str(core))[1]
if (line.split('$cpucl')[0] != line): if (line.split('$cpucl')[0] != line):
line = line.split('$cpucl')[0] + self.cpuClockCore[-1] + line.split('$cpucl')[1] value = "%4.0f" % (self.ptm['values']['cpuclock'][-1])
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] line = line.split('$cpucl')[0] + value + line.split('$cpucl')[1]
self.label_cpuclock.setText(text) text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.setText("cpuclock", text)
def hddText(self):
"""function to set hdd text"""
line = self.ptm['vars']['formats']['hdd']
for i in range(len(self.ptm['names']['hdd'])):
if (line.split('$hdd' + str(i))[0] != line):
line = line.split('$hdd' + str(i))[0] + str(self.ptm['values']['hdd'][self.ptm['names']['hdd'][i]]) + line.split('$hdd' + str(i))[1]
text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.setText("hdd", text)
def hddtempText(self):
"""function to set hddtemp text"""
line = self.ptm['vars']['formats']['hddtemp']
for i in range(len(self.ptm['names']['hddtemp'])):
if (line.split('$hddtemp' + str(i))[0] != line):
line = line.split('$hddtemp' + str(i))[0] + self.ptm['values']['hddtemp'][self.ptm['names']['hddtemp'][i]] + line.split('$hddtemp' + str(i))[1]
text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.setText("hddtemp", text)
def memText(self): def memText(self):
"""function to set mem text""" """function to set mem text"""
full = self.mem_uf + self.mem_free line = self.ptm['vars']['formats']['mem']
if (line.split('$memgb')[0] != line):
mem = "%4.1f" % (self.ptm['values']['mem']['app'] / (1024.0 * 1024.0))
line = line.split('$memgb')[0] + mem + line.split('$memgb')[1]
if (line.split('$memmb')[0] != line):
mem = "%i" % (self.ptm['values']['mem']['app'] / 1024.0)
line = line.split('$memmb')[0] + mem + line.split('$memmb')[1]
if (line.split('$mem')[0] != line):
try: try:
mem = 100 * self.mem_used / full mem = 100 * self.ptm['values']['mem']['app'] / (self.ptm['values']['mem']['free'] + self.ptm['values']['mem']['used'])
mem = "%5s" % (str(round(mem, 1))) mem = "%5.1f" % (round(mem, 1))
except: except:
mem = " N\\A" mem = " N\\A"
if (self.memFormat.split('$mem')[0] != self.memFormat): line = line.split('$mem')[0] + mem + line.split('$mem')[1]
line = self.memFormat.split('$mem')[0] + mem + self.memFormat.split('$mem')[1] text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
else: self.setText("mem", text)
line = self.memFormat
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_mem.setText(text)
def mountText(self):
"""function to set mount text"""
line = self.hddFormat
for i in range(len(self.mountNames)):
if (line.split('$hdd'+str(i))[0] != line):
line = line.split('$hdd'+str(i))[0] + self.mount[self.mountNames[i]] + line.split('$hdd'+str(i))[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_hdd.setText(text)
def netText(self): def netText(self):
"""function to set network text""" """function to set network text"""
line = self.netFormat line = self.ptm['vars']['formats']['net']
if (line.split('$up')[0] != line): if (line.split('$netdev')[0] != 0):
line = line.split('$up')[0] + self.netSpeed['up'] + line.split('$up')[1] line = line.split('$netdev')[0] + self.ptm['names']['net'] + line.split('$netdev')[1]
if (line.split('$down')[0] != line): if (line.split('$down')[0] != line):
line = line.split('$down')[0] + self.netSpeed['down'] + line.split('$down')[1] value = "%4.0f" %(self.ptm['values']['net']['down'])
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] line = line.split('$down')[0] + value + line.split('$down')[1]
self.label_net.setText(text) if (line.split('$up')[0] != line):
value = "%4.0f" %(self.ptm['values']['net']['up'])
line = line.split('$up')[0] + value + line.split('$up')[1]
text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.setText("net", text)
def swapText(self): def swapText(self):
"""function to set swap text""" """function to set swap text"""
full = self.swap_used + self.swap_free line = self.ptm['vars']['formats']['swap']
if (line.split('$swapgb')[0] != line):
mem = "%4.1f" % (self.ptm['values']['swap']['used'] / (1024.0 * 1024.0))
line = line.split('$swapgb')[0] + mem + line.split('$swapgb')[1]
if (line.split('$swapmb')[0] != line):
mem = "%i" % (self.ptm['values']['swap']['used'] / 1024.0)
line = line.split('$swapmb')[0] + mem + line.split('$swapmb')[1]
if (line.split('$swap')[0] != line):
try: try:
mem = 100 * self.swap_used / full mem = 100 * self.ptm['values']['swap']['used'] / (self.ptm['values']['swap']['free'] + self.ptm['values']['swap']['used'])
mem = "%5s" % (str(round(mem, 1))) mem = "%5.1f" % (round(mem, 1))
except: except:
mem = " N\\A" mem = " N\\A"
if (self.swapFormat.split('$swap')[0] != self.swapFormat): line = line.split('$swap')[0] + mem + line.split('$swap')[1]
line = self.swapFormat.split('$swap')[0] + mem + self.swapFormat.split('$swap')[1] text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
else: self.setText("swap", text)
line = self.swapFormat
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_swap.setText(text)
def tempText(self): def tempText(self):
"""function to set temperature text""" """function to set temperature text"""
line = self.tempFormat line = self.ptm['vars']['formats']['temp']
for i in range(len(self.tempNames)): for i in range(len(self.ptm['names']['temp'])):
if (line.split('$temp' + str(i))[0] != line): if (line.split('$temp' + str(i))[0] != line):
line = line.split('$temp'+str(i))[0] + self.temp[self.tempNames[i]] + line.split('$temp'+str(i))[1] line = line.split('$temp' + str(i))[0] + self.ptm['values']['temp'][self.ptm['names']['temp'][i]] + line.split('$temp' + str(i))[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] text = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
self.label_temp.setText(text) self.setText("temp", text)
def getCustom(self): # external functions
"""function to get output from custom command""" def addLabel(self, name=None, text=None, add=True):
commandOut = commands.getoutput(self.custom_command) """function to add new label"""
line = self.customFormat if (add):
line = line.split('$custom')[0] + commandOut + line.split('$custom')[1] self.ptm['labels'][name] = CustomPlasmaLabel(self.applet, name)
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1] self.ptm['layout'].addItem(self.ptm['labels'][name])
self.label_custom.setText(text) self.setText(name, text)
else:
self.setText(name, '')
self.ptm['layout'].removeItem(self.ptm['labels'][name])
@pyqtSignature("dataUpdated(const QString &, const Plasma::DataEngine::Data &)") def applySettings(self, name=None, ptm=None):
def dataUpdated(self, sourceName, data): """function to read settings"""
"""function to update label""" self.ptm[name] = ptm
self.dataengine.dataUpdated(sourceName, data) if (name == "names"):
for item in ['hdd', 'hddtemp', 'temp']:
for value in self.ptm['names'][item]:
self.ptm['values'][item][value] = 0.0
def connectToEngine(self):
"""function to connect to dataengines"""
self.ptm['dataengine']['ext'] = self.dataEngine("ext-sysmon")
self.ptm['dataengine']['system'] = self.dataEngine("systemmonitor")
self.ptm['dataengine']['time'] = self.dataEngine("time")
self.dataengine.connectToEngine(self.ptm['vars']['bools'], self.ptm['dataengine'],
self.ptm['vars']['app']['interval'], self.ptm['names'])
def disconnectFromSource(self):
"""function to disconnect from sources"""
for label in self.ptm['defaults']['format'].keys():
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()}
self.dataengine.disconnectFromSource(self.ptm['dataengine'], keys, label)
def reInit(self):
"""function to run reinit"""
self.reinit.reinit()
if (self.ptm['vars']['adv']['netdevBool'] == 0):
self.ptm['names']['net'] = self.setNetdev()
self.resize(10, 10)
# create dataengines
self.thread().wait(60000)
self.connectToEngine()
self.timer.setInterval(self.ptm['vars']['app']['interval'])
self.startPolling()
def setNetdev(self):
"""function to set network device"""
netdev = "lo"
netdir = self.ptm['vars']['adv']['netDir']
interfaces = QDir.entryList(QDir(netdir), QDir.Dirs | QDir.NoDotAndDotDot)
for device in interfaces:
if (str(device) != "lo"):
#try:
if True:
with open(netdir + '/' + str(device) + '/operstate', 'r') as stateFile:
if (stateFile.readline() == "up\n"):
netdev = str(device)
#except:
#pass
return netdev
def setText(self, name=None, text=None):
"""function to set text to labels"""
self.ptm['labels'][name].setText(text)
def textPrepare(self, name=None, text=None):
"""function to prepare text"""
line = self.ptm['vars']['formats'][name]
if (name == "custom"):
if (line.split('$custom')[0] != line):
line = line.split('$custom')[0] + text + line.split('$custom')[1]
elif (name == "gpu"):
if (line.split('$gpu')[0] != line):
line = line.split('$gpu')[0] + text + line.split('$gpu')[1]
elif (name == "gputemp"):
if (line.split('$gputemp')[0] != line):
line = line.split('$gputemp')[0] + text + line.split('$gputemp')[1]
elif (name == "player"):
if (line.split('$album')[0] != line):
line = line.split('$album')[0] + self.ptm['values']['player']['album'] + line.split('$album')[1]
if (line.split('$artist')[0] != line):
line = line.split('$artist')[0] + self.ptm['values']['player']['artist'] + line.split('$artist')[1]
if (line.split('$progress')[0] != line):
line = line.split('$progress')[0] + self.ptm['values']['player']['progress'] + line.split('$progress')[1]
if (line.split('$time')[0] != line):
line = line.split('$time')[0] + self.ptm['values']['player']['time'] + line.split('$time')[1]
if (line.split('$title')[0] != line):
line = line.split('$title')[0] + self.ptm['values']['player']['title'] + line.split('$title')[1]
elif (name == "time"):
if (line.split('$time')[0] != line):
line = line.split('$time')[0] + text + line.split('$time')[1]
elif (line.split('$isotime')[0] != line):
line = line.split('$isotime')[0] + text + line.split('$isotime')[1]
elif (line.split('$shorttime')[0] != line):
line = line.split('$shorttime')[0] + text + line.split('$shorttime')[1]
elif (line.split('$longtime')[0] != line):
line = line.split('$longtime')[0] + text + line.split('$longtime')[1]
elif (line.split('$custom')[0] != line):
line = line.split('$custom')[0] + text + line.split('$custom')[1]
elif (name == "uptime"):
if (line.split('$uptime')[0] != line):
line = line.split('$uptime')[0] + text + line.split('$uptime')[1]
elif (line.split('$custom')[0] != line):
line = line.split('$custom')[0] + text + line.split('$custom')[1]
output = self.ptm['vars']['app']['format'].split('$LINE')[0] + line + self.ptm['vars']['app']['format'].split('$LINE')[1]
return output

View File

@ -26,12 +26,11 @@ import commands
class PTMNotify: class PTMNotify:
def __init__(self, parent): def __init__(self, parent):
"""class definition""" """class definition"""
self.parent = parent
def init(self): def init(self, name=None):
"""function to init notification""" """function to init notification"""
content = self.initText(self.parent) content = self.initText(name)
self.createNotify(content) self.createNotify(content)
@ -47,27 +46,15 @@ class PTMNotify:
def createText(self, type): def createText(self, type):
"""function to create text""" """function to create text"""
text = "" text = ""
if (type == "system"): if (type == "battery"):
try: try:
text = text + "Kernel: %s\n" %(commands.getoutput("uname -rsm")) text = "%s" %(commands.getoutput("acpi -abi"))
text = text + "Hostname: %s\n" %(commands.getoutput("uname -n"))
text = text + "Whoami: %s\n" %(commands.getoutput("whoami"))
text = text + "Uptime: %s\n" %(commands.getoutput("uptime"))
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "processor"): elif (type == "disk"):
try: try:
output = commands.getoutput("grep 'model name' /proc/cpuinfo | head -1") for line in commands.getoutput("df -h --output='source,target,used,size,pcent' --exclude-type=fuseblk --exclude-type=tmpfs --exclude-type=devtmpfs").split("\n")[1:]:
text = text + "Model: %s\n" %(' '.join(output.split()[3:])) text = text + "%s (to %s): %s of %s (%s)\n" % (line.split()[0], line.split()[1], line.split()[2], line.split()[3], line.split()[4])
output = commands.getoutput("sar -u | tail -1")
text = text + "CPU Usage: %s%%\n" %(str(100-float(output.split()[-1])))
output = commands.getoutput("grep MHz /proc/cpuinfo | head -1")
text = text + "CPU Freq: %s MHz\n" %(str(int(float(output.split()[-1]))))
output = commands.getoutput("sensors -u")
text = text + "Temps:"
for line in output.split("\n"):
if (line.find("_input") > -1):
text = text + " %s\xb0C" %(str(round(float(line.split()[-1]), 0)))
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "graphical"): elif (type == "graphical"):
@ -82,13 +69,13 @@ class PTMNotify:
if (gpudev == 'nvidia'): if (gpudev == 'nvidia'):
output = commands.getoutput("nvidia-smi -q -d UTILIZATION | grep Gpu | tail -n1") output = commands.getoutput("nvidia-smi -q -d UTILIZATION | grep Gpu | tail -n1")
try: try:
value = "%5s" % (str(round(float(output.split()[2][:-1]), 1))) value = "%5.1f" % (round(float(output.split()[2]), 1))
except: except:
value = " N\A" value = " N\A"
elif (gpudev == 'ati'): elif (gpudev == 'ati'):
output = commands.getoutput("aticonfig --od-getclocks | grep load | tail -n1") output = commands.getoutput("aticonfig --od-getclocks | grep load | tail -n1")
try: try:
value = "%5s" % (str(round(float(output.split()[3][:-1]), 1))) value = "%5.1f" % (round(float(output.split()[3]), 1))
except: except:
value = " N\A" value = " N\A"
else: else:
@ -97,13 +84,13 @@ class PTMNotify:
if (gpudev == 'nvidia'): if (gpudev == 'nvidia'):
output = commands.getoutput("nvidia-smi -q -d TEMPERATURE | grep Gpu | tail -n1") output = commands.getoutput("nvidia-smi -q -d TEMPERATURE | grep Gpu | tail -n1")
try: try:
value = "%5s" % (str(round(float(output.split()[2][:-1]), 1))) value = "%5.1f" % (round(float(output.split()[2]), 1))
except: except:
value = " N\A" value = " N\A"
elif (gpudev == 'ati'): elif (gpudev == 'ati'):
output = commands.getoutput("aticonfig --od-gettemperature | grep Temperature | tail -n1") output = commands.getoutput("aticonfig --od-gettemperature | grep Temperature | tail -n1")
try: try:
value = "%5s" % (str(round(float(output.split()[3][:-1]), 1))) value = "%5.1f" % (round(float(output.split()[3]), 1))
except: except:
value = " N\A" value = " N\A"
else: else:
@ -114,51 +101,47 @@ class PTMNotify:
elif (type == "memory"): elif (type == "memory"):
try: try:
output = commands.getoutput("free -m -o").split("\n") output = commands.getoutput("free -m -o").split("\n")
memusage = int(output[1].split()[1]) - (int(output[1].split()[3]) + int(output[1].split()[5]) + int(output[1].split()[6])) memUsage = int(output[1].split()[1]) - (int(output[1].split()[3]) + int(output[1].split()[5]) + int(output[1].split()[6]))
text = text + "Memory: %s of %s (%s%%)\n" %(str(memusage), output[1].split()[1], str(int(100*memusage/int(output[1].split()[1])))) text = text + "Memory: %i of %s (%i%%)\n" % (memUsage, output[1].split()[1], int(100*memUsage/int(output[1].split()[1])))
text = text + "Swap: %s of %s (%s%%)\n" %(output[2].split()[2], output[2].split()[1], str(int(100*int(output[2].split()[2])/int(output[2].split()[1])))) text = text + "Swap: %s of %s (%i%%)\n" % (output[2].split()[2], output[2].split()[1], int(100*int(output[2].split()[2])/int(output[2].split()[1])))
output = commands.getoutput("swapon --show").split("\n") output = commands.getoutput("swapon --show").split("\n")
text = text + "Swap Device: %s (%s)" % (output[1].split()[0], output[1].split()[1]) text = text + "Swap Device: %s (%s)" % (output[1].split()[0], output[1].split()[1])
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "disk"):
try:
output = commands.getoutput("df -h --output='source,target,used,size,pcent' --exclude-type=fuseblk --exclude-type=tmpfs --exclude-type=devtmpfs").split("\n")[1:]
for line in output:
text = text + "%s (to %s): %s of %s (%s)\n" %(line.split()[0], line.split()[1], line.split()[2], line.split()[3], line.split()[4])
except:
text = "Something wrong"
elif (type == "network"): elif (type == "network"):
try: try:
output = commands.getoutput("ifconfig -a -s").split("\n")[1:] output = commands.getoutput("ifconfig -a -s").split("\n")[1:]
text = text + "Devices:" devices = [line.split()[0] for line in output]
for line in output: text = text + "Devices: %s\n" % (' '.join(devices))
text = text + " %s" %(line.split()[0]) for dev in devices:
output = commands.getoutput("ifconfig -a -s " + self.parent.parent.netdev + " && sleep 0.2 && ifconfig -a -s " + self.parent.parent.netdev).split("\n") output = commands.getoutput("ifconfig -a -s " + dev + " && sleep 0.2 && ifconfig -a -s " + dev).split("\n")
download = int((int(output[3].split()[2]) - int(output[1].split()[2])) / (0.2 * 1024)) download = int((int(output[3].split()[2]) - int(output[1].split()[2])) / (0.2 * 1024))
upload = int((int(output[3].split()[6]) - int(output[1].split()[6])) / (0.2 * 1024)) upload = int((int(output[3].split()[6]) - int(output[1].split()[6])) / (0.2 * 1024))
text = text + "\n%s: %s/%s KB/s\n" %(self.parent.parent.netdev, download, upload) text = text + "%s: %i/%i KB/s" % (dev, download, upload)
output = commands.getoutput("ifconfig " + self.parent.parent.netdev + " | grep 'inet '").split()[1] output = commands.getoutput("ifconfig " + dev + " | grep 'inet ' || echo ' inet Null'").split()[1]
text = text + "IP: %s\n" %(output[:-1]) text = text + " (IP: %s)\n" % (output)
output = commands.getoutput("wget http://checkip.dyndns.org/ -q -O - | awk '{print $6}' | sed 's/<.*>//g'") output = commands.getoutput("wget -qO- http://ifconfig.me/ip")
text = text + "External IP: %s" %(output[:-1]) text = text + "External IP: %s" % (output)
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "battery"): elif (type == "player"):
try:
text = text + "%s" %(commands.getoutput("acpi -abi"))
except:
text = "Something wrong"
elif (type == "musicplayer"):
try: try:
artist = "N\\A" artist = "N\\A"
album = "N\\A" album = "N\\A"
title = "N\\A" title = "N\\A"
if (self.parent.parent.player_name == 0): if (len(commands.getoutput("pgrep amarok")) > 0):
player = "amarok"
elif (len(commands.getoutput("pgrep mpd")) > 0):
player = "mpd"
elif (len(commands.getoutput("pgrep qmmp")) > 0):
player = "qmmp"
else:
player = ""
if (player == "amarok"):
artist = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep albumartist: | cut -c14-") artist = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep albumartist: | cut -c14-")
album = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep album: | cut -c8-") album = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep album: | cut -c8-")
title = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep title: | cut -c8-") title = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep title: | cut -c8-")
elif (self.parent.parent.player_name == 1): elif (player == "mpd"):
output = commands.getoutput("echo 'currentsong\nclose' | curl --connect-timeout 1 -fsm 3 telnet://localhost:6600 2> /dev/null") output = commands.getoutput("echo 'currentsong\nclose' | curl --connect-timeout 1 -fsm 3 telnet://localhost:6600 2> /dev/null")
for line in output.split("\n"): for line in output.split("\n"):
if (line.split(": ")[0] == "Artist"): if (line.split(": ")[0] == "Artist"):
@ -167,107 +150,71 @@ class PTMNotify:
album = line.split(": ")[1] album = line.split(": ")[1]
elif (line.split(": ")[0] == "Title"): elif (line.split(": ")[0] == "Title"):
title = line.split(": ")[1] title = line.split(": ")[1]
elif (self.parent.parent.player_name == 2): elif (player == "qmmp"):
artist = commands.getoutput("qmmp --nowplaying '%if(%p,%p,Unknown)' 2> /dev/null") artist = commands.getoutput("qmmp --nowplaying '%if(%p,%p,Unknown)' 2> /dev/null")
album = commands.getoutput("qmmp --nowplaying '%if(%a,%a,Unknown)' 2> /dev/null") album = commands.getoutput("qmmp --nowplaying '%if(%a,%a,Unknown)' 2> /dev/null")
title = commands.getoutput("qmmp --nowplaying '%if(%t,%t,Unknown)' 2> /dev/null") title = commands.getoutput("qmmp --nowplaying '%if(%t,%t,Unknown)' 2> /dev/null")
text = text + "Artist: %s\nAlbum: %s\nTitle: %s" % (artist, album, title) text = text + "Artist: %s\nAlbum: %s\nTitle: %s" % (artist, album, title)
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "processor"):
try:
output = commands.getoutput("grep 'model name' /proc/cpuinfo | head -1")
text = text + "Model: %s\n" % (' '.join(output.split()[3:]))
output = commands.getoutput("sar -u | tail -1")
text = text + "CPU Usage: %5.1f%%\n" % (100-float(output.split()[-1]))
output = commands.getoutput("grep MHz /proc/cpuinfo | head -1")
text = text + "CPU Freq: %i MHz\n" % (int(float(output.split()[-1])))
output = commands.getoutput("sensors -u")
text = text + "Temps:"
for line in output.split("\n"):
if (line.find("_input") > -1):
text = text + " %3.0f\xb0C" % (round(float(line.split()[-1]), 0))
except:
text = "Something wrong"
elif (type == "system"):
try:
text = text + "Kernel: %s\n" % (commands.getoutput("uname -rsm"))
text = text + "Hostname: %s\n" % (commands.getoutput("uname -n"))
text = text + "Whoami: %s\n" % (commands.getoutput("whoami"))
text = text + "Uptime: %s\n" % (commands.getoutput("uptime"))
except:
text = "Something wrong"
content = [type, text] content = [type, text]
return content return content
def initText(self, sender): def initText(self, name):
"""function to send text""" """function to send text"""
try: if (name == "bat"):
if (sender == self.parent.parent.label_time): return self.createText("battery")
content = self.createText("system") elif (name == "cpu"):
return content return self.createText("processor")
except: elif (name == "cpuclock"):
pass return self.createText("processor")
try: elif (name == "custom"):
if (sender == self.parent.parent.label_uptime): return self.createText("system")
content = self.createText("system") elif (name == "gpu"):
return content return self.createText("graphical")
except: elif (name == "gputemp"):
pass return self.createText("graphical")
try: elif (name == "hdd"):
if (sender == self.parent.parent.label_cpu): return self.createText("disk")
content = self.createText("processor") elif (name == "hddtemp"):
return content return self.createText("disk")
except: elif (name == "mem"):
pass return self.createText("memory")
try: elif (name == "net"):
if (sender == self.parent.parent.label_cpuclock): return self.createText("network")
content = self.createText("processor") elif (name == "player"):
return content return self.createText("player")
except: elif (name == "swap"):
pass return self.createText("memory")
try: elif (name == "temp"):
if (sender == self.parent.parent.label_temp): return self.createText("processor")
content = self.createText("processor") elif (name == "time"):
return content return self.createText("system")
except: elif (name == "uptime"):
pass return self.createText("system")
try: else:
if (sender == self.parent.parent.label_gpu): return None
content = self.createText("graphical")
return content
except:
pass
try:
if (sender == self.parent.parent.label_gputemp):
content = self.createText("graphical")
return content
except:
pass
try:
if (sender == self.parent.parent.label_mem):
content = self.createText("memory")
return content
except:
pass
try:
if (sender == self.parent.parent.label_swap):
content = self.createText("memory")
return content
except:
pass
try:
if (sender == self.parent.parent.label_hdd):
content = self.createText("disk")
return content
except:
pass
try:
if (sender == self.parent.parent.label_hddtemp):
content = self.createText("disk")
return content
except:
pass
try:
if (sender == self.parent.parent.label_net):
content = self.createText("network")
return content
except:
pass
try:
if (sender == self.parent.parent.label_bat):
content = self.createText("battery")
return content
except:
pass
try:
if (sender == self.parent.parent.label_player):
content = self.createText("musicplayer")
return content
except:
pass
try:
if (sender == self.parent.parent.label_custom):
content = self.createText("system")
return content
except:
pass

View File

@ -19,253 +19,76 @@
from PyQt4.QtCore import * from PyQt4.QtCore import *
from PyQt4.QtGui import * from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
import config import config
import ptmnotify
class NewPlasmaLabel(Plasma.Label):
"""new Label with defined clicked() event"""
def __init__(self, applet, parent):
"""class definition"""
Plasma.Label.__init__(self, applet)
self.parent = parent
self.notify = ptmnotify.PTMNotify(self)
def mousePressEvent(self, event):
"""mouse click event"""
if (event.button() == Qt.LeftButton):
self.notify.init()
class Reinit(): class Reinit():
def __init__(self, parent): def __init__(self, parent, defaults=None):
"""class definition""" """class definition"""
self.parent = parent self.parent = parent
self.defaults = defaults
self.labels = defaults['format'].keys()
def reinit(self, confAccept=False): def reinit(self):
"""function to reinitializate widget""" """function to reinitializate widget"""
settings = config.Config(self.parent) settings = config.Config(self.parent)
self.parent.interval = settings.get('interval', 2000).toInt()[0] ptmVars = {}
self.parent.font_family = str(settings.get('font_family', 'Terminus'))
self.parent.font_size = settings.get('font_size', 12).toInt()[0]
self.parent.font_color = str(settings.get('font_color', '#000000'))
self.parent.font_style = str(settings.get('font_style', 'normal'))
self.parent.font_weight = settings.get('font_weight', 400).toInt()[0]
self.parent.formatLine = "<pre><p align=\"center\"><span style=\" font-family:'" + self.parent.font_family + "'; font-style:" + self.parent.font_style
self.parent.formatLine = self.parent.formatLine + "; font-size:" + str(self.parent.font_size) + "pt; font-weight:" + str(self.parent.font_weight)
self.parent.formatLine = self.parent.formatLine + "; color:" + self.parent.font_color + ";\">$LINE</span></p></pre>"
self.parent.custom_time = str(settings.get('custom_time', '$hh:$mm')) ptmVars['adv'] = {}
self.parent.custom_uptime = str(settings.get('custom_uptime', '$ds,$hs,$ms')) ptmVars['adv']['acDev'] = str(settings.get('ac_device', '/sys/class/power_supply/AC/online'))
self.parent.tempNames = [] ptmVars['adv']['batDev'] = str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity'))
self.parent.temp = {} ptmVars['adv']['customTime'] = str(settings.get('custom_time', '$hh:$mm'))
for item in str(settings.get('temp_device', '')).split('@@'): ptmVars['adv']['customUptime'] = str(settings.get('custom_uptime', '$dd,$hh,$mm'))
self.parent.tempNames.append(item) ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0]
self.parent.temp[item] =" 0.0" ptmVars['adv']['netDir'] = str(settings.get('netdir', '/sys/class/net'))
self.parent.mountNames = [] ptmVars['adv']['player'] = str(settings.get('player_name', "amarok"))
self.parent.mount = {}
for item in str(settings.get('mount', '/')).split('@@'):
self.parent.mountNames.append(item)
self.parent.mount[item] =" 0.0"
self.parent.hddNames = []
self.parent.hdd = {}
for item in str(settings.get('hdd', '/dev/sda')).split('@@'):
self.parent.hddNames.append(item)
self.parent.hdd[item] =" 0.0"
self.parent.netdir = str(settings.get('netdir', '/sys/class/net'))
self.parent.netdevBool = settings.get('netdevBool', 0).toInt()[0]
self.parent.custom_netdev = str(settings.get('custom_netdev', 'lo'))
self.parent.battery_device = str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity'))
self.parent.ac_device = str(settings.get('ac_device', '/sys/class/power_supply/AC/online'))
self.parent.player_name = settings.get('player_name', 0).toInt()[0]
self.parent.custom_command = str(settings.get('custom_command', 'wget -qO- http://ifconfig.me/ip'))
self.parent.tooltipNum = settings.get('tooltip_num', 100).toInt()[0] ptmVars['app'] = {}
self.parent.tooltipColors['cpu'] = str(settings.get('cpu_color', '#ff0000')) ptmVars['app']['format'] = "<pre><p align=\"center\"><span style=\" font-family:'" + str(settings.get('font_family', 'Terminus')) +\
self.parent.tooltipColors['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00')) "'; font-style:" + str(settings.get('font_style', 'normal')) + "; font-size:" + str(settings.get('font_size', 12)) +\
self.parent.tooltipColors['mem'] = str(settings.get('mem_color', '#0000ff')) "pt; font-weight:" + str(settings.get('font_weight', 400)) + "; color:" + str(settings.get('font_color', '#000000')) +\
self.parent.tooltipColors['swap'] = str(settings.get('swap_color', '#ffff00')) ";\">$LINE</span></p></pre>"
self.parent.tooltipColors['down'] = str(settings.get('down_color', '#00ffff')) ptmVars['app']['interval'] = settings.get('interval', 2000).toInt()[0]
self.parent.tooltipColors['up'] = str(settings.get('up_color', '#ff00ff')) ptmVars['app']['order'] = str(settings.get('label_order', '1345'))
self.parent.tooltipReq = [] ptmVars['tooltip'] = {}
self.parent.label_order = str(settings.get('label_order', '1345')) ptmVars['tooltip']['colors'] = {}
for label in self.parent.dict_orders.values(): ptmVars['tooltip']['colors']['cpu'] = str(settings.get('cpu_color', '#ff0000'))
if ((label == 'cpu') or (label == 'mem') or (label == 'swap') or (label == 'net')): ptmVars['tooltip']['colors']['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00'))
exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 2).toInt()[0]') ptmVars['tooltip']['colors']['mem'] = str(settings.get('mem_color', '#0000ff'))
ptmVars['tooltip']['colors']['swap'] = str(settings.get('swap_color', '#ffff00'))
ptmVars['tooltip']['colors']['down'] = str(settings.get('down_color', '#00ffff'))
ptmVars['tooltip']['colors']['up'] = str(settings.get('up_color', '#ff00ff'))
ptmVars['tooltip']['num'] = settings.get('tooltip_num', 100).toInt()[0]
ptmVars['bools'] = {}
for label in self.labels:
ptmVars['bools'][label] = settings.get(self.defaults['confBool'][label], self.defaults['bool'][label]).toInt()[0]
ptmNames = {}
ptmNames['hdd'] = str(settings.get('mount', '/')).split('@@')
ptmNames['hddtemp'] = str(settings.get('hdd', '/dev/sda')).split('@@')
if (ptmVars['adv']['netdevBool'] > 0):
ptmNames['net'] = str(settings.get('custom_netdev', 'lo'))
else: else:
exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 0).toInt()[0]') ptmNames['net'] = ""
ptmNames['temp'] = str(settings.get('temp_device', '')).split('@@')
self.parent.applySettings('names', ptmNames)
# labels ptmVars['formats'] = {}
for order in self.parent.label_order: ptmVars['tooltip']['required'] = []
if (order == "1"): for order in ptmVars['app']['order']:
if (self.parent.cpuBool > 0): label = self.defaults['order'][order]
self.parent.cpuFormat = str(settings.get('cpuFormat', '[cpu: $cpu%]')) if (ptmVars['bools'][label] > 0):
self.parent.label_cpu = NewPlasmaLabel(self.parent.applet, self.parent) ptmVars['formats'][label] = str(settings.get(self.defaults['confFormat'][label], self.defaults['format'][label]))
line = self.parent.cpuFormat text = ptmVars['app']['format'].split('$LINE')[0] + ptmVars['formats'][label] + ptmVars['app']['format'].split('$LINE')[1]
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] self.parent.addLabel(label, text, True)
self.parent.label_cpu.setText(text) if ((label in ['cpu', 'cpuclock', 'mem', 'net', 'swap']) and (ptmVars['bools'][label] == 2)):
self.parent.layout.addItem(self.parent.label_cpu) if (label == 'net'):
if (self.parent.cpuBool == 2): ptmVars['tooltip']['required'].append("down")
self.parent.tooltipReq.append('cpu') ptmVars['tooltip']['required'].append("up")
elif (order == "2"):
if (self.parent.tempBool > 0):
self.parent.tempFormat = str(settings.get('tempFormat', '[temp: $temp0&deg;C]'))
self.parent.label_temp = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.tempFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_temp.setText(text)
self.parent.layout.addItem(self.parent.label_temp)
elif (order == "3"):
if (self.parent.memBool > 0):
self.parent.memFormat = str(settings.get('memFormat', '[mem: $mem%]'))
self.parent.label_mem = NewPlasmaLabel(self.parent.applet, self.parent)
if (self.parent.memFormat.split('$memmb')[0] != self.parent.memFormat):
self.parent.memInMb = True
elif (self.parent.memFormat.split('$mem')[0] != self.parent.memFormat):
self.parent.memInMb = False
self.parent.mem_used = 0.0
self.parent.mem_free = 1.0
self.parent.mem_uf = 0.0
line = self.parent.memFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_mem.setText(text)
self.parent.layout.addItem(self.parent.label_mem)
if (self.parent.memBool == 2):
self.parent.tooltipReq.append('mem')
elif (order == "4"):
if (self.parent.swapBool > 0):
self.parent.swapFormat = str(settings.get('swapFormat', '[swap: $swap%]'))
self.parent.label_swap = NewPlasmaLabel(self.parent.applet, self.parent)
if (self.parent.swapFormat.split('$swapmb')[0] != self.parent.swapFormat):
self.parent.swapInMb = True
elif (self.parent.swapFormat.split('$swap')[0] != self.parent.swapFormat):
self.parent.swapInMb = False
self.parent.swap_free = 1.0
self.parent.swap_used = 0.0
line = self.parent.swapFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_swap.setText(text)
self.parent.layout.addItem(self.parent.label_swap)
if (self.parent.swapBool == 2):
self.parent.tooltipReq.append('swap')
elif (order == "5"):
if (self.parent.netBool > 0):
self.parent.netNonFormat = str(settings.get('netNonFormat', '[net: $down/$upKB/s]'))
self.parent.label_net = NewPlasmaLabel(self.parent.applet, self.parent)
if (self.parent.netdevBool > 0):
self.parent.netdev = self.parent.custom_netdev
else: else:
self.parent.netdev = self.parent.setupNetdev() ptmVars['tooltip']['required'].append(label)
if (self.parent.netNonFormat.split('$netdev')[0] != self.parent.netNonFormat): self.parent.applySettings('vars', ptmVars)
self.parent.netFormat = self.parent.netNonFormat.split('$netdev')[0] + self.parent.netdev + self.parent.netNonFormat.split('$netdev')[1]
else:
self.parent.netFormat = self.parent.netNonFormat
line = self.parent.netFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_net.setText(text)
self.parent.layout.addItem(self.parent.label_net)
if (self.parent.netBool == 2):
self.parent.tooltipReq.append('down')
self.parent.tooltipReq.append('up')
elif (order == "6"):
if (self.parent.batBool > 0):
self.parent.batFormat = str(settings.get('batFormat', '[bat: $bat%$ac]'))
self.parent.label_bat = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.batFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_bat.setText(text)
self.parent.layout.addItem(self.parent.label_bat)
elif (order == "7"):
if (self.parent.cpuclockBool > 0):
self.parent.cpuclockFormat = str(settings.get('cpuclockFormat', '[mhz: $cpucl]'))
self.parent.label_cpuclock = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.cpuclockFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_cpuclock.setText(text)
self.parent.layout.addItem(self.parent.label_cpuclock)
if (self.parent.cpuclockBool == 2):
self.parent.tooltipReq.append('cpuclock')
elif (order == "8"):
if (self.parent.uptimeBool > 0):
self.parent.uptimeFormat = str(settings.get('uptimeFormat', '[uptime: $uptime]'))
self.parent.label_uptime = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.uptimeFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_uptime.setText(text)
self.parent.layout.addItem(self.parent.label_uptime)
elif (order == "9"):
if (self.parent.gpuBool > 0):
self.parent.gpuFormat = str(settings.get('gpuFormat', '[gpu: $gpu%]'))
self.parent.label_gpu = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.gpuFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_gpu.setText(text)
self.parent.layout.addItem(self.parent.label_gpu)
elif (order == "a"):
if (self.parent.gputempBool > 0):
self.parent.gputempFormat = str(settings.get('gputempFormat', '[gpu temp: $gputemp&deg;C]'))
self.parent.label_gputemp = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.gputempFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_gputemp.setText(text)
self.parent.layout.addItem(self.parent.label_gputemp)
elif (order == "b"):
if (self.parent.hddBool > 0):
self.parent.hddFormat = str(settings.get('hddFormat', '[hdd: $hdd0%]'))
self.parent.label_hdd = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.hddFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_hdd.setText(text)
self.parent.layout.addItem(self.parent.label_hdd)
elif (order == "c"):
if (self.parent.hddtempBool > 0):
self.parent.hddtempFormat = str(settings.get('hddtempFormat', '[hdd temp: $hddtemp0&deg;C]'))
self.parent.label_hddtemp = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.hddtempFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_hddtemp.setText(text)
self.parent.layout.addItem(self.parent.label_hddtemp)
elif (order == "d"):
if (self.parent.playerBool > 0):
self.parent.playerFormat = str(settings.get('playerFormat', '[$artist - $title]'))
self.parent.label_player = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.playerFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_player.setText(text)
self.parent.layout.addItem(self.parent.label_player)
elif (order == "e"):
if (self.parent.timeBool > 0):
self.parent.timeFormat = str(settings.get('timeFormat', '[$time]'))
self.parent.label_time = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.timeFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_time.setText(text)
self.parent.layout.addItem(self.parent.label_time)
elif (order == "f"):
if (self.parent.customBool > 0):
self.parent.customFormat = str(settings.get('customFormat', '[$custom]'))
self.parent.label_custom = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.customFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_custom.setText(text)
self.parent.layout.addItem(self.parent.label_custom)
if not confAccept:
self.parent.layout.setContentsMargins(1, 1, 1, 1)
self.parent.applet.setLayout(self.parent.layout)
self.parent.theme = Plasma.Svg(self.parent)
self.parent.theme.setImagePath("widgets/background")
self.parent.setBackgroundHints(Plasma.Applet.DefaultBackground)
self.parent.resize(10, 10)
# create dataengines
self.parent.thread().wait(60000)
self.parent.dataengine.connectToEngine()
self.parent.timer.setInterval(self.parent.interval)
self.parent.startPolling()

View File

@ -28,27 +28,26 @@ class Tooltip():
self.parent = parent self.parent = parent
def addValue(self, type, value=0.0, tooltipNum=100): def createGraphic(self, ptmVars, ptmTooltip, widget):
"""function to add value to list"""
if (len(self.parent.tooltipValues[type]) > tooltipNum):
self.parent.tooltipValues[type] = self.parent.tooltipValues[type][1:]
self.parent.tooltipValues[type].append(value)
def createGraphic(self, types, colors, values, widget):
"""function to create graph""" """function to create graph"""
widget.clear() widget.clear()
maxOne = [100.0, 100.0]
pen = QPen() pen = QPen()
bounds = ptmTooltip['bounds']
colors = ptmVars['colors']
types = ptmVars['required']
values = ptmTooltip['values']
maxOne = [100.0, 100.0]
bounds['down'] = 1.0
for value in values['down']:
if (bounds['down'] < value):
bounds['down'] = value
for value in values['up']:
if (bounds['down'] < value):
bounds['down'] = value
bounds['up'] = bounds['down']
down = False down = False
for type in types: for type in types:
bound = [values[type][0], values[type][0]] norm = [maxOne[0] / len(values[type]), maxOne[1] / (1.5 * bounds[type])]
for value in values[type]:
if (value < bound[0]):
bound[0] = value
elif (value > bound[1]):
bound[1] = value
norm = [maxOne[0] / len(values[type]), maxOne[1] / (1.5*(bound[1] - bound[0]))]
pen.setColor(QColor(colors[type])) pen.setColor(QColor(colors[type]))
if (down): if (down):
shift = (types.index(type) - 1) * maxOne[0] shift = (types.index(type) - 1) * maxOne[0]
@ -56,9 +55,9 @@ class Tooltip():
shift = types.index(type) * maxOne[0] shift = types.index(type) * maxOne[0]
for i in range(len(values[type])-1): for i in range(len(values[type])-1):
x1 = i * norm[0] + shift x1 = i * norm[0] + shift
y1 = -(values[type][i] - bound[0]) * norm[1] y1 = -values[type][i] * norm[1]
x2 = (i + 1) * norm[0] + shift x2 = (i + 1) * norm[0] + shift
y2 = -(values[type][i+1] - bound[0]) * norm[1] y2 = -values[type][i+1] * norm[1]
widget.addLine(x1, y1, x2, y2, pen) widget.addLine(x1, y1, x2, y2, pen)
if (type == 'down'): if (type == 'down'):
down = True down = True

View File

@ -34,7 +34,7 @@ class Util():
try: try:
os.mkdir(name) os.mkdir(name)
except: except:
print 'Failed to create directory: ' + name print ('Failed to create directory: ' + name)
def kdeHome(self): def kdeHome(self):
@ -42,9 +42,8 @@ class Util():
def createNotifyrc(self): def createNotifyrc(self):
print '[%s] creating notifyrc' % (self.applet._name) print ('[%s] creating notifyrc' % (self.applet._name))
self.createDirectory(self.kdeHome() + 'share/apps/%s' % self.applet._name) self.createDirectory(self.kdeHome() + 'share/apps/%s' % self.applet._name)
source = self.applet.package().path() + 'contents/misc/%s.notifyrc' % self.applet._name source = self.applet.package().path() + 'contents/misc/%s.notifyrc' % self.applet._name
destination = self.kdeHome() + 'share/apps/%s/%s.notifyrc' % (self.applet._name, self.applet._name) destination = self.kdeHome() + 'share/apps/%s/%s.notifyrc' % (self.applet._name, self.applet._name)
copyfile(source, destination) copyfile(source, destination)
@ -52,7 +51,6 @@ class Util():
def createConfig(self): def createConfig(self):
self.createDirectory(self.kdeHome() + 'share/apps/%s' % self.applet._name) self.createDirectory(self.kdeHome() + 'share/apps/%s' % self.applet._name)
source = self.applet.package().path() + 'contents/misc/%s.ini' % self.applet._name source = self.applet.package().path() + 'contents/misc/%s.ini' % self.applet._name
destination = self.kdeHome() + 'share/apps/%s/%s.ini' % (self.applet._name, self.applet._name) destination = self.kdeHome() + 'share/apps/%s/%s.ini' % (self.applet._name, self.applet._name)
copyfile(source, destination) copyfile(source, destination)

View File

@ -19,7 +19,7 @@
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>575</width> <width>575</width>
<height>500</height> <height>593</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
@ -200,7 +200,7 @@ $custom - custom format</string>
<string>$cpu - total load CPU, % <string>$cpu - total load CPU, %
$cpu0 - load CPU for core 0, % $cpu0 - load CPU for core 0, %
... ...
$cpu7 - load CPU for core 7, %</string> $cpu9 - load CPU for core 9, %</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -264,7 +264,7 @@ $cpu7 - load CPU for core 7, %</string>
<string>$cpucl - average CPU clock, MHz <string>$cpucl - average CPU clock, MHz
$cpucl0 - CPU clock for core 0, MHz $cpucl0 - CPU clock for core 0, MHz
... ...
$cpucl7 - CPU clock for core 7, MHz</string> $cpucl9 - CPU clock for core 9, MHz</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -500,7 +500,8 @@ $cpucl7 - CPU clock for core 7, MHz</string>
<widget class="QLineEdit" name="lineEdit_mem"> <widget class="QLineEdit" name="lineEdit_mem">
<property name="toolTip"> <property name="toolTip">
<string>$mem - RAM usage, % <string>$mem - RAM usage, %
$memmb - RAM usage, MB</string> $memmb - RAM usage, MB
$memgb - RAM usage, GB</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -562,7 +563,8 @@ $memmb - RAM usage, MB</string>
<widget class="QLineEdit" name="lineEdit_swap"> <widget class="QLineEdit" name="lineEdit_swap">
<property name="toolTip"> <property name="toolTip">
<string>$swap - swap usage, % <string>$swap - swap usage, %
$swapmb - swap usage, MB</string> $swapmb - swap usage, MB
$swapgb - swap usage, GB</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -1037,9 +1039,12 @@ $s - seconds w\o zero</string>
<item> <item>
<widget class="QLineEdit" name="lineEdit_uptimeFormat"> <widget class="QLineEdit" name="lineEdit_uptimeFormat">
<property name="toolTip"> <property name="toolTip">
<string>$ds - uptime days <string>$dd - uptime days
$hs - uptime hours $d - uptime days without zero
$ms - uptime minutes</string> $hh - uptime hours
$h - uptime hours without zero
$mm - uptime minutes
$m - uptime minutes without zero</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -1372,31 +1377,6 @@ del - remove item</string>
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_customCommand">
<item>
<widget class="QLabel" name="label_customCommand">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Custom command</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_customCommand">
<property name="toolTip">
<string>Command to run, example:
wget -qO- http://ifconfig.me/ip - get external IP</string>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<spacer name="spacer_advanced"> <spacer name="spacer_advanced">
<property name="orientation"> <property name="orientation">
@ -1412,7 +1392,7 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tooltip">
<attribute name="title"> <attribute name="title">
<string>Tooltip</string> <string>Tooltip</string>
</attribute> </attribute>
@ -2055,6 +2035,213 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="dataengine">
<attribute name="title">
<string>DataEngine</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QHBoxLayout" name="layout_gpudev">
<item>
<widget class="QLabel" name="label_gpudev">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>GPU device</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_gpudev">
<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>auto</string>
</property>
</item>
<item>
<property name="text">
<string>nvidia</string>
</property>
</item>
<item>
<property name="text">
<string>ati</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_hdddev">
<item>
<widget class="QLabel" name="label_hdddev">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_hdddev">
<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>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_mpdaddress">
<item>
<widget class="QLabel" name="label_mpdaddress">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>MPD address</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_mpdaddress">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_mpdport">
<item>
<widget class="QLabel" name="label_mpdport">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>MPD port</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_mpdport">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>19</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="spinBox_mpdport">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>50000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>6600</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_customCommand">
<item>
<widget class="QLabel" name="label_customCommand">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Custom command</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_customCommand">
<property name="toolTip">
<string>Custom command to run</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="spacer_dataengine">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>391</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -2130,7 +2317,6 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
<tabstop>lineEdit_batdev</tabstop> <tabstop>lineEdit_batdev</tabstop>
<tabstop>lineEdit_acdev</tabstop> <tabstop>lineEdit_acdev</tabstop>
<tabstop>comboBox_playerSelect</tabstop> <tabstop>comboBox_playerSelect</tabstop>
<tabstop>lineEdit_customCommand</tabstop>
<tabstop>spinBox_tooltipNum</tabstop> <tabstop>spinBox_tooltipNum</tabstop>
<tabstop>kcolorcombo_cpu</tabstop> <tabstop>kcolorcombo_cpu</tabstop>
<tabstop>kcolorcombo_cpuclock</tabstop> <tabstop>kcolorcombo_cpuclock</tabstop>
@ -2144,6 +2330,11 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
<tabstop>kcolorcombo</tabstop> <tabstop>kcolorcombo</tabstop>
<tabstop>comboBox_style</tabstop> <tabstop>comboBox_style</tabstop>
<tabstop>spinBox_weight</tabstop> <tabstop>spinBox_weight</tabstop>
<tabstop>comboBox_gpudev</tabstop>
<tabstop>comboBox_hdddev</tabstop>
<tabstop>lineEdit_mpdaddress</tabstop>
<tabstop>spinBox_mpdport</tabstop>
<tabstop>lineEdit_customCommand</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -3,14 +3,14 @@ IconName=system
Name=PyTextMonitor Name=PyTextMonitor
Comment=PyTextMonitor information Comment=PyTextMonitor information
[Event/system] [Event/battery]
Name=System information Name=Battery information
Comment=System information Comment=Battery information
Action=Popup Action=Popup
[Event/processor] [Event/disk]
Name=Processor information Name=Disk information
Comment=Processor information Comment=Disk information
Action=Popup Action=Popup
[Event/graphical] [Event/graphical]
@ -23,27 +23,22 @@ Name=Memory information
Comment=Memory information Comment=Memory information
Action=Popup Action=Popup
[Event/disk]
Name=Disk information
Comment=Disk information
Action=Popup
[Event/network] [Event/network]
Name=Network information Name=Network information
Comment=Network information Comment=Network information
Action=Popup Action=Popup
[Event/battery] [Event/player]
Name=Battery information
Comment=Battery information
Action=Popup
[Event/graphinfo]
Name=Graphical Information
Comment=Graphical Information
Action=Popup
[Event/musicplayer]
Name=Now playing Name=Now playing
Comment=Now playing Comment=Now playing
Action=Popup Action=Popup
[Event/processor]
Name=Processor information
Comment=Processor information
Action=Popup
[Event/system]
Name=System information
Comment=System information
Action=Popup

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n" "Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n"
"POT-Creation-Date: 2014-04-02 20:48+0400\n" "POT-Creation-Date: 2014-04-05 19:13+0400\n"
"PO-Revision-Date: 2014-04-02 20:49+0400\n" "PO-Revision-Date: 2014-04-05 19:13+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n" "Language: ru\n"
@ -92,12 +92,12 @@ msgid ""
"$cpu - total load CPU, %\n" "$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n" "$cpu0 - load CPU for core 0, %\n"
"...\n" "...\n"
"$cpu7 - load CPU for core 7, %" "$cpu9 - load CPU for core 9, %"
msgstr "" msgstr ""
"$cpu - total load CPU, %\n" "$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n" "$cpu0 - load CPU for core 0, %\n"
"...\n" "...\n"
"$cpu7 - load CPU for core 7, %" "$cpu9 - load CPU for core 9, %"
#. i18n: file: ui/configwindow.ui:251 #. i18n: file: ui/configwindow.ui:251
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
@ -112,12 +112,12 @@ msgid ""
"$cpucl - average CPU clock, MHz\n" "$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n" "$cpucl0 - CPU clock for core 0, MHz\n"
"...\n" "...\n"
"$cpucl7 - CPU clock for core 7, MHz" "$cpucl9 - CPU clock for core 9, MHz"
msgstr "" msgstr ""
"$cpucl - average CPU clock, MHz\n" "$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n" "$cpucl0 - CPU clock for core 0, MHz\n"
"...\n" "...\n"
"$cpucl7 - CPU clock for core 7, MHz" "$cpucl9 - CPU clock for core 9, MHz"
#. i18n: file: ui/configwindow.ui:315 #. i18n: file: ui/configwindow.ui:315
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
@ -162,70 +162,76 @@ msgstr "$gputemp - physical temperature on GPU"
msgid "Memory" msgid "Memory"
msgstr "Memory" msgstr "Memory"
#. i18n: file: ui/configwindow.ui:503 #. i18n: file: ui/configwindow.ui:504
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71 #: rc.cpp:71
#, no-c-format #, no-c-format
msgid "" msgid ""
"$mem - RAM usage, %\n" "$mem - RAM usage, %\n"
"$memmb - RAM usage, MB" "$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr "" msgstr ""
"$mem - RAM usage, %\n" "$mem - RAM usage, %\n"
"$memmb - RAM usage, MB" "$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
#. i18n: file: ui/configwindow.ui:551 #. i18n: file: ui/configwindow.ui:552
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75 #: rc.cpp:76
msgid "Swap" msgid "Swap"
msgstr "Swap" msgstr "Swap"
#. i18n: file: ui/configwindow.ui:565 #. i18n: file: ui/configwindow.ui:567
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79 #: rc.cpp:80
#, no-c-format #, no-c-format
msgid "" msgid ""
"$swap - swap usage, %\n" "$swap - swap usage, %\n"
"$swapmb - swap usage, MB" "$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr "" msgstr ""
"$swap - swap usage, %\n" "$swap - swap usage, %\n"
"$swapmb - swap usage, MB" "$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
#. i18n: file: ui/configwindow.ui:613 #. i18n: file: ui/configwindow.ui:615
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83 #. i18n: file: ui/configwindow.ui:2102
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:85 rc.cpp:294
msgid "HDD" msgid "HDD"
msgstr "HDD" msgstr "HDD"
#. i18n: file: ui/configwindow.ui:623 #. i18n: file: ui/configwindow.ui:625
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87 #: rc.cpp:89
#, no-c-format #, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0" msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr "$hddN - usage for mount point N (from 0), %. Example: $hdd0" msgstr "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
#. i18n: file: ui/configwindow.ui:671 #. i18n: file: ui/configwindow.ui:673
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90 #: rc.cpp:92
msgid "HDD Temp" msgid "HDD Temp"
msgstr "HDD Temp" msgstr "HDD Temp"
#. i18n: file: ui/configwindow.ui:681 #. i18n: file: ui/configwindow.ui:683
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93 #: rc.cpp:95
msgid "" msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0" "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr "" msgstr ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0" "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#. i18n: file: ui/configwindow.ui:729 #. i18n: file: ui/configwindow.ui:731
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96 #: rc.cpp:98
msgid "Network" msgid "Network"
msgstr "Network" msgstr "Network"
#. i18n: file: ui/configwindow.ui:744 #. i18n: file: ui/configwindow.ui:746
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99 #: rc.cpp:101
msgid "" msgid ""
"$down - download speed, KB/s\n" "$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n" "$up - upload speed, KB/s\n"
@ -235,15 +241,15 @@ msgstr ""
"$up - upload speed, KB/s\n" "$up - upload speed, KB/s\n"
"$netdev - current network device" "$netdev - current network device"
#. i18n: file: ui/configwindow.ui:792 #. i18n: file: ui/configwindow.ui:794
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104 #: rc.cpp:106
msgid "Battery" msgid "Battery"
msgstr "Battery" msgstr "Battery"
#. i18n: file: ui/configwindow.ui:803 #. i18n: file: ui/configwindow.ui:805
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108 #: rc.cpp:110
#, no-c-format #, no-c-format
msgid "" msgid ""
"$bat - battery charge, %\n" "$bat - battery charge, %\n"
@ -252,17 +258,17 @@ msgstr ""
"$bat - battery charge, %\n" "$bat - battery charge, %\n"
"$ac - AC status" "$ac - AC status"
#. i18n: file: ui/configwindow.ui:851 #. i18n: file: ui/configwindow.ui:853
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338 #. i18n: file: ui/configwindow.ui:1343
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect) #. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214 #: rc.cpp:114 rc.cpp:219
msgid "Music player" msgid "Music player"
msgstr "Music player" msgstr "Music player"
#. i18n: file: ui/configwindow.ui:865 #. i18n: file: ui/configwindow.ui:867
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115 #: rc.cpp:117
msgid "" msgid ""
"$album - song album\n" "$album - song album\n"
"$artist - song artist\n" "$artist - song artist\n"
@ -276,33 +282,33 @@ msgstr ""
"$time - song duration\n" "$time - song duration\n"
"$title - song title" "$title - song title"
#. i18n: file: ui/configwindow.ui:913 #. i18n: file: ui/configwindow.ui:915
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122 #: rc.cpp:124
msgid "Custom" msgid "Custom"
msgstr "Custom" msgstr "Custom"
#. i18n: file: ui/configwindow.ui:923 #. i18n: file: ui/configwindow.ui:925
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125 #: rc.cpp:127
msgid "$custom - get output from custom command" msgid "$custom - get output from custom command"
msgstr "$custom - get output from custom command" msgstr "$custom - get output from custom command"
#. i18n: file: ui/configwindow.ui:977 #. i18n: file: ui/configwindow.ui:979
#. i18n: ectx: attribute (title), widget (QWidget, advanced) #. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128 #: rc.cpp:130
msgid "Advanced" msgid "Advanced"
msgstr "Advanced" msgstr "Advanced"
#. i18n: file: ui/configwindow.ui:991 #. i18n: file: ui/configwindow.ui:993
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat) #. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131 #: rc.cpp:133
msgid "Custom time format" msgid "Custom time format"
msgstr "Custom time format" msgstr "Custom time format"
#. i18n: file: ui/configwindow.ui:1013 #. i18n: file: ui/configwindow.ui:1015
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134 #: rc.cpp:136
msgid "" msgid ""
"$dddd - long weekday\n" "$dddd - long weekday\n"
"$ddd - short weekday\n" "$ddd - short weekday\n"
@ -338,47 +344,53 @@ msgstr ""
"$ss - seconds\n" "$ss - seconds\n"
"$s - seconds w\\o zero" "$s - seconds w\\o zero"
#. i18n: file: ui/configwindow.ui:1033 #. i18n: file: ui/configwindow.ui:1035
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat) #. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152 #: rc.cpp:154
msgid "Custom uptime format" msgid "Custom uptime format"
msgstr "Custom uptime format" msgstr "Custom uptime format"
#. i18n: file: ui/configwindow.ui:1042 #. i18n: file: ui/configwindow.ui:1047
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155 #: rc.cpp:157
msgid "" msgid ""
"$ds - uptime days\n" "$dd - uptime days\n"
"$hs - uptime hours\n" "$d - uptime days without zero\n"
"$ms - uptime minutes" "$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr "" msgstr ""
"$ds - uptime days\n" "$dd - uptime days\n"
"$hs - uptime hours\n" "$d - uptime days without zero\n"
"$ms - uptime minutes" "$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
#. i18n: file: ui/configwindow.ui:1064 #. i18n: file: ui/configwindow.ui:1069
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice) #. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160 #: rc.cpp:165
msgid "Temperature devices" msgid "Temperature devices"
msgstr "Temperature devices" msgstr "Temperature devices"
#. i18n: file: ui/configwindow.ui:1090 #. i18n: file: ui/configwindow.ui:1095
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145 #. i18n: file: ui/configwindow.ui:1150
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount) #. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200 #. i18n: file: ui/configwindow.ui:1205
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183 #: rc.cpp:168 rc.cpp:178 rc.cpp:188
msgid "Add" msgid "Add"
msgstr "Add" msgstr "Add"
#. i18n: file: ui/configwindow.ui:1100 #. i18n: file: ui/configwindow.ui:1105
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155 #. i18n: file: ui/configwindow.ui:1160
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210 #. i18n: file: ui/configwindow.ui:1215
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186 #: rc.cpp:171 rc.cpp:181 rc.cpp:191
msgid "" msgid ""
"Editable\n" "Editable\n"
"del - remove item" "del - remove item"
@ -386,109 +398,93 @@ msgstr ""
"Editable\n" "Editable\n"
"del - remove item" "del - remove item"
#. i18n: file: ui/configwindow.ui:1119 #. i18n: file: ui/configwindow.ui:1124
#. i18n: ectx: property (text), widget (QLabel, label_mount) #. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170 #: rc.cpp:175
msgid "Mount points" msgid "Mount points"
msgstr "Mount points" msgstr "Mount points"
#. i18n: file: ui/configwindow.ui:1174 #. i18n: file: ui/configwindow.ui:1179
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice) #. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180 #: rc.cpp:185
msgid "HDD devices" msgid "HDD devices"
msgstr "HDD devices" msgstr "HDD devices"
#. i18n: file: ui/configwindow.ui:1227 #. i18n: file: ui/configwindow.ui:1232
#. i18n: ectx: property (text), widget (QLabel, label_netdir) #. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190 #: rc.cpp:195
msgid "Network directory" msgid "Network directory"
msgstr "Network directory" msgstr "Network directory"
#. i18n: file: ui/configwindow.ui:1234 #. i18n: file: ui/configwindow.ui:1239
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193 #: rc.cpp:198
msgid "\"/sys/class/net\" by default" msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" by default" msgstr "\"/sys/class/net\" by default"
#. i18n: file: ui/configwindow.ui:1254 #. i18n: file: ui/configwindow.ui:1259
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196 #: rc.cpp:201
msgid "Disable auto select device and set specified device" msgid "Disable auto select device and set specified device"
msgstr "Disable auto select device and set specified device" msgstr "Disable auto select device and set specified device"
#. i18n: file: ui/configwindow.ui:1257 #. i18n: file: ui/configwindow.ui:1262
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199 #: rc.cpp:204
msgid "Set network device" msgid "Set network device"
msgstr "Set network device" msgstr "Set network device"
#. i18n: file: ui/configwindow.ui:1290 #. i18n: file: ui/configwindow.ui:1295
#. i18n: ectx: property (text), widget (QLabel, label_batdev) #. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202 #: rc.cpp:207
msgid "Battery device" msgid "Battery device"
msgstr "Battery device" msgstr "Battery device"
#. i18n: file: ui/configwindow.ui:1297 #. i18n: file: ui/configwindow.ui:1302
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205 #: rc.cpp:210
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default" msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "\"/sys/class/power_supply/BAT0/capacity\" by default" msgstr "\"/sys/class/power_supply/BAT0/capacity\" by default"
#. i18n: file: ui/configwindow.ui:1314 #. i18n: file: ui/configwindow.ui:1319
#. i18n: ectx: property (text), widget (QLabel, label_acdev) #. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208 #: rc.cpp:213
msgid "AC device" msgid "AC device"
msgstr "AC device" msgstr "AC device"
#. i18n: file: ui/configwindow.ui:1321 #. i18n: file: ui/configwindow.ui:1326
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211 #: rc.cpp:216
msgid "\"/sys/class/power_supply/AC/online\" by default" msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" by default" msgstr "\"/sys/class/power_supply/AC/online\" by default"
#. i18n: file: ui/configwindow.ui:1358 #. i18n: file: ui/configwindow.ui:1363
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217 #: rc.cpp:222
msgid "amarok" msgid "amarok"
msgstr "amarok" msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1363 #. i18n: file: ui/configwindow.ui:1368
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220 #: rc.cpp:225
msgid "mpd" msgid "mpd"
msgstr "mpd" msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1368 #. i18n: file: ui/configwindow.ui:1373
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223 #: rc.cpp:228
msgid "qmmp" msgid "qmmp"
msgstr "qmmp" msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1386 #. i18n: file: ui/configwindow.ui:1397
#. i18n: ectx: property (text), widget (QLabel, label_customCommand) #. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:226 #: rc.cpp:231
msgid "Custom command"
msgstr "Custom command"
#. i18n: file: ui/configwindow.ui:1394
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:229
msgid ""
"Command to run, example:\n"
"wget -qO- http://ifconfig.me/ip - get external IP"
msgstr ""
"Command to run, example:\n"
"wget -qO- http://ifconfig.me/ip - get external IP"
#. i18n: file: ui/configwindow.ui:1417
#. i18n: ectx: attribute (title), widget (QWidget, tab)
#: rc.cpp:233
msgid "Tooltip" msgid "Tooltip"
msgstr "Tooltip" msgstr "Tooltip"
#. i18n: file: ui/configwindow.ui:1423 #. i18n: file: ui/configwindow.ui:1403
#. i18n: ectx: property (text), widget (QLabel, label_tooltip) #. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236 #: rc.cpp:234
msgid "" msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. " "CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked." "To enable them just make needed checkbox fully checked."
@ -496,100 +492,170 @@ msgstr ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. " "CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked." "To enable them just make needed checkbox fully checked."
#. i18n: file: ui/configwindow.ui:1444 #. i18n: file: ui/configwindow.ui:1424
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum) #. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239 #: rc.cpp:237
msgid "Number of values for tooltips" msgid "Number of values for tooltips"
msgstr "Number of values for tooltips" msgstr "Number of values for tooltips"
#. i18n: file: ui/configwindow.ui:1499 #. i18n: file: ui/configwindow.ui:1479
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242 #: rc.cpp:240
msgid "CPU color" msgid "CPU color"
msgstr "CPU color" msgstr "CPU color"
#. i18n: file: ui/configwindow.ui:1539 #. i18n: file: ui/configwindow.ui:1519
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245 #: rc.cpp:243
msgid "CPU clock color" msgid "CPU clock color"
msgstr "CPU clock color" msgstr "CPU clock color"
#. i18n: file: ui/configwindow.ui:1579 #. i18n: file: ui/configwindow.ui:1559
#. i18n: ectx: property (text), widget (QLabel, label_memColor) #. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248 #: rc.cpp:246
msgid "Memory color" msgid "Memory color"
msgstr "Memory color" msgstr "Memory color"
#. i18n: file: ui/configwindow.ui:1619 #. i18n: file: ui/configwindow.ui:1599
#. i18n: ectx: property (text), widget (QLabel, label_swapColor) #. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251 #: rc.cpp:249
msgid "Swap color" msgid "Swap color"
msgstr "Swap color" msgstr "Swap color"
#. i18n: file: ui/configwindow.ui:1659 #. i18n: file: ui/configwindow.ui:1639
#. i18n: ectx: property (text), widget (QLabel, label_downColor) #. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254 #: rc.cpp:252
msgid "Download speed color" msgid "Download speed color"
msgstr "Download speed color" msgstr "Download speed color"
#. i18n: file: ui/configwindow.ui:1699 #. i18n: file: ui/configwindow.ui:1679
#. i18n: ectx: property (text), widget (QLabel, label_upColor) #. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257 #: rc.cpp:255
msgid "Upload speed color" msgid "Upload speed color"
msgstr "Upload speed color" msgstr "Upload speed color"
#. i18n: file: ui/configwindow.ui:1745 #. i18n: file: ui/configwindow.ui:1725
#. i18n: ectx: attribute (title), widget (QWidget, appearance) #. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260 #: rc.cpp:258
msgid "Appearance" msgid "Appearance"
msgstr "Appearance" msgstr "Appearance"
#. i18n: file: ui/configwindow.ui:1759 #. i18n: file: ui/configwindow.ui:1739
#. i18n: ectx: property (text), widget (QLabel, label_interval) #. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263 #: rc.cpp:261
msgid "Time interval" msgid "Time interval"
msgstr "Time interval" msgstr "Time interval"
#. i18n: file: ui/configwindow.ui:1814 #. i18n: file: ui/configwindow.ui:1794
#. i18n: ectx: property (text), widget (QLabel, label_font) #. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266 #: rc.cpp:264
msgid "Font" msgid "Font"
msgstr "Font" msgstr "Font"
#. i18n: file: ui/configwindow.ui:1854 #. i18n: file: ui/configwindow.ui:1834
#. i18n: ectx: property (text), widget (QLabel, label_fontSize) #. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269 #: rc.cpp:267
msgid "Font size" msgid "Font size"
msgstr "Font size" msgstr "Font size"
#. i18n: file: ui/configwindow.ui:1909 #. i18n: file: ui/configwindow.ui:1889
#. i18n: ectx: property (text), widget (QLabel, label_color) #. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272 #: rc.cpp:270
msgid "Font color" msgid "Font color"
msgstr "Font color" msgstr "Font color"
#. i18n: file: ui/configwindow.ui:1949 #. i18n: file: ui/configwindow.ui:1929
#. i18n: ectx: property (text), widget (QLabel, label_style) #. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275 #: rc.cpp:273
msgid "Font style" msgid "Font style"
msgstr "Font style" msgstr "Font style"
#. i18n: file: ui/configwindow.ui:1999 #. i18n: file: ui/configwindow.ui:1979
#. i18n: ectx: property (text), widget (QLabel, label_weight) #. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278 #: rc.cpp:276
msgid "Font weight" msgid "Font weight"
msgstr "Font weight" msgstr "Font weight"
#. i18n: file: ui/configwindow.ui:2040
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:279 #: rc.cpp:279
msgid "DataEngine"
msgstr "DataEngine"
#. i18n: file: ui/configwindow.ui:2054
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:282
msgid "GPU device"
msgstr "GPU device"
#. i18n: file: ui/configwindow.ui:2074
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:285
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2079
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:288
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2084
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:291
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2135
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:297
msgid "MPD address"
msgstr "MPD address"
#. i18n: file: ui/configwindow.ui:2159
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:300
msgid "MPD port"
msgstr "MPD port"
#. i18n: file: ui/configwindow.ui:2214
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:303
msgid "Custom command"
msgstr "Custom command"
#. i18n: file: ui/configwindow.ui:2221
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:306
msgid "Custom command to run"
msgstr "Custom command to run"
#: rc.cpp:307
msgctxt "NAME OF TRANSLATORS" msgctxt "NAME OF TRANSLATORS"
msgid "Your names" msgid "Your names"
msgstr "Evgeniy Alekseev" msgstr "Evgeniy Alekseev"
#: rc.cpp:280 #: rc.cpp:308
msgctxt "EMAIL OF TRANSLATORS" msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails" msgid "Your emails"
msgstr "esalexeev@gmail.com" msgstr "esalexeev@gmail.com"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgid "@@/;@@ - mount point usage, %" #~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - mount point usage, %" #~ msgstr "@@/;@@ - mount point usage, %"

681
sources/ptm/po/fr.po Normal file
View File

@ -0,0 +1,681 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Evgeniy Alekseev <esalexeev@gmail.com>, 2014.
# Mermouy <mermouy@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n"
"POT-Creation-Date: 2014-04-05 19:13+0400\n"
"PO-Revision-Date: 2014-04-05 19:13+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
#. i18n: file: ui/configwindow.ui:32
#. i18n: ectx: property (windowTitle), widget (QWidget, ConfigWindow)
#: rc.cpp:3
msgid "Form"
msgstr "Entrées"
#. i18n: file: ui/configwindow.ui:42
#. i18n: ectx: attribute (title), widget (QWidget, settings)
#: rc.cpp:6
msgid "Widget settings"
msgstr "Paramètres de l'applet"
#. i18n: file: ui/configwindow.ui:48
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:9
msgid ""
"Detailed information may be found on <a href=\"http://arcanis.name/projects/"
"pytextmonitor/\">project homepage</a>"
msgstr ""
"D'avantage d'informations se trouvent sur <a href=\"http://arcanis.name/"
"projects/pytextmonitor/\">la page du projet</a>"
#. i18n: file: ui/configwindow.ui:69
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_time)
#: rc.cpp:12
msgid "Time"
msgstr "Durée"
#. i18n: file: ui/configwindow.ui:83
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_time)
#: rc.cpp:15
msgid ""
"$time - time in default format\n"
"$isotime - time in ISO format\n"
"$shorttime - time in short format\n"
"$longtime - time in log format\n"
"$custom - custom time format"
msgstr ""
"$time - l'heure au format par défaut\n"
"$isotime - l'heure au format ISO\n"
"$shorttime - l'heure format court\n"
"$longtime - l'heure au format log\n"
"$custom - l'heure, format personnalisé"
#. i18n: file: ui/configwindow.ui:128
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_uptime)
#: rc.cpp:22
msgid "Uptime"
msgstr "temps de fonctionnement"
#. i18n: file: ui/configwindow.ui:139
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptime)
#: rc.cpp:25
msgid ""
"$uptime - system uptime\n"
"$custom - custom format"
msgstr ""
"$uptime - temps de fonctionnement\n"
"$custom - format personnalisé"
#. i18n: file: ui/configwindow.ui:187
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpu)
#: rc.cpp:29
msgid "CPU"
msgstr "CPU"
#. i18n: file: ui/configwindow.ui:203
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpu)
#: rc.cpp:33
#, no-c-format
msgid ""
"$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n"
"...\n"
"$cpu9 - load CPU for core 9, %"
msgstr ""
"$cpu - charge totale du processeur, %\n"
"$cpu0 - charge du processeur pour le coeur 0, %\n"
"...\n"
"$cpu9 - charge processeur pour le coeur 9, %"
#. i18n: file: ui/configwindow.ui:251
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: rc.cpp:39
msgid "CPU Clock"
msgstr "Horloge processeur"
#. i18n: file: ui/configwindow.ui:267
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpuclock)
#: rc.cpp:42
msgid ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl9 - CPU clock for core 9, MHz"
msgstr ""
"$cpucl - Moyenne de l'horloge du processeur, MHz\n"
"$cpucl0 - Horloge du coeur 0, MHz\n"
"...\n"
"$cpucl9 - Horloge du coeur 9, MHz"
#. i18n: file: ui/configwindow.ui:315
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
#: rc.cpp:48
msgid "Temperature"
msgstr "Température"
#. i18n: file: ui/configwindow.ui:325
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_temp)
#: rc.cpp:51
msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
msgstr ""
"$tempN - Température physique du périphérique N (à partir de 0). Exemple: "
"$temp0"
#. i18n: file: ui/configwindow.ui:373
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpu)
#: rc.cpp:54
msgid "GPU"
msgstr "Processeur graphique"
#. i18n: file: ui/configwindow.ui:383
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpu)
#: rc.cpp:58
#, no-c-format
msgid "$gpu - gpu usage, %"
msgstr "$gpu - utilisation du processeur graphique, %"
#. i18n: file: ui/configwindow.ui:431
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpuTemp)
#: rc.cpp:61
msgid "GPU Temp"
msgstr "Temp du processeur graphique"
#. i18n: file: ui/configwindow.ui:441
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpuTemp)
#: rc.cpp:64
msgid "$gputemp - physical temperature on GPU"
msgstr "$gputemp - Température physique du processeur graphique"
#. i18n: file: ui/configwindow.ui:489
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: rc.cpp:67
msgid "Memory"
msgstr "Mémoire"
#. i18n: file: ui/configwindow.ui:504
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71
#, no-c-format
msgid ""
"$mem - RAM usage, %\n"
"$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr ""
"$mem - utilisation de la RAM, %\n"
"$memmb - utilisation de la RAM, MB\n"
"$memgb - utilisation de la RAM, GB"
#. i18n: file: ui/configwindow.ui:552
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:76
msgid "Swap"
msgstr "mémoire d'échange (swap)"
#. i18n: file: ui/configwindow.ui:567
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:80
#, no-c-format
msgid ""
"$swap - swap usage, %\n"
"$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr ""
"$swap - utilisation swap, %\n"
"$swapmb - utilisation swap, MB\n"
"$swapgb - utilisation swap, GB"
#. i18n: file: ui/configwindow.ui:615
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#. i18n: file: ui/configwindow.ui:2102
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:85 rc.cpp:294
msgid "HDD"
msgstr "Disque dur"
#. i18n: file: ui/configwindow.ui:625
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:89
#, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr ""
"$hddN - espace occupé sur le point de montage N (à partir de 0), %. Exemple: "
"$hdd0"
#. i18n: file: ui/configwindow.ui:673
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:92
msgid "HDD Temp"
msgstr "Température disque dur"
#. i18n: file: ui/configwindow.ui:683
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:95
msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr ""
"$hddtempN - température physique du périphérique N (à partir de 0). Exemple: "
"$hddtemp0"
#. i18n: file: ui/configwindow.ui:731
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:98
msgid "Network"
msgstr "Réseau"
#. i18n: file: ui/configwindow.ui:746
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:101
msgid ""
"$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n"
"$netdev - current network device"
msgstr ""
"$down - vitesse de téléchargement, KB/s\n"
"$up - vitesse ascendante, KB/s\n"
"$netdev - périphérique réseau actuel"
#. i18n: file: ui/configwindow.ui:794
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:106
msgid "Battery"
msgstr "Batterie"
#. i18n: file: ui/configwindow.ui:805
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:110
#, no-c-format
msgid ""
"$bat - battery charge, %\n"
"$ac - AC status"
msgstr ""
"$bat - charge de la batterie, %\n"
"$ac - état de l'alimentation"
#. i18n: file: ui/configwindow.ui:853
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1343
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:114 rc.cpp:219
msgid "Music player"
msgstr "Lecteur audio"
#. i18n: file: ui/configwindow.ui:867
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:117
msgid ""
"$album - song album\n"
"$artist - song artist\n"
"$progress - song progress\n"
"$time - song duration\n"
"$title - song title"
msgstr ""
"$album - album du morceau\n"
"$artist - artiste du morceau\n"
"$progress - avancement du morceau\n"
"$time - durée du morceau\n"
"$title - titre du morceau"
#. i18n: file: ui/configwindow.ui:915
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:124
msgid "Custom"
msgstr "Personnalisé"
#. i18n: file: ui/configwindow.ui:925
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:127
msgid "$custom - get output from custom command"
msgstr "$custom - sortie d'une commande personnelle"
#. i18n: file: ui/configwindow.ui:979
#. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:130
msgid "Advanced"
msgstr "Avancé"
#. i18n: file: ui/configwindow.ui:993
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:133
msgid "Custom time format"
msgstr "Format de l'heure personnalisé"
#. i18n: file: ui/configwindow.ui:1015
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:136
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
"$dd - day\n"
"$d - day w\\o zero\n"
"$MMMM - long month\n"
"$MMM - short month\n"
"$MM - month\n"
"$M - month w\\o zero\n"
"$yyyy - year\n"
"$yy - short year\n"
"$hh - hours (24 only)\n"
"$h - hours w\\o zero (24 only)\n"
"$mm - minutes\n"
"$m - minutes w\\o zero\n"
"$ss - seconds\n"
"$s - seconds w\\o zero"
msgstr ""
"$dddd - Jour de la semaine long\n"
"$ddd - Jour de la semaine court\n"
"$dd - jour\n"
"$d - jour sans zéro\n"
"$MMMM - mois long\n"
"$MMM - mois court\n"
"$MM - mois\n"
"$M - mois sans zéro\n"
"$yyyy - année\n"
"$yy - année courte\n"
"$hh - heures (24 uniquement)\n"
"$h - heures sans zéro (24 uniquement)\n"
"$mm - minutes\n"
"$m - minutes sans zéro\n"
"$ss - secondes\n"
"$s - secondes sans zéro"
#. i18n: file: ui/configwindow.ui:1035
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:154
msgid "Custom uptime format"
msgstr "Temps de fonctionnement personalisé"
#. i18n: file: ui/configwindow.ui:1047
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:157
msgid ""
"$dd - uptime days\n"
"$d - uptime days without zero\n"
"$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr ""
"$dd - temps de fonctionnement en jours\n"
"$d - temps de fonctionnement en jours sans zéro\n"
"$hh - temps de fonctionnement en heures\n"
"$h - temps de fonctionnement en heures sans zéro\n"
"$mm - temps de fonctionnement en minutes\n"
"$m - temps de fonctionnement en minutes sans zéro"
#. i18n: file: ui/configwindow.ui:1069
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:165
msgid "Temperature devices"
msgstr "Temperature des périphériques"
#. i18n: file: ui/configwindow.ui:1095
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1150
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1205
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:168 rc.cpp:178 rc.cpp:188
msgid "Add"
msgstr "Ajouter"
#. i18n: file: ui/configwindow.ui:1105
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1160
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1215
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:171 rc.cpp:181 rc.cpp:191
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Modifiable\n"
"del - supprimer un élément"
#. i18n: file: ui/configwindow.ui:1124
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:175
msgid "Mount points"
msgstr "Points de montage"
#. i18n: file: ui/configwindow.ui:1179
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:185
msgid "HDD devices"
msgstr "Périphériques HDD"
#. i18n: file: ui/configwindow.ui:1232
#. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:195
msgid "Network directory"
msgstr "Voisinage réseau"
#. i18n: file: ui/configwindow.ui:1239
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:198
msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" par défaut"
#. i18n: file: ui/configwindow.ui:1259
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:201
msgid "Disable auto select device and set specified device"
msgstr ""
"Désactiver la sélection automatique de périphériques et le sélectionner "
"manuellement"
#. i18n: file: ui/configwindow.ui:1262
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:204
msgid "Set network device"
msgstr "Sélectionner le périphérique réseau"
#. i18n: file: ui/configwindow.ui:1295
#. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:207
msgid "Battery device"
msgstr "Batterie"
#. i18n: file: ui/configwindow.ui:1302
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:210
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "\"/sys/class/power_supply/BAT0/capacity\" par défaut"
#. i18n: file: ui/configwindow.ui:1319
#. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:213
msgid "AC device"
msgstr "Périphérique d'alimentation"
#. i18n: file: ui/configwindow.ui:1326
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:216
msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" par défaut"
#. i18n: file: ui/configwindow.ui:1363
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:222
msgid "amarok"
msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1368
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:225
msgid "mpd"
msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1373
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:228
msgid "qmmp"
msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1397
#. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:231
msgid "Tooltip"
msgstr "Conseil"
#. i18n: file: ui/configwindow.ui:1403
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:234
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
"CPU, horloge du CPU, mémoire vive, mémoire swap et noms réseau supportent "
"les conseils visuels. Pour les activer cochez simplement les cases "
"correspondantes."
#. i18n: file: ui/configwindow.ui:1424
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:237
msgid "Number of values for tooltips"
msgstr "Nombre d'éléments pour les conseils"
#. i18n: file: ui/configwindow.ui:1479
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:240
msgid "CPU color"
msgstr "Couleur processeur"
#. i18n: file: ui/configwindow.ui:1519
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:243
msgid "CPU clock color"
msgstr "Couleur de l'horloge processeur"
#. i18n: file: ui/configwindow.ui:1559
#. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:246
msgid "Memory color"
msgstr "Couleur de la mémoire"
#. i18n: file: ui/configwindow.ui:1599
#. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:249
msgid "Swap color"
msgstr "Couleur de la mémoire d'échange"
#. i18n: file: ui/configwindow.ui:1639
#. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:252
msgid "Download speed color"
msgstr "Couleur de la vitesse de téléchargement"
#. i18n: file: ui/configwindow.ui:1679
#. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:255
msgid "Upload speed color"
msgstr "Couleur du téléversement"
#. i18n: file: ui/configwindow.ui:1725
#. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:258
msgid "Appearance"
msgstr "Apparence"
#. i18n: file: ui/configwindow.ui:1739
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:261
msgid "Time interval"
msgstr "Intervalle"
#. i18n: file: ui/configwindow.ui:1794
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:264
msgid "Font"
msgstr "Police"
#. i18n: file: ui/configwindow.ui:1834
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:267
msgid "Font size"
msgstr "Taille de la police"
#. i18n: file: ui/configwindow.ui:1889
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:270
msgid "Font color"
msgstr "Couleur de la police"
#. i18n: file: ui/configwindow.ui:1929
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:273
msgid "Font style"
msgstr "Style de la police"
#. i18n: file: ui/configwindow.ui:1979
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:276
msgid "Font weight"
msgstr "Épaisseur de la police"
#. i18n: file: ui/configwindow.ui:2040
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:279
msgid "DataEngine"
msgstr "Moteur de données"
#. i18n: file: ui/configwindow.ui:2054
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:282
msgid "GPU device"
msgstr "Périphérique graphique"
#. i18n: file: ui/configwindow.ui:2074
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:285
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2079
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:288
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2084
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:291
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2135
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:297
msgid "MPD address"
msgstr "Adresse MPD"
#. i18n: file: ui/configwindow.ui:2159
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:300
msgid "MPD port"
msgstr "Port MPD"
#. i18n: file: ui/configwindow.ui:2214
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:303
msgid "Custom command"
msgstr "Commande personnalisée"
#. i18n: file: ui/configwindow.ui:2221
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:306
msgid "Custom command to run"
msgstr "Commande personnalisée à exécuter"
#: rc.cpp:307
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:308
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "esalexeev@gmail.com"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - mount point usage, %"
#~ msgid "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgstr "@@/dev/sda@@ - physical temperature on /dev/sda"
#~ msgid ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"
#~ msgstr ""
#~ "$net - network speed, down/up, KB/s\n"
#~ "$netdev - current network device\n"
#~ "@@eth0@@ - disable auto select device and set specified device"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n" "Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n"
"POT-Creation-Date: 2014-04-02 20:48+0400\n" "POT-Creation-Date: 2014-04-05 19:13+0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -82,7 +82,7 @@ msgid ""
"$cpu - total load CPU, %\n" "$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n" "$cpu0 - load CPU for core 0, %\n"
"...\n" "...\n"
"$cpu7 - load CPU for core 7, %" "$cpu9 - load CPU for core 9, %"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:251 #. i18n: file: ui/configwindow.ui:251
@ -98,7 +98,7 @@ msgid ""
"$cpucl - average CPU clock, MHz\n" "$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n" "$cpucl0 - CPU clock for core 0, MHz\n"
"...\n" "...\n"
"$cpucl7 - CPU clock for core 7, MHz" "$cpucl9 - CPU clock for core 9, MHz"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:315 #. i18n: file: ui/configwindow.ui:315
@ -144,97 +144,101 @@ msgstr ""
msgid "Memory" msgid "Memory"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:503 #. i18n: file: ui/configwindow.ui:504
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71 #: rc.cpp:71
#, no-c-format #, no-c-format
msgid "" msgid ""
"$mem - RAM usage, %\n" "$mem - RAM usage, %\n"
"$memmb - RAM usage, MB" "$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:551 #. i18n: file: ui/configwindow.ui:552
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75 #: rc.cpp:76
msgid "Swap" msgid "Swap"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:565 #. i18n: file: ui/configwindow.ui:567
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79 #: rc.cpp:80
#, no-c-format #, no-c-format
msgid "" msgid ""
"$swap - swap usage, %\n" "$swap - swap usage, %\n"
"$swapmb - swap usage, MB" "$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:613 #. i18n: file: ui/configwindow.ui:615
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83 #. i18n: file: ui/configwindow.ui:2102
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:85 rc.cpp:294
msgid "HDD" msgid "HDD"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:623 #. i18n: file: ui/configwindow.ui:625
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87 #: rc.cpp:89
#, no-c-format #, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0" msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:671 #. i18n: file: ui/configwindow.ui:673
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90 #: rc.cpp:92
msgid "HDD Temp" msgid "HDD Temp"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:681 #. i18n: file: ui/configwindow.ui:683
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93 #: rc.cpp:95
msgid "" msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0" "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:729 #. i18n: file: ui/configwindow.ui:731
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96 #: rc.cpp:98
msgid "Network" msgid "Network"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:744 #. i18n: file: ui/configwindow.ui:746
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99 #: rc.cpp:101
msgid "" msgid ""
"$down - download speed, KB/s\n" "$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n" "$up - upload speed, KB/s\n"
"$netdev - current network device" "$netdev - current network device"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:792 #. i18n: file: ui/configwindow.ui:794
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104 #: rc.cpp:106
msgid "Battery" msgid "Battery"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:803 #. i18n: file: ui/configwindow.ui:805
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108 #: rc.cpp:110
#, no-c-format #, no-c-format
msgid "" msgid ""
"$bat - battery charge, %\n" "$bat - battery charge, %\n"
"$ac - AC status" "$ac - AC status"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:851 #. i18n: file: ui/configwindow.ui:853
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338 #. i18n: file: ui/configwindow.ui:1343
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect) #. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214 #: rc.cpp:114 rc.cpp:219
msgid "Music player" msgid "Music player"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:865 #. i18n: file: ui/configwindow.ui:867
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115 #: rc.cpp:117
msgid "" msgid ""
"$album - song album\n" "$album - song album\n"
"$artist - song artist\n" "$artist - song artist\n"
@ -243,33 +247,33 @@ msgid ""
"$title - song title" "$title - song title"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:913 #. i18n: file: ui/configwindow.ui:915
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122 #: rc.cpp:124
msgid "Custom" msgid "Custom"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:923 #. i18n: file: ui/configwindow.ui:925
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125 #: rc.cpp:127
msgid "$custom - get output from custom command" msgid "$custom - get output from custom command"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:977 #. i18n: file: ui/configwindow.ui:979
#. i18n: ectx: attribute (title), widget (QWidget, advanced) #. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128 #: rc.cpp:130
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:991 #. i18n: file: ui/configwindow.ui:993
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat) #. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131 #: rc.cpp:133
msgid "Custom time format" msgid "Custom time format"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1013 #. i18n: file: ui/configwindow.ui:1015
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134 #: rc.cpp:136
msgid "" msgid ""
"$dddd - long weekday\n" "$dddd - long weekday\n"
"$ddd - short weekday\n" "$ddd - short weekday\n"
@ -289,245 +293,288 @@ msgid ""
"$s - seconds w\\o zero" "$s - seconds w\\o zero"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1033 #. i18n: file: ui/configwindow.ui:1035
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat) #. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152 #: rc.cpp:154
msgid "Custom uptime format" msgid "Custom uptime format"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1042 #. i18n: file: ui/configwindow.ui:1047
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155 #: rc.cpp:157
msgid "" msgid ""
"$ds - uptime days\n" "$dd - uptime days\n"
"$hs - uptime hours\n" "$d - uptime days without zero\n"
"$ms - uptime minutes" "$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1064 #. i18n: file: ui/configwindow.ui:1069
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice) #. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160 #: rc.cpp:165
msgid "Temperature devices" msgid "Temperature devices"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1090 #. i18n: file: ui/configwindow.ui:1095
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145 #. i18n: file: ui/configwindow.ui:1150
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount) #. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200 #. i18n: file: ui/configwindow.ui:1205
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183 #: rc.cpp:168 rc.cpp:178 rc.cpp:188
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1100 #. i18n: file: ui/configwindow.ui:1105
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155 #. i18n: file: ui/configwindow.ui:1160
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210 #. i18n: file: ui/configwindow.ui:1215
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186 #: rc.cpp:171 rc.cpp:181 rc.cpp:191
msgid "" msgid ""
"Editable\n" "Editable\n"
"del - remove item" "del - remove item"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1119 #. i18n: file: ui/configwindow.ui:1124
#. i18n: ectx: property (text), widget (QLabel, label_mount) #. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170 #: rc.cpp:175
msgid "Mount points" msgid "Mount points"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1174 #. i18n: file: ui/configwindow.ui:1179
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice) #. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180 #: rc.cpp:185
msgid "HDD devices" msgid "HDD devices"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1227 #. i18n: file: ui/configwindow.ui:1232
#. i18n: ectx: property (text), widget (QLabel, label_netdir) #. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190 #: rc.cpp:195
msgid "Network directory" msgid "Network directory"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1234 #. i18n: file: ui/configwindow.ui:1239
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193 #: rc.cpp:198
msgid "\"/sys/class/net\" by default" msgid "\"/sys/class/net\" by default"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1254 #. i18n: file: ui/configwindow.ui:1259
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196 #: rc.cpp:201
msgid "Disable auto select device and set specified device" msgid "Disable auto select device and set specified device"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1257 #. i18n: file: ui/configwindow.ui:1262
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199 #: rc.cpp:204
msgid "Set network device" msgid "Set network device"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1290 #. i18n: file: ui/configwindow.ui:1295
#. i18n: ectx: property (text), widget (QLabel, label_batdev) #. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202 #: rc.cpp:207
msgid "Battery device" msgid "Battery device"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1297 #. i18n: file: ui/configwindow.ui:1302
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205 #: rc.cpp:210
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default" msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1314 #. i18n: file: ui/configwindow.ui:1319
#. i18n: ectx: property (text), widget (QLabel, label_acdev) #. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208 #: rc.cpp:213
msgid "AC device" msgid "AC device"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1321 #. i18n: file: ui/configwindow.ui:1326
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211 #: rc.cpp:216
msgid "\"/sys/class/power_supply/AC/online\" by default" msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1358
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217
msgid "amarok"
msgstr ""
#. i18n: file: ui/configwindow.ui:1363 #. i18n: file: ui/configwindow.ui:1363
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220 #: rc.cpp:222
msgid "mpd" msgid "amarok"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1368 #. i18n: file: ui/configwindow.ui:1368
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223 #: rc.cpp:225
msgid "mpd"
msgstr ""
#. i18n: file: ui/configwindow.ui:1373
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:228
msgid "qmmp" msgid "qmmp"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1386 #. i18n: file: ui/configwindow.ui:1397
#. i18n: ectx: property (text), widget (QLabel, label_customCommand) #. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:226 #: rc.cpp:231
msgid "Custom command"
msgstr ""
#. i18n: file: ui/configwindow.ui:1394
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:229
msgid ""
"Command to run, example:\n"
"wget -qO- http://ifconfig.me/ip - get external IP"
msgstr ""
#. i18n: file: ui/configwindow.ui:1417
#. i18n: ectx: attribute (title), widget (QWidget, tab)
#: rc.cpp:233
msgid "Tooltip" msgid "Tooltip"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1423 #. i18n: file: ui/configwindow.ui:1403
#. i18n: ectx: property (text), widget (QLabel, label_tooltip) #. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236 #: rc.cpp:234
msgid "" msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. " "CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked." "To enable them just make needed checkbox fully checked."
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1444 #. i18n: file: ui/configwindow.ui:1424
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum) #. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239 #: rc.cpp:237
msgid "Number of values for tooltips" msgid "Number of values for tooltips"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1499 #. i18n: file: ui/configwindow.ui:1479
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242 #: rc.cpp:240
msgid "CPU color" msgid "CPU color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1539 #. i18n: file: ui/configwindow.ui:1519
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245 #: rc.cpp:243
msgid "CPU clock color" msgid "CPU clock color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1579 #. i18n: file: ui/configwindow.ui:1559
#. i18n: ectx: property (text), widget (QLabel, label_memColor) #. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248 #: rc.cpp:246
msgid "Memory color" msgid "Memory color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1619 #. i18n: file: ui/configwindow.ui:1599
#. i18n: ectx: property (text), widget (QLabel, label_swapColor) #. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251 #: rc.cpp:249
msgid "Swap color" msgid "Swap color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1659 #. i18n: file: ui/configwindow.ui:1639
#. i18n: ectx: property (text), widget (QLabel, label_downColor) #. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254 #: rc.cpp:252
msgid "Download speed color" msgid "Download speed color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1699 #. i18n: file: ui/configwindow.ui:1679
#. i18n: ectx: property (text), widget (QLabel, label_upColor) #. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257 #: rc.cpp:255
msgid "Upload speed color" msgid "Upload speed color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1745 #. i18n: file: ui/configwindow.ui:1725
#. i18n: ectx: attribute (title), widget (QWidget, appearance) #. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260 #: rc.cpp:258
msgid "Appearance" msgid "Appearance"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1759 #. i18n: file: ui/configwindow.ui:1739
#. i18n: ectx: property (text), widget (QLabel, label_interval) #. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263 #: rc.cpp:261
msgid "Time interval" msgid "Time interval"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1814 #. i18n: file: ui/configwindow.ui:1794
#. i18n: ectx: property (text), widget (QLabel, label_font) #. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266 #: rc.cpp:264
msgid "Font" msgid "Font"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1854 #. i18n: file: ui/configwindow.ui:1834
#. i18n: ectx: property (text), widget (QLabel, label_fontSize) #. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269 #: rc.cpp:267
msgid "Font size" msgid "Font size"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1909 #. i18n: file: ui/configwindow.ui:1889
#. i18n: ectx: property (text), widget (QLabel, label_color) #. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272 #: rc.cpp:270
msgid "Font color" msgid "Font color"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1949 #. i18n: file: ui/configwindow.ui:1929
#. i18n: ectx: property (text), widget (QLabel, label_style) #. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275 #: rc.cpp:273
msgid "Font style" msgid "Font style"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:1999 #. i18n: file: ui/configwindow.ui:1979
#. i18n: ectx: property (text), widget (QLabel, label_weight) #. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278 #: rc.cpp:276
msgid "Font weight" msgid "Font weight"
msgstr "" msgstr ""
#. i18n: file: ui/configwindow.ui:2040
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:279 #: rc.cpp:279
msgid "DataEngine"
msgstr ""
#. i18n: file: ui/configwindow.ui:2054
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:282
msgid "GPU device"
msgstr ""
#. i18n: file: ui/configwindow.ui:2074
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:285
msgid "auto"
msgstr ""
#. i18n: file: ui/configwindow.ui:2079
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:288
msgid "nvidia"
msgstr ""
#. i18n: file: ui/configwindow.ui:2084
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:291
msgid "ati"
msgstr ""
#. i18n: file: ui/configwindow.ui:2135
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:297
msgid "MPD address"
msgstr ""
#. i18n: file: ui/configwindow.ui:2159
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:300
msgid "MPD port"
msgstr ""
#. i18n: file: ui/configwindow.ui:2214
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:303
msgid "Custom command"
msgstr ""
#. i18n: file: ui/configwindow.ui:2221
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:306
msgid "Custom command to run"
msgstr ""
#: rc.cpp:307
msgctxt "NAME OF TRANSLATORS" msgctxt "NAME OF TRANSLATORS"
msgid "Your names" msgid "Your names"
msgstr "" msgstr ""
#: rc.cpp:280 #: rc.cpp:308
msgctxt "EMAIL OF TRANSLATORS" msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails" msgid "Your emails"
msgstr "" msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n" "Report-Msgid-Bugs-To: http://kde-look.org/content/show.php?content=157124\n"
"POT-Creation-Date: 2014-04-02 20:48+0400\n" "POT-Creation-Date: 2014-04-05 19:13+0400\n"
"PO-Revision-Date: 2014-04-02 20:52+0400\n" "PO-Revision-Date: 2014-04-05 19:14+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n" "Language: ru\n"
@ -92,12 +92,12 @@ msgid ""
"$cpu - total load CPU, %\n" "$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n" "$cpu0 - load CPU for core 0, %\n"
"...\n" "...\n"
"$cpu7 - load CPU for core 7, %" "$cpu9 - load CPU for core 9, %"
msgstr "" msgstr ""
"$cpu - общая загрузка CPU, %\n" "$cpu - общая загрузка CPU, %\n"
"$cpu0 - загрузка CPU для ядра 0, %\n" "$cpu0 - загрузка CPU для ядра 0, %\n"
"...\n" "...\n"
"$cpu7 - загрузка CPU для ядра 7, %" "$cpu9 - загрузка CPU для ядра 9, %"
#. i18n: file: ui/configwindow.ui:251 #. i18n: file: ui/configwindow.ui:251
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
@ -112,12 +112,12 @@ msgid ""
"$cpucl - average CPU clock, MHz\n" "$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n" "$cpucl0 - CPU clock for core 0, MHz\n"
"...\n" "...\n"
"$cpucl7 - CPU clock for core 7, MHz" "$cpucl9 - CPU clock for core 9, MHz"
msgstr "" msgstr ""
"$cpucl - средняя частота CPU, MHz\n" "$cpucl - средняя частота CPU, MHz\n"
"$cpucl0 - частота CPU для ядра 0, MHz\n" "$cpucl0 - частота CPU для ядра 0, MHz\n"
"...\n" "...\n"
"$cpucl7 - частота CPU для ядра 7, MHz" "$cpucl9 - частота CPU для ядра 9, MHz"
#. i18n: file: ui/configwindow.ui:315 #. i18n: file: ui/configwindow.ui:315
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
@ -162,71 +162,77 @@ msgstr "$gputemp - физическая температура на GPU"
msgid "Memory" msgid "Memory"
msgstr "Память" msgstr "Память"
#. i18n: file: ui/configwindow.ui:503 #. i18n: file: ui/configwindow.ui:504
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71 #: rc.cpp:71
#, no-c-format #, no-c-format
msgid "" msgid ""
"$mem - RAM usage, %\n" "$mem - RAM usage, %\n"
"$memmb - RAM usage, MB" "$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr "" msgstr ""
"$mem - использование RAM, %\n" "$mem - использование RAM, %\n"
"$memmb - использование RAM, MB" "$memmb - использование RAM, MB\n"
"$memgb - использование RAM, GB"
#. i18n: file: ui/configwindow.ui:551 #. i18n: file: ui/configwindow.ui:552
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75 #: rc.cpp:76
msgid "Swap" msgid "Swap"
msgstr "Swap" msgstr "Swap"
#. i18n: file: ui/configwindow.ui:565 #. i18n: file: ui/configwindow.ui:567
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79 #: rc.cpp:80
#, no-c-format #, no-c-format
msgid "" msgid ""
"$swap - swap usage, %\n" "$swap - swap usage, %\n"
"$swapmb - swap usage, MB" "$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr "" msgstr ""
"$swap - использование swap, %\n" "$swap - использование swap, %\n"
"$swapmb - использование swap, MB" "$swapmb - использование swap, MB\n"
"$swapgb - использование swap, GB"
#. i18n: file: ui/configwindow.ui:613 #. i18n: file: ui/configwindow.ui:615
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83 #. i18n: file: ui/configwindow.ui:2102
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:85 rc.cpp:294
msgid "HDD" msgid "HDD"
msgstr "HDD" msgstr "HDD"
#. i18n: file: ui/configwindow.ui:623 #. i18n: file: ui/configwindow.ui:625
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87 #: rc.cpp:89
#, no-c-format #, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0" msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr "$hddN - использование точки монтирования N (от 0), %. Пример: $hdd0" msgstr "$hddN - использование точки монтирования N (от 0), %. Пример: $hdd0"
#. i18n: file: ui/configwindow.ui:671 #. i18n: file: ui/configwindow.ui:673
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90 #: rc.cpp:92
msgid "HDD Temp" msgid "HDD Temp"
msgstr "Температура HDD" msgstr "Температура HDD"
#. i18n: file: ui/configwindow.ui:681 #. i18n: file: ui/configwindow.ui:683
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93 #: rc.cpp:95
msgid "" msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0" "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr "" msgstr ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0 " "$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0 "
"$hddtempN - температура на устройстве N (от 0). Пример: $hddtemp0" "$hddtempN - температура на устройстве N (от 0). Пример: $hddtemp0"
#. i18n: file: ui/configwindow.ui:729 #. i18n: file: ui/configwindow.ui:731
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96 #: rc.cpp:98
msgid "Network" msgid "Network"
msgstr "Сеть" msgstr "Сеть"
#. i18n: file: ui/configwindow.ui:744 #. i18n: file: ui/configwindow.ui:746
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99 #: rc.cpp:101
msgid "" msgid ""
"$down - download speed, KB/s\n" "$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n" "$up - upload speed, KB/s\n"
@ -236,15 +242,15 @@ msgstr ""
"$up - скорость загрузки, KB/s\n" "$up - скорость загрузки, KB/s\n"
"$netdev - текущее устройство" "$netdev - текущее устройство"
#. i18n: file: ui/configwindow.ui:792 #. i18n: file: ui/configwindow.ui:794
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104 #: rc.cpp:106
msgid "Battery" msgid "Battery"
msgstr "Батарея" msgstr "Батарея"
#. i18n: file: ui/configwindow.ui:803 #. i18n: file: ui/configwindow.ui:805
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108 #: rc.cpp:110
#, no-c-format #, no-c-format
msgid "" msgid ""
"$bat - battery charge, %\n" "$bat - battery charge, %\n"
@ -253,17 +259,17 @@ msgstr ""
"$bat - заряд батареи, %\n" "$bat - заряд батареи, %\n"
"$ac - статус адаптора питания" "$ac - статус адаптора питания"
#. i18n: file: ui/configwindow.ui:851 #. i18n: file: ui/configwindow.ui:853
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338 #. i18n: file: ui/configwindow.ui:1343
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect) #. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214 #: rc.cpp:114 rc.cpp:219
msgid "Music player" msgid "Music player"
msgstr "Музыкальный плеер" msgstr "Музыкальный плеер"
#. i18n: file: ui/configwindow.ui:865 #. i18n: file: ui/configwindow.ui:867
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115 #: rc.cpp:117
msgid "" msgid ""
"$album - song album\n" "$album - song album\n"
"$artist - song artist\n" "$artist - song artist\n"
@ -277,33 +283,33 @@ msgstr ""
"$time - продолжительность\n" "$time - продолжительность\n"
"$title - название" "$title - название"
#. i18n: file: ui/configwindow.ui:913 #. i18n: file: ui/configwindow.ui:915
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122 #: rc.cpp:124
msgid "Custom" msgid "Custom"
msgstr "Своя команда" msgstr "Своя команда"
#. i18n: file: ui/configwindow.ui:923 #. i18n: file: ui/configwindow.ui:925
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125 #: rc.cpp:127
msgid "$custom - get output from custom command" msgid "$custom - get output from custom command"
msgstr "$custom - получить информацию из своей команды" msgstr "$custom - получить информацию из своей команды"
#. i18n: file: ui/configwindow.ui:977 #. i18n: file: ui/configwindow.ui:979
#. i18n: ectx: attribute (title), widget (QWidget, advanced) #. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128 #: rc.cpp:130
msgid "Advanced" msgid "Advanced"
msgstr "Расширенные" msgstr "Расширенные"
#. i18n: file: ui/configwindow.ui:991 #. i18n: file: ui/configwindow.ui:993
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat) #. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131 #: rc.cpp:133
msgid "Custom time format" msgid "Custom time format"
msgstr "Свой формат времени" msgstr "Свой формат времени"
#. i18n: file: ui/configwindow.ui:1013 #. i18n: file: ui/configwindow.ui:1015
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134 #: rc.cpp:136
msgid "" msgid ""
"$dddd - long weekday\n" "$dddd - long weekday\n"
"$ddd - short weekday\n" "$ddd - short weekday\n"
@ -339,47 +345,53 @@ msgstr ""
"$ss - секунды\n" "$ss - секунды\n"
"$s - секунды без 0" "$s - секунды без 0"
#. i18n: file: ui/configwindow.ui:1033 #. i18n: file: ui/configwindow.ui:1035
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat) #. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152 #: rc.cpp:154
msgid "Custom uptime format" msgid "Custom uptime format"
msgstr "Свой формат аптайма" msgstr "Свой формат аптайма"
#. i18n: file: ui/configwindow.ui:1042 #. i18n: file: ui/configwindow.ui:1047
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155 #: rc.cpp:157
msgid "" msgid ""
"$ds - uptime days\n" "$dd - uptime days\n"
"$hs - uptime hours\n" "$d - uptime days without zero\n"
"$ms - uptime minutes" "$hh - uptime hours\n"
"$h - uptime hours without zero\n"
"$mm - uptime minutes\n"
"$m - uptime minutes without zero"
msgstr "" msgstr ""
"$ds - дни работы\n" "$dd - дни аптайма\n"
"$hs - часы\n" "$d - дни аптайма без нулей\n"
"$ms - минуты" "$hh - часы аптайма\n"
"$h - часы аптайма без нулей\n"
"$mm - минуты аптайма\n"
"$m - минуты аптайма без нулей"
#. i18n: file: ui/configwindow.ui:1064 #. i18n: file: ui/configwindow.ui:1069
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice) #. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160 #: rc.cpp:165
msgid "Temperature devices" msgid "Temperature devices"
msgstr "Температурные устройства" msgstr "Температурные устройства"
#. i18n: file: ui/configwindow.ui:1090 #. i18n: file: ui/configwindow.ui:1095
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145 #. i18n: file: ui/configwindow.ui:1150
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount) #. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200 #. i18n: file: ui/configwindow.ui:1205
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice) #. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183 #: rc.cpp:168 rc.cpp:178 rc.cpp:188
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#. i18n: file: ui/configwindow.ui:1100 #. i18n: file: ui/configwindow.ui:1105
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155 #. i18n: file: ui/configwindow.ui:1160
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210 #. i18n: file: ui/configwindow.ui:1215
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice) #. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186 #: rc.cpp:171 rc.cpp:181 rc.cpp:191
msgid "" msgid ""
"Editable\n" "Editable\n"
"del - remove item" "del - remove item"
@ -387,109 +399,93 @@ msgstr ""
"Редактируемо\n" "Редактируемо\n"
"del - удалить строку" "del - удалить строку"
#. i18n: file: ui/configwindow.ui:1119 #. i18n: file: ui/configwindow.ui:1124
#. i18n: ectx: property (text), widget (QLabel, label_mount) #. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170 #: rc.cpp:175
msgid "Mount points" msgid "Mount points"
msgstr "Точки монтирования" msgstr "Точки монтирования"
#. i18n: file: ui/configwindow.ui:1174 #. i18n: file: ui/configwindow.ui:1179
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice) #. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180 #: rc.cpp:185
msgid "HDD devices" msgid "HDD devices"
msgstr "HDD" msgstr "HDD"
#. i18n: file: ui/configwindow.ui:1227 #. i18n: file: ui/configwindow.ui:1232
#. i18n: ectx: property (text), widget (QLabel, label_netdir) #. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190 #: rc.cpp:195
msgid "Network directory" msgid "Network directory"
msgstr "Путь к интерфейсам" msgstr "Путь к интерфейсам"
#. i18n: file: ui/configwindow.ui:1234 #. i18n: file: ui/configwindow.ui:1239
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193 #: rc.cpp:198
msgid "\"/sys/class/net\" by default" msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" по умолчанию" msgstr "\"/sys/class/net\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1254 #. i18n: file: ui/configwindow.ui:1259
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196 #: rc.cpp:201
msgid "Disable auto select device and set specified device" msgid "Disable auto select device and set specified device"
msgstr "Отключить авто выбор устройства и использовать указанное" msgstr "Отключить авто выбор устройства и использовать указанное"
#. i18n: file: ui/configwindow.ui:1257 #. i18n: file: ui/configwindow.ui:1262
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev) #. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199 #: rc.cpp:204
msgid "Set network device" msgid "Set network device"
msgstr "Выберете сетевое устройство" msgstr "Выберете сетевое устройство"
#. i18n: file: ui/configwindow.ui:1290 #. i18n: file: ui/configwindow.ui:1295
#. i18n: ectx: property (text), widget (QLabel, label_batdev) #. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202 #: rc.cpp:207
msgid "Battery device" msgid "Battery device"
msgstr "Устройство батареи" msgstr "Устройство батареи"
#. i18n: file: ui/configwindow.ui:1297 #. i18n: file: ui/configwindow.ui:1302
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205 #: rc.cpp:210
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default" msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "\"/sys/class/power_supply/BAT0/capacity\" по умолчанию" msgstr "\"/sys/class/power_supply/BAT0/capacity\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1314 #. i18n: file: ui/configwindow.ui:1319
#. i18n: ectx: property (text), widget (QLabel, label_acdev) #. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208 #: rc.cpp:213
msgid "AC device" msgid "AC device"
msgstr "Устройство AC" msgstr "Устройство AC"
#. i18n: file: ui/configwindow.ui:1321 #. i18n: file: ui/configwindow.ui:1326
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev) #. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211 #: rc.cpp:216
msgid "\"/sys/class/power_supply/AC/online\" by default" msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" по умолчанию" msgstr "\"/sys/class/power_supply/AC/online\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1358 #. i18n: file: ui/configwindow.ui:1363
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217 #: rc.cpp:222
msgid "amarok" msgid "amarok"
msgstr "amarok" msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1363 #. i18n: file: ui/configwindow.ui:1368
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220 #: rc.cpp:225
msgid "mpd" msgid "mpd"
msgstr "mpd" msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1368 #. i18n: file: ui/configwindow.ui:1373
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect) #. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223 #: rc.cpp:228
msgid "qmmp" msgid "qmmp"
msgstr "qmmp" msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1386 #. i18n: file: ui/configwindow.ui:1397
#. i18n: ectx: property (text), widget (QLabel, label_customCommand) #. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:226 #: rc.cpp:231
msgid "Custom command"
msgstr "Своя команда"
#. i18n: file: ui/configwindow.ui:1394
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:229
msgid ""
"Command to run, example:\n"
"wget -qO- http://ifconfig.me/ip - get external IP"
msgstr ""
"Команда для запуска, например:\n"
"wget -qO- http://ifconfig.me/ip - получить внешний IP"
#. i18n: file: ui/configwindow.ui:1417
#. i18n: ectx: attribute (title), widget (QWidget, tab)
#: rc.cpp:233
msgid "Tooltip" msgid "Tooltip"
msgstr "Тултип" msgstr "Тултип"
#. i18n: file: ui/configwindow.ui:1423 #. i18n: file: ui/configwindow.ui:1403
#. i18n: ectx: property (text), widget (QLabel, label_tooltip) #. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236 #: rc.cpp:234
msgid "" msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. " "CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked." "To enable them just make needed checkbox fully checked."
@ -497,100 +493,170 @@ msgstr ""
"Поля CPU, частота CPU, память, swap, сеть поддерживают графический тултип. " "Поля CPU, частота CPU, память, swap, сеть поддерживают графический тултип. "
"Чтобы включить его, просто сделайте требуемые чекбоксы полностью чекнутыми." "Чтобы включить его, просто сделайте требуемые чекбоксы полностью чекнутыми."
#. i18n: file: ui/configwindow.ui:1444 #. i18n: file: ui/configwindow.ui:1424
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum) #. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239 #: rc.cpp:237
msgid "Number of values for tooltips" msgid "Number of values for tooltips"
msgstr "Число хранящихся значений" msgstr "Число хранящихся значений"
#. i18n: file: ui/configwindow.ui:1499 #. i18n: file: ui/configwindow.ui:1479
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242 #: rc.cpp:240
msgid "CPU color" msgid "CPU color"
msgstr "Цвет CPU" msgstr "Цвет CPU"
#. i18n: file: ui/configwindow.ui:1539 #. i18n: file: ui/configwindow.ui:1519
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor) #. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245 #: rc.cpp:243
msgid "CPU clock color" msgid "CPU clock color"
msgstr "Цвет частоты CPU" msgstr "Цвет частоты CPU"
#. i18n: file: ui/configwindow.ui:1579 #. i18n: file: ui/configwindow.ui:1559
#. i18n: ectx: property (text), widget (QLabel, label_memColor) #. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248 #: rc.cpp:246
msgid "Memory color" msgid "Memory color"
msgstr "Цвет памяти" msgstr "Цвет памяти"
#. i18n: file: ui/configwindow.ui:1619 #. i18n: file: ui/configwindow.ui:1599
#. i18n: ectx: property (text), widget (QLabel, label_swapColor) #. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251 #: rc.cpp:249
msgid "Swap color" msgid "Swap color"
msgstr "Цвет swap" msgstr "Цвет swap"
#. i18n: file: ui/configwindow.ui:1659 #. i18n: file: ui/configwindow.ui:1639
#. i18n: ectx: property (text), widget (QLabel, label_downColor) #. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254 #: rc.cpp:252
msgid "Download speed color" msgid "Download speed color"
msgstr "Цвет скорости загрузки" msgstr "Цвет скорости загрузки"
#. i18n: file: ui/configwindow.ui:1699 #. i18n: file: ui/configwindow.ui:1679
#. i18n: ectx: property (text), widget (QLabel, label_upColor) #. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257 #: rc.cpp:255
msgid "Upload speed color" msgid "Upload speed color"
msgstr "Цвет скорости отдачи" msgstr "Цвет скорости отдачи"
#. i18n: file: ui/configwindow.ui:1745 #. i18n: file: ui/configwindow.ui:1725
#. i18n: ectx: attribute (title), widget (QWidget, appearance) #. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260 #: rc.cpp:258
msgid "Appearance" msgid "Appearance"
msgstr "Внешний вид" msgstr "Внешний вид"
#. i18n: file: ui/configwindow.ui:1759 #. i18n: file: ui/configwindow.ui:1739
#. i18n: ectx: property (text), widget (QLabel, label_interval) #. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263 #: rc.cpp:261
msgid "Time interval" msgid "Time interval"
msgstr "Интервал обновления" msgstr "Интервал обновления"
#. i18n: file: ui/configwindow.ui:1814 #. i18n: file: ui/configwindow.ui:1794
#. i18n: ectx: property (text), widget (QLabel, label_font) #. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266 #: rc.cpp:264
msgid "Font" msgid "Font"
msgstr "Шрифт" msgstr "Шрифт"
#. i18n: file: ui/configwindow.ui:1854 #. i18n: file: ui/configwindow.ui:1834
#. i18n: ectx: property (text), widget (QLabel, label_fontSize) #. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269 #: rc.cpp:267
msgid "Font size" msgid "Font size"
msgstr "Размер шрифта" msgstr "Размер шрифта"
#. i18n: file: ui/configwindow.ui:1909 #. i18n: file: ui/configwindow.ui:1889
#. i18n: ectx: property (text), widget (QLabel, label_color) #. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272 #: rc.cpp:270
msgid "Font color" msgid "Font color"
msgstr "Цвет шрифта" msgstr "Цвет шрифта"
#. i18n: file: ui/configwindow.ui:1949 #. i18n: file: ui/configwindow.ui:1929
#. i18n: ectx: property (text), widget (QLabel, label_style) #. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275 #: rc.cpp:273
msgid "Font style" msgid "Font style"
msgstr "Стиль шрифта" msgstr "Стиль шрифта"
#. i18n: file: ui/configwindow.ui:1999 #. i18n: file: ui/configwindow.ui:1979
#. i18n: ectx: property (text), widget (QLabel, label_weight) #. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278 #: rc.cpp:276
msgid "Font weight" msgid "Font weight"
msgstr "Ширина шрифта" msgstr "Ширина шрифта"
#. i18n: file: ui/configwindow.ui:2040
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:279 #: rc.cpp:279
msgid "DataEngine"
msgstr "DataEngine"
#. i18n: file: ui/configwindow.ui:2054
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:282
msgid "GPU device"
msgstr "Устройство GPU"
#. i18n: file: ui/configwindow.ui:2074
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:285
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2079
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:288
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2084
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:291
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2135
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:297
msgid "MPD address"
msgstr "Адрес сервера MPD"
#. i18n: file: ui/configwindow.ui:2159
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:300
msgid "MPD port"
msgstr "Порт сервера MPD"
#. i18n: file: ui/configwindow.ui:2214
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:303
msgid "Custom command"
msgstr "Своя команда"
#. i18n: file: ui/configwindow.ui:2221
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:306
msgid "Custom command to run"
msgstr "Своя команда для запуска"
#: rc.cpp:307
msgctxt "NAME OF TRANSLATORS" msgctxt "NAME OF TRANSLATORS"
msgid "Your names" msgid "Your names"
msgstr "Evgeniy Alekseev" msgstr "Evgeniy Alekseev"
#: rc.cpp:280 #: rc.cpp:308
msgctxt "EMAIL OF TRANSLATORS" msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails" msgid "Your emails"
msgstr "esalexeev@gmail.com" msgstr "esalexeev@gmail.com"
#~ msgid ""
#~ "$ds - uptime days\n"
#~ "$hs - uptime hours\n"
#~ "$ms - uptime minutes"
#~ msgstr ""
#~ "$ds - дни работы\n"
#~ "$hs - часы\n"
#~ "$ms - минуты"
#~ msgid ""
#~ "Command to run, example:\n"
#~ "wget -qO- http://ifconfig.me/ip - get external IP"
#~ msgstr ""
#~ "Команда для запуска, например:\n"
#~ "wget -qO- http://ifconfig.me/ip - получить внешний IP"
#~ msgid "@@/;@@ - mount point usage, %" #~ msgid "@@/;@@ - mount point usage, %"
#~ msgstr "@@/;@@ - использование точки монтирования, %" #~ msgstr "@@/;@@ - использование точки монтирования, %"