Compare commits

...

37 Commits

Author SHA1 Message Date
1555b22a3b edited changelog =) 2014-04-07 03:33:04 +04:00
1c772f288a release 1.7.4 2014-04-07 03:31:46 +04:00
16f4f4a8ff set correct choose of devices 2014-04-06 17:44:25 +04:00
c09da99e06 fix bug with reverse() 2014-04-06 17:40:17 +04:00
14fab265cd changes in formatLine variable 2014-04-06 12:02:13 +04:00
9ba7a2b0d5 added support of more than 10 tags 2014-04-05 22:40:38 +04:00
2c4515eb66 edited authors 2014-04-05 19:32:52 +04:00
2e7fa3689b fix typo 2014-04-05 19:24:19 +04:00
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
37 changed files with 3280 additions and 1704 deletions

View File

@ -1,3 +1,5 @@
Current developers:
Evgeniy Alekseev aka arcanis <esalexeev (at) gmail (dot) com>
Translators:
@Mermouy (french translations)

View File

@ -1,3 +1,31 @@
Ver.1.7.4:
+ added support more than 10 tags in cpu, cpuclock, hdd, hddtemp, temp labels
- format bug fixes
* changes in custom uptime format
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:
+ added support of several tags in temperature label
+ added tags $cpuN, $cpuclN, $hddN, $tempN, $hddtempN, $up, $down
@ -55,7 +83,7 @@ Ver.1.3.2b:
Ver.1.3.2:
+ added GPU, GPU temperature, HDD and HDD temperature labels
+ added $ccpu and $ccpucl tags
* bug fixes
- bug fixes
* optimization and refactoring
Ver.1.2.2:
@ -86,9 +114,9 @@ Ver.1.1.2:
Ver.1.1.1:
+ added $swapmb, $memmb, $netdev, @@netdev=...@@ tags
- some bug fixes
* widget consists of several labels
* edited configuration interface
- some bug fixes
Ver.1.0:
First release

122
CHANGELOG-RU Normal file
View File

@ -0,0 +1,122 @@
Вер.1.7.4:
+ добавлена поддержка более чем 10 тэгов в полях cpu, cpuclock, hdd, hddtemp, temp
- фиксы в форматах
* изменения в кастомном формате аптайма
Вер.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 <esalexeev@gmail.com>
# Maintainer: Evgeniy "arcanis" Alexeev <arcanis.arch at gmail dot com>
pkgname=kdeplasma-applets-pytextmonitor
_pkgname=pytextmonitor
pkgver=1.7.0
pkgver=1.7.4
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')
url="http://arcanis.name/projects/pytextmonitor"
license=('GPLv3')
depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors' 'sysstat')
optdepends=("hddtemp: for HDD temperature monitor"
"catalyst: for GPU monitor"
"nvidia-utils: for GPU monitor"
"amarok: for music player monitor"
"mpd: for music player monitor"
"qmmp: for music player monitor")
depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors')
optdepends=("amarok: for music player monitor"
"catalyst: for GPU monitor"
"hddtemp: for HDD temperature monitor"
"mpd: 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')
source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install
md5sums=('bedeb6f30641b718c5020b1c16673ba2')
md5sums=('a820a3f9d676e1b05c13839d36df4a9d')
backup=('usr/share/config/extsysmon.conf')
build () {
if [[ -d ${srcdir}/build ]]; then
rm -rf "${srcdir}/build"
fi
prepare() {
[[ -d ${srcdir}/build ]] && rm -rf "${srcdir}/build"
mkdir "${srcdir}/build"
}
build () {
cd "${srcdir}/build"
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` \
-DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) \
"../${_pkgname}"
make
}

143
README.md
View File

@ -10,68 +10,73 @@ PyTextMonitor is a minimalistic Plasmoid script written on Python2. It looks lik
Configuration
-------------
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`
* label `$isotime` - time in iso format
* label `$shorttime` - time in short locale format
* label `$longtime` - time in long locale format
* label `$custom` - custom time format
* label `$uptime` - uptime, <i>---d--h--m</i>
* label `$custom` - custom uptime format
* label `$cpu` - total load cpu, <i>%</i>
* label `$cpuN` - load CPU for core N, <i>%</i>. N should be in range 0 to 8
* label `$cpucl` - average cpu clock, <i>MHz</i>
* label `$cpuclN` - cpu clock for core N, <i>MHz</i>. N should be in range 0 to 8
* label `$tempN` - temperature for device N. For example, `$temp0`
* label `$gpu` - GPU usage, <i>%</i>. `aticonfig` or `nvidia-smi` must be installed
* label `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* label `$mem` - usage memory, <i>%</i>
* label `$memmb` - usage memory, <i>MB</i>
* label `$swap` - swap, <i>%</i>
* label `$swapmb` - swap, <i>MB</i>
* label `$hddN` - usage for mount point N, <i>%</i>. For example, `$hdd0`
* label `$hddtempN` - temperature for HDD N. For example, `$hddtemp0`
* label `$down` - download speed, <i>KB/s</i>
* label `$up` - upload speed, <i>KB/s</i>
* label `$netdev` - current network device
* label `$bat` - battery charge, <i>%</i>
* label `$ac` - status AC device. Return <i>(*)</i> if AC device is online or <i>( )</i> if offline
* label `$album` - current song album. One of supported music players must be installed
* label `$artist` - current song artist. One of supported music players must be installed
* label `$progress` - current song progress. One of supported music players must be installed (mpd does not support yet)
* label `$time` - current song duration. One of supported music players must be installed
* label `$title` - current song title. One of supported music players must be installed
* label `$custom` - returns output for custom command
* tag `$time` - time in default format. For example, *fri Nov 6 04:48:01 2013*
* tag `$isotime` - time in iso format
* tag `$shorttime` - time in short locale format
* tag `$longtime` - time in long locale format
* tag `$custom` - custom time format
* tag `$uptime` - uptime, *---d--h--m*
* tag `$custom` - custom uptime format
* tag `$cpu` - total load cpu, *%*
* tag `$cpuN` - load CPU for core N, *%*
* tag `$cpucl` - average cpu clock, *MHz*
* tag `$cpuclN` - cpu clock for core N, *MHz*
* tag `$tempN` - temperature for device N. For example, `$temp0`
* tag `$gpu` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* tag `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* tag `$mem` - usage memory, *%*
* tag `$memmb` - usage memory, *MB*
* tag `$memgb` - usage memory, *GB*
* tag `$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 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
-----------------
**Custom time**
* label `$dddd` - weekday in long format
* label `$ddd` - weekday in short format
* label `$dd` - day
* label `$d` - day without zero
* label `$MMMM` - month in long format
* label `$MMM` - month in short format
* label `$MM` - month
* label `$M` - month without zero
* label `$yyyy` - year
* label `$yy` - year in short format
* label `$hh` - hours
* label `$h` - hours without zero
* label `$mm` - minutes
* label `$m` - minutes without zero
* label `$ss` - seconds
* label `$s` - seconds without zero
* tag `$dddd` - weekday in long format
* tag `$ddd` - weekday in short format
* tag `$dd` - day
* tag `$d` - day without zero
* tag `$MMMM` - month in long format
* tag `$MMM` - month in short format
* tag `$MM` - month
* tag `$M` - month without zero
* tag `$yyyy` - year
* tag `$yy` - year in short format
* tag `$hh` - hours
* tag `$h` - hours without zero
* tag `$mm` - minutes
* tag `$m` - minutes without zero
* tag `$ss` - seconds
* tag `$s` - seconds without zero
**Custom uptime**
* label `$ds` - uptime days
* label `$hs` - uptime hours
* label `$ms` - uptime minutes
* 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**
@ -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.
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.
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
------------------------
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
* kdebindings-python2
* lm_sensors (for definition temperature device)
* sysstat (for notification)
* lm_sensors (*for definition temperature device*)
* sysstat (*for notification*)
Optional dependencies
---------------------
ext-sysmon (for GPU, GPU temp, HDD temp and player labels):
* 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)
Make dependencies
-----------------
* automoc4
* cmake
* kdebase-runtime
Installation
------------
@ -150,7 +173,7 @@ Installation
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` ../
make && make install
Also you may install it to "/":
Also you may install it to `/`:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../

View File

@ -1,5 +1,8 @@
#!/bin/bash
# update english readme
cp readme/en.md README.md
SRCDIR="sources"
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).\
@ -16,13 +19,13 @@ rm -rf "${ARCHIVE}"
# build widget
ARCHIVE="pytextmonitor"
FILES="AUTHORS CHANGELOG COPYING README.md"
FILES="AUTHORS CHANGELOG CHANGELOG-RU COPYING readme"
IGNORELIST="build usr"
# create archive
[[ -e ${ARCHIVE}-${VERSION}-src.tar.xz ]] && rm -f "${ARCHIVE}-${VERSION}-src.tar.xz"
[[ -d ${ARCHIVE} ]] && rm -rf "${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
tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${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, *%*
* tag `$cpucl` - average cpu clock, *MHz*
* tag `$cpuclN` - cpu clock for core N, *MHz*
* tag `$tempN` - temperature for device N. For example, `$temp0`
* tag `$gpu` - GPU usage, *%*. `aticonfig` or `nvidia-smi` must be installed
* tag `$gputemp` - GPU temperature. `aticonfig` or `nvidia-smi` must be installed
* tag `$mem` - usage memory, *%*
* tag `$memmb` - usage memory, *MB*
* tag `$memgb` - usage memory, *GB*
* tag `$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, *%*
* тэг `$cpucl` - средняя частота CPU, *MHz*
* тэг `$cpuclN` - частота CPU для ядра N, *MHz
* тэг `$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)
set (PROJECT_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 7)
set (PROJECT_VERSION_PATCH 0)
set (PROJECT_VERSION_PATCH 4)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
message (STATUS "Version: ${PROJECT_VERSION}")

View File

@ -11,3 +11,6 @@
# Set MPD settings
#MPDADDRESS=localhost
#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("hddtemp"));
source.append(QString("player"));
source.append(QString("custom"));
return source;
}
@ -73,6 +74,8 @@ bool ExtendedSysMon::readConfiguration()
mpdAddress = QString("localhost");
mpdPort = QString("6600");
customCommand = QString("wget -qO- http://ifconfig.me/ip");
QString fileStr;
// FIXME: define configuration file
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();
else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("MPDPORT"))
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())
@ -350,6 +355,14 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
key = QString("mpd_title");
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;
}

View File

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

View File

@ -26,9 +26,11 @@ class Config():
def __init__(self, applet):
self.applet = applet
self.config = self.applet.config()
def get(self, key, default = ''):
return self.config.readEntry(key, default).toString()
def set(self, key, value):
self.config.writeEntry(key, value)

View File

@ -27,177 +27,82 @@ import config
class ConfigDefinition:
def __init__(self, parent, configpage):
def __init__(self, parent, configpage, defaults):
"""class definition"""
self.parent = parent
self.configpage = configpage
self.defaults = defaults
def configAccepted(self):
"""function to accept settings"""
settings = config.Config(self.parent)
# update local variables
self.parent.interval = self.configpage.ui.spinBox_interval.value()
settings.set('interval', self.parent.interval)
self.parent.font_family = str(self.configpage.ui.fontComboBox.currentFont().family())
settings.set('font_family', self.parent.font_family)
self.parent.font_size = self.configpage.ui.spinBox_fontSize.value()
settings.set('font_size', self.parent.font_size)
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', self.parent.custom_time)
self.parent.custom_uptime = str(self.configpage.ui.lineEdit_uptimeFormat.text())
settings.set('custom_uptime', self.parent.custom_uptime)
# temp and mount below
self.parent.hddNames = []
self.parent.hdd = {}
for i in range(self.configpage.ui.listWidget_hddDevice.count()):
item = self.configpage.ui.listWidget_hddDevice.item(i).text()
self.parent.hddNames.append(str(item))
self.parent.hdd[str(item)] =" 0.0"
settings.set('hdd', '@@'.join(self.parent.hddNames))
self.parent.netdir = str(self.configpage.ui.lineEdit_netdir.text())
settings.set('netdir', self.parent.netdir)
self.parent.netdevBool = str(self.configpage.ui.checkBox_netdev.checkState())
settings.set('netdevBool', self.parent.netdevBool)
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.parent.tooltipNum)
for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']:
exec ('self.parent.tooltipColors["' + label + '"] = str(self.configpage.kcolorcombo_' + label + '.color().name())')
exec ('settings.set("' + label + '_color", self.parent.tooltipColors["' + label + '"])')
# disconnecting from source and clear layout
if (self.parent.uptimeBool > 0):
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 = {}
# update local variables
settings.set('interval', self.configpage.ui.spinBox_interval.value())
settings.set('font_family', str(self.configpage.ui.fontComboBox.currentFont().family()))
settings.set('font_size', self.configpage.ui.spinBox_fontSize.value())
settings.set('font_color', str(self.configpage.ui.kcolorcombo.color().name()))
settings.set('font_style', str(self.configpage.ui.comboBox_style.currentText()))
settings.set('font_weight', self.configpage.ui.spinBox_weight.value())
settings.set('custom_time', str(self.configpage.ui.lineEdit_timeFormat.text()))
settings.set('custom_uptime', str(self.configpage.ui.lineEdit_uptimeFormat.text()))
item = QStringList()
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 = {}
item.append(self.configpage.ui.listWidget_tempDevice.item(i).text())
settings.set('temp_device', str(item.join(QString('@@'))))
item = QStringList()
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 = "---------------"
for label in self.parent.dict_orders.keys():
exec ('self.parent.' + self.parent.dict_orders[label] + 'Bool = ' + str(self.configpage.checkboxes[self.parent.dict_orders[label]].checkState()))
if (self.configpage.checkboxes[self.parent.dict_orders[label]].checkState() > 0):
pos = self.configpage.sliders[self.parent.dict_orders[label]].value() - 1
self.parent.label_order = self.parent.label_order[:pos] + label + self.parent.label_order[pos+1:]
if (self.parent.dict_orders[label] == 'net'):
exec ('self.parent.' + self.parent.dict_orders[label] + 'NonFormat = str(self.configpage.lineedits[self.parent.dict_orders[label]].text())')
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)
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()):
item.append(self.configpage.ui.listWidget_hddDevice.item(i).text())
settings.set('hdd', str(item.join(QString('@@'))))
settings.set('netdir', str(self.configpage.ui.lineEdit_netdir.text()))
settings.set('netdevBool', self.configpage.ui.checkBox_netdev.checkState())
settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText()))
settings.set('battery_device', str(self.configpage.ui.lineEdit_batdev.text()))
settings.set('ac_device', str(self.configpage.ui.lineEdit_acdev.text()))
settings.set('player_name', str(self.configpage.ui.comboBox_playerSelect.currentText()))
settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value())
for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']:
settings.set(self.defaults['confColor'][label], str(self.configpage.kcolorcombos[label].color().name()))
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
self.parent.disconnectFromSource()
labelOrder = "---------------"
for label in self.defaults['order'].keys():
if (self.configpage.checkboxes[self.defaults['order'][label]].checkState() > 0):
pos = self.configpage.sliders[self.defaults['order'][label]].value() - 1
labelOrder = labelOrder[:pos] + label + labelOrder[pos+1:]
settings.set(self.defaults['confFormat'][self.defaults['order'][label]], str(self.configpage.lineedits[self.defaults['order'][label]].text()))
settings.set(self.defaults['confBool'][self.defaults['order'][label]], self.configpage.checkboxes[self.defaults['order'][label]].checkState())
labelOrder = ''.join(labelOrder.split('-'))
settings.set('label_order', labelOrder)
# reinitializate
self.parent.reinit.reinit(confAccept=True)
self.parent.reInit()
def createConfigurationInterface(self, parent):
"""function to setup configuration window"""
settings = config.Config(self.parent)
font = QFont(str(settings.get('font_family', 'Terminus')), settings.get('font_size', 12).toInt()[0], 400, False)
self.configpage.ui.spinBox_interval.setValue(settings.get('interval', 2000).toInt()[0])
self.configpage.ui.fontComboBox.setCurrentFont(font)
@ -209,7 +114,7 @@ class ConfigDefinition:
else:
self.configpage.ui.comboBox_style.setCurrentIndex(1)
self.configpage.ui.spinBox_weight.setValue(settings.get('font_weight', 400).toInt()[0])
self.configpage.ui.lineEdit_timeFormat.setText(str(settings.get('custom_time', '$hh:$mm')))
self.configpage.ui.lineEdit_uptimeFormat.setText(str(settings.get('custom_uptime', '$ds,$hs,$ms')))
commandOut = commands.getoutput("sensors")
@ -252,9 +157,9 @@ class ConfigDefinition:
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_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])
self.configpage.ui.lineEdit_customCommand.setText(str(settings.get('custom_command', 'wget -qO- http://ifconfig.me/ip')))
index = self.configpage.ui.comboBox_playerSelect.findText(str(settings.get('player_name', "amarok")))
self.configpage.ui.comboBox_playerSelect.setCurrentIndex(index)
self.configpage.ui.spinBox_tooltipNum.setValue(settings.get('tooltip_num', 100).toInt()[0])
self.configpage.ui.kcolorcombo_cpu.setColor(QColor(str(settings.get('cpu_color', '#ff0000'))))
self.configpage.ui.kcolorcombo_cpuclock.setColor(QColor(str(settings.get('cpuclock_color', '#00ff00'))))
@ -262,19 +167,45 @@ class ConfigDefinition:
self.configpage.ui.kcolorcombo_swap.setColor(QColor(str(settings.get('swap_color', '#ffff00'))))
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'))))
for label in self.parent.dict_orders.keys():
exec ('bool = self.parent.' + self.parent.dict_orders[label] + 'Bool')
self.configpage.checkboxes[self.parent.dict_orders[label]].setCheckState(bool)
deSettings = {'GPUDEV':'auto', 'HDDDEV':'all', 'MPDADDRESS':'localhost',
'MPDPORT':'6600', 'CUSTOM':'wget -qO- http://ifconfig.me/ip'}
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):
self.configpage.sliders[self.parent.dict_orders[label]].setValue(self.parent.label_order.find(label)+1)
if (self.parent.dict_orders[label] == 'net'):
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]])))
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]])))
self.configpage.sliders[self.defaults['order'][label]].setValue(labelOrder.find(label) + 1)
self.configpage.lineedits[self.defaults['order'][label]].setText(str(settings.get(self.defaults['confFormat'][self.defaults['order'][label]],
self.defaults['format'][self.defaults['order'][label]])))
# add config page
page = parent.addPage(self.configpage, i18n(self.parent.name()))
page.setIcon(KIcon(self.parent.icon()))
parent.okClicked.connect(self.configAccepted)

View File

@ -21,7 +21,6 @@ from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import *
from PyQt4 import uic
from PyKDE4 import plasmascript
@ -31,31 +30,35 @@ class ConfigWindow(QWidget):
QWidget.__init__(self)
self.ui = uic.loadUi(parent.package().filePath('ui', 'configwindow.ui'), self)
self.parent = parent
self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu,
'cpuclock':self.ui.checkBox_cpuclock, 'gpu':self.ui.checkBox_gpu,
'gputemp':self.ui.checkBox_gpuTemp, 'hdd':self.ui.checkBox_hdd,
'hddtemp':self.ui.checkBox_hddTemp, 'mem':self.ui.checkBox_mem,
'net':self.ui.checkBox_net, 'swap':self.ui.checkBox_swap,
'temp':self.ui.checkBox_temp, 'uptime':self.ui.checkBox_uptime,
'player':self.ui.checkBox_player, 'time':self.ui.checkBox_time,
'custom':self.ui.checkBox_custom}
self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu,
'cpuclock':self.ui.lineEdit_cpuclock, 'gpu':self.ui.lineEdit_gpu,
'gputemp':self.ui.lineEdit_gpuTemp, 'hdd':self.ui.lineEdit_hdd,
'hddtemp':self.ui.lineEdit_hddTemp, 'mem':self.ui.lineEdit_mem,
'net':self.ui.lineEdit_net, 'swap':self.ui.lineEdit_swap,
'temp':self.ui.lineEdit_temp, 'uptime':self.ui.lineEdit_uptime,
'player':self.ui.lineEdit_player, 'time':self.ui.lineEdit_time,
'custom':self.ui.lineEdit_custom}
self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu,
'cpuclock':self.ui.slider_cpuclock, 'gpu':self.ui.slider_gpu,
'gputemp':self.ui.slider_gpuTemp, 'hdd':self.ui.slider_hdd,
'hddtemp':self.ui.slider_hddTemp, 'mem':self.ui.slider_mem,
'net':self.ui.slider_net, 'swap':self.ui.slider_swap,
'temp':self.ui.slider_temp, 'uptime':self.ui.slider_uptime,
'player':self.ui.slider_player, 'time':self.ui.slider_time,
'custom':self.ui.slider_custom}
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,
'cpuclock':self.ui.checkBox_cpuclock, 'custom':self.ui.checkBox_custom,
'gpu':self.ui.checkBox_gpu, 'gputemp':self.ui.checkBox_gpuTemp,
'hdd':self.ui.checkBox_hdd, 'hddtemp':self.ui.checkBox_hddTemp,
'mem':self.ui.checkBox_mem, 'net':self.ui.checkBox_net,
'swap':self.ui.checkBox_swap, 'temp':self.ui.checkBox_temp,
'uptime':self.ui.checkBox_uptime, 'player':self.ui.checkBox_player,
'time':self.ui.checkBox_time}
self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu,
'cpuclock':self.ui.lineEdit_cpuclock, 'custom':self.ui.lineEdit_custom,
'gpu':self.ui.lineEdit_gpu, 'gputemp':self.ui.lineEdit_gpuTemp,
'hdd':self.ui.lineEdit_hdd, 'hddtemp':self.ui.lineEdit_hddTemp,
'mem':self.ui.lineEdit_mem, 'net':self.ui.lineEdit_net,
'swap':self.ui.lineEdit_swap, 'temp':self.ui.lineEdit_temp,
'uptime':self.ui.lineEdit_uptime, 'player':self.ui.lineEdit_player,
'time':self.ui.lineEdit_time}
self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu,
'cpuclock':self.ui.slider_cpuclock, 'custom':self.ui.slider_custom,
'gpu':self.ui.slider_gpu, 'gputemp':self.ui.slider_gpuTemp,
'hdd':self.ui.slider_hdd, 'hddtemp':self.ui.slider_hddTemp,
'mem':self.ui.slider_mem, 'net':self.ui.slider_net,
'swap':self.ui.slider_swap, 'temp':self.ui.slider_temp,
'uptime':self.ui.slider_uptime, 'player':self.ui.slider_player,
'time':self.ui.slider_time}
QObject.connect(self.ui.checkBox_netdev, SIGNAL("stateChanged(int)"), self.setNetdevEnabled)
QObject.connect(self.ui.pushButton_hddDevice, SIGNAL("clicked()"), self.addHddDevice)
QObject.connect(self.ui.pushButton_mount, SIGNAL("clicked()"), self.addMount)
@ -67,8 +70,8 @@ class ConfigWindow(QWidget):
QObject.connect(item, SIGNAL("valueChanged(int)"), self.setSlider)
for item in self.checkboxes.values():
QObject.connect(item, SIGNAL("stateChanged(int)"), self.setStatus)
def keyPressEvent(self, event):
"""delete events"""
if (event.key() == Qt.Key_Delete):
@ -86,27 +89,21 @@ class ConfigWindow(QWidget):
def addHddDevice(self):
"""function to add mount points"""
self.ui.listWidget_hddDevice.clearSelection()
if (self.ui.listWidget_hddDevice.count() > 9):
self.ui.listWidget_hddDevice.takeItem(0)
self.ui.listWidget_hddDevice.addItem(self.ui.comboBox_hddDevice.currentText())
def addMount(self):
"""function to add mount points"""
self.ui.listWidget_mount.clearSelection()
if (self.ui.listWidget_mount.count() > 9):
self.ui.listWidget_mount.takeItem(0)
self.ui.listWidget_mount.addItem(self.ui.comboBox_mount.currentText())
def addTempDevice(self):
"""function to add temperature device"""
self.ui.listWidget_tempDevice.clearSelection()
if (self.ui.listWidget_tempDevice.count() > 9):
self.ui.listWidget_tempDevice.takeItem(0)
self.ui.listWidget_tempDevice.addItem(self.ui.comboBox_tempDevice.currentText())
def setNetdevEnabled(self):
"""function to set enabled netdev"""
if (self.ui.checkBox_netdev.checkState() == 0):
@ -132,7 +129,7 @@ class ConfigWindow(QWidget):
new_value = value + 1
second_slider.setValue(new_value)
def setStatus(self):
"""function to enable label"""
for label in self.checkboxes.keys():

View File

@ -19,8 +19,6 @@
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
import datetime
@ -34,253 +32,259 @@ class DataEngine:
def __init__(self, parent):
"""class definition"""
self.parent = parent
def connectToEngine(self):
def connectToEngine(self, bools=None, dataEngines=None, interval=1000, names=None):
"""function to initializate engine"""
self.parent.systemmonitor = self.parent.dataEngine("systemmonitor")
self.parent.extsysmon = self.parent.dataEngine("ext-sysmon")
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):
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):
if (bools['cpu'] > 0):
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)
def dataUpdated(self, sourceName, data, ptm):
"""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:
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)))
days = value.days
hours = int(value.seconds / 60 / 60)
minutes = int(value.seconds / 60 % 60)
line = self.parent.uptimeFormat
if (line.split('$uptime')[0] != line):
uptimeText = "%3id%2ih%2im" % (days, hours, minutes)
line = line.split('$uptime')[0] + uptimeText + line.split('$uptime')[1]
elif (line.split('$custom')[0] != line):
uptimeText = self.parent.custom_uptime
if (uptimeText.split('$ds')[0] != uptimeText):
uptimeText = "%s%3i%s" % (uptimeText.split('$ds')[0], days, uptimeText.split('$ds')[1])
if (uptimeText.split('$hs')[0] != uptimeText):
uptimeText = "%s%2i%s" % (uptimeText.split('$hs')[0], hours, uptimeText.split('$hs')[1])
if (uptimeText.split('$ms')[0] != uptimeText):
uptimeText = "%s%2i%s" % (uptimeText.split('$ms')[0], minutes, uptimeText.split('$ms')[1])
line = line.split('$custom')[0] + uptimeText + line.split('$custom')[1]
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_uptime.setText(text)
elif (sourceName == "cpu/system/TotalLoad"):
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()
if (formats['uptime'].split('$uptime')[0] != formats['uptime']):
updatedData['value'] = "%3id%2ih%2im" % (days, hours, minutes)
elif (formats['uptime'].split('$custom')[0] != formats['uptime']):
updatedData['value'] = adv['customUptime']
if (updatedData['value'].split('$dd')[0] != updatedData['value']):
updatedData['value'] = "%s%03i%s" % (updatedData['value'].split('$dd')[0], days, updatedData['value'].split('$dd')[1])
if (updatedData['value'].split('$d')[0] != updatedData['value']):
updatedData['value'] = "%s%i%s" % (updatedData['value'].split('$d')[0], days, updatedData['value'].split('$d')[1])
if (updatedData['value'].split('$hh')[0] != updatedData['value']):
updatedData['value'] = "%s%02i%s" % (updatedData['value'].split('$hh')[0], hours, updatedData['value'].split('$hh')[1])
if (updatedData['value'].split('$h')[0] != updatedData['value']):
updatedData['value'] = "%s%i%s" % (updatedData['value'].split('$h')[0], hours, updatedData['value'].split('$h')[1])
if (updatedData['value'].split('$mm')[0] != updatedData['value']):
updatedData['value'] = "%s%02i%s" % (updatedData['value'].split('$mm')[0], minutes, updatedData['value'].split('$mm')[1])
if (updatedData['value'].split('$m')[0] != updatedData['value']):
updatedData['value'] = "%s%i%s" % (updatedData['value'].split('$m')[0], minutes, updatedData['value'].split('$m')[1])
except:
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,62 +24,84 @@ from PyKDE4.kdeui import *
from PyKDE4.kio import *
from PyKDE4 import plasmascript
from PyKDE4.plasma import Plasma
import commands, os, shutil, time
import commands, os, shutil
import configdef
import configwindow
import dataengine
import ptmnotify
import reinit
import tooltip
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):
def __init__(self, parent, args=None):
"""widget definition"""
plasmascript.Applet.__init__(self, parent)
# initialization
def init(self):
"""function to initializate widget"""
self._name = str(self.package().metadata().pluginName())
self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
self.setupVar()
self.dataengine = dataengine.DataEngine(self)
self.reinit = reinit.Reinit(self)
self.reinit = reinit.Reinit(self, self.ptm['defaults'])
self.tooltipAgent = tooltip.Tooltip(self)
self.timer = QTimer()
QObject.connect(self.timer, SIGNAL("timeout()"), self.updateLabel)
self.setupVar()
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)
# Create notifyrc file if required
kdehome = unicode(KGlobal.dirs().localkdedir())
if ((not os.path.exists(kdehome + "/share/apps/plasma_applet_pytextmonitor/plasma_applet_pytextmonitor.notifyrc")) and
(not os.path.exists("/usr" + "/share/apps/plasma_applet_pytextmonitor/plasma_applet_pytextmonitor.notifyrc"))):
self.createNotifyrc(kdehome)
# internal functions
def createConfigurationInterface(self, parent):
"""function to setup configuration window"""
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)
def createNotifyrc(self, kdehome):
"""function to create *.notifyrc"""
if (not os.path.isdir(kdehome + "/share/apps/plasma_applet_pytextmonitor")):
os.mkdir(kdehome + "/share/apps/plasma_applet_pytextmonitor")
shutil.copy(kdehome + "/share/apps/plasma/plasmoids/py-text-monitor/contents/code/plasma_applet_pytextmonitor.notifyrc",
kdehome + "/share/apps/plasma_applet_pytextmonitor/")
def initTooltip(self):
"""function to create tooltip"""
self.tooltip = Plasma.ToolTipContent()
@ -87,83 +109,97 @@ class pyTextWidget(plasmascript.Applet):
self.tooltip.setSubText('')
Plasma.ToolTipManager.self().registerWidget(self.applet)
# graphical tooltip
self.tooltip_pixmap = QPixmap()
self.tooltip_scene = QGraphicsScene()
self.tooltip_view = QGraphicsView(self.tooltip_scene)
self.tooltip_view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.tooltip_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.tooltipScene = QGraphicsScene()
self.tooltipView = QGraphicsView(self.tooltipScene)
self.tooltipView.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.tooltipView.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# show 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):
"""function to doubleclick event"""
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):
"""function to setup variables"""
self.netdev = ''
self.cpuCore = {-1:" 0.0"}
self.cpuClockCore = {-1:" 0"}
self.ptm = {}
# dataengines
self.ptm['dataengine'] = {'ext':None, 'system':None, 'time':None}
# defaults
self.ptm['defaults'] = {}
self.ptm['defaults']['confBool'] = {'bat':'batBool', 'cpu':'cpuBool',
'cpuclock':'cpuclockBool', 'custom':'customBool', 'gpu':'gpuBool',
'gputemp':'gputempBool', 'hdd':'hddBool', 'hddtemp':'hddtempBool',
'mem':'memBool', 'net':'netBool', 'swap':'swapBool', 'temp':'tempBool',
'uptime':'uptimeBool', 'player':'playerBool', 'time':'timeBool'}
self.ptm['defaults']['confColor'] = {'cpu':'cpu_color', 'cpuclock':'cpuclock_color',
'down':'down_color', 'mem':'mem_color', 'swap':'swap_color', 'up':'up_color'}
self.ptm['defaults']['confFormat'] = {'bat':'batFormat', 'cpu':'cpuFormat',
'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'gpu':'gpuFormat',
'gputemp':'gputempFormat', 'hdd':'hddFormat', 'hddtemp':'hddtempFormat',
'mem':'memFormat', 'net':'netFormat', 'player':'playerFormat',
'swap':'swapFormat', 'temp':'tempFormat', 'time':'timeFormat',
'uptime':'uptimeFormat'}
self.ptm['defaults']['bool'] = {'bat':0, 'cpu':2, 'cpuclock':0, 'custom':0,
'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2, 'player':0,
'swap':2, 'temp':0, 'time':0, 'uptime':0}
self.ptm['defaults']['format'] = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]',
'gputemp':'[gpu temp: $gputemp&deg;C]', 'hdd':'[hdd: $hdd0%]',
'hddtemp':'[hdd temp: $hddtemp0&deg;C]', 'mem':'[mem: $mem%]',
'net':'[$netdev: $down/$upKB/s]', 'player':'[$artist - $title]',
'swap':'[swap: $swap%]', 'temp':'[temp: $temp0&deg;C]',
'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.cpuCore[i] = str(" 0.0")
self.cpuClockCore[i] = str(" 0")
self.netSpeed = {"up":" 0", "down":" 0"}
self.tempNames = []
self.temp = {}
self.mountNames = []
self.mount = {}
self.hddNames = []
self.hdd = {}
self.tooltipColors = {}
self.tooltipNum = 100
self.tooltipReq = []
self.tooltipValues = {'cpu':[0.0, 0.01], 'cpuclock':[0.0, 0.01], 'mem':[0.0, 0.01],
'swap':[0.0, 0.01], 'up':[0.0, 0.01], 'down':[0.0, 0.01]}
# create dictionaries
self.dict_orders = {'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'}
self.dict_defFormat = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]',
'gputemp':'[gpu temp: $gputemp&deg;C]', 'hdd':'[hdd: $hdd0%]',
'hddtemp':'[hdd temp: $hddtemp0&deg;C]', 'mem':'[mem: $mem%]',
'net':'[$netdev: $down/$upKB/s]', 'swap':'[swap: $swap%]',
'temp':'[temp: $temp0&deg;C]', 'uptime':'[uptime: $uptime]',
'player':'[$artist - $title]', 'time':'[$time]'}
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):
"""function to show configuration window"""
plasmascript.Applet.showConfigurationInterface(self)
def startPolling(self):
try:
self.timer.start()
@ -171,163 +207,350 @@ class pyTextWidget(plasmascript.Applet):
self.tooltip.setSubText('')
except Exception as 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
def updateLabel(self):
"""function to update label"""
if (self.batBool > 0):
if (self.ptm['vars']['bools']['bat'] > 0):
self.batText()
if (self.cpuBool > 0):
if (self.ptm['vars']['bools']['cpu'] > 0):
self.cpuText()
if (self.cpuclockBool > 0):
if (self.ptm['vars']['bools']['cpuclock'] > 0):
self.cpuclockText()
if (self.customBool > 0):
self.getCustom()
if (self.hddBool > 0):
self.mountText()
if ((self.memBool > 0) and (self.memInMb == False)):
if (self.ptm['vars']['bools']['hdd'] > 0):
self.hddText()
if (self.ptm['vars']['bools']['hddtemp'] > 0):
self.hddtempText()
if (self.ptm['vars']['bools']['mem'] > 0):
self.memText()
if (self.netBool > 0):
if (self.ptm['vars']['bools']['net'] > 0):
self.netText()
if ((self.swapBool > 0) and (self.swapInMb == False)):
if (self.ptm['vars']['bools']['swap'] > 0):
self.swapText()
if (self.tempBool > 0):
if (self.ptm['vars']['bools']['temp'] > 0):
self.tempText()
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):
"""function to set battery text"""
line = self.batFormat
line = self.ptm['vars']['formats']['bat']
if (line.split('$bat')[0] != line):
try:
with open (self.battery_device, 'r') as bat_file:
bat = bat_file.readline().split('\n')[0]
with open (self.ptm['vars']['adv']['batDev'], 'r') as batFile:
bat = batFile.readline()[:-1]
except:
bat = 'off'
bat = "off"
bat = "%3s" % (bat)
line = line.split('$bat')[0] + bat + line.split('$bat')[1]
if (line.split('$ac')[0] != line):
try:
with open (self.ac_device, 'r') as bat_file:
bat = bat_file.readline().split('\n')[0]
with open (self.ptm['vars']['adv']['acDev'], 'r') as batFile:
bat = batFile.readline()[:-1]
if (bat == '1'):
bat = '(*)'
bat = "(*)"
else:
bat = '( )'
bat = "( )"
except:
bat = '(?)'
bat = "(?)"
line = line.split('$ac')[0] + bat + line.split('$ac')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_bat.setText(text)
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("bat", text)
def cpuText(self):
"""function to set cpu text"""
line = self.cpuFormat
for core in self.cpuCore.keys():
if (core > -1):
if (line.split('$cpu'+str(core))[0] != line):
line = line.split('$cpu'+str(core))[0] + self.cpuCore[core] + line.split('$cpu'+str(core))[1]
line = self.ptm['vars']['formats']['cpu']
keys = self.ptm['values']['cpu'].keys()
keys.sort()
keys.reverse()
for core in keys[:-1]:
if (line.split('$cpu' + str(core))[0] != line):
value = "%5.1f" % (self.ptm['values']['cpu'][core])
line = line.split('$cpu' + str(core))[0] + value + line.split('$cpu' + str(core))[1]
if (line.split('$cpu')[0] != line):
line = line.split('$cpu')[0] + self.cpuCore[-1] + line.split('$cpu')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_cpu.setText(text)
value = "%5.1f" % (self.ptm['values']['cpu'][-1])
line = line.split('$cpu')[0] + value + line.split('$cpu')[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("cpu", text)
def cpuclockText(self):
"""function to set cpu clock text"""
line = self.cpuclockFormat
for core in self.cpuClockCore.keys():
if (core > -1):
if (line.split('$cpucl'+str(core))[0] != line):
line = line.split('$cpucl'+str(core))[0] + self.cpuClockCore[core] + line.split('$cpucl'+str(core))[1]
line = self.ptm['vars']['formats']['cpuclock']
keys = self.ptm['values']['cpuclock'].keys()
keys.sort()
keys.reverse()
for core in keys[:-1]:
if (line.split('$cpucl' + str(core))[0] != line):
value = "%4.0f" % (self.ptm['values']['cpuclock'][core])
line = line.split('$cpucl' + str(core))[0] + value + line.split('$cpucl' + str(core))[1]
if (line.split('$cpucl')[0] != line):
line = line.split('$cpucl')[0] + self.cpuClockCore[-1] + line.split('$cpucl')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_cpuclock.setText(text)
value = "%4.0f" % (self.ptm['values']['cpuclock'][-1])
line = line.split('$cpucl')[0] + value + line.split('$cpucl')[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("cpuclock", text)
def hddText(self):
"""function to set hdd text"""
line = self.ptm['vars']['formats']['hdd']
devices = range(len(self.ptm['names']['hdd']))
devices.reverse()
for i in devices:
if (line.split('$hdd' + str(i))[0] != line):
line = line.split('$hdd' + str(i))[0] + str(self.ptm['values']['hdd'][devices[i]]) + line.split('$hdd' + str(i))[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("hdd", text)
def hddtempText(self):
"""function to set hddtemp text"""
line = self.ptm['vars']['formats']['hddtemp']
devices = range(len(self.ptm['names']['hddtemp']))
devices.reverse()
for i in devices:
if (line.split('$hddtemp' + str(i))[0] != line):
line = line.split('$hddtemp' + str(i))[0] + self.ptm['values']['hddtemp'][devices[i]] + line.split('$hddtemp' + str(i))[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("hddtemp", text)
def memText(self):
"""function to set mem text"""
full = self.mem_uf + self.mem_free
try:
mem = 100 * self.mem_used / full
mem = "%5s" % (str(round(mem, 1)))
except:
mem = " N\\A"
if (self.memFormat.split('$mem')[0] != self.memFormat):
line = self.memFormat.split('$mem')[0] + mem + self.memFormat.split('$mem')[1]
else:
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)
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:
mem = 100 * self.ptm['values']['mem']['app'] / (self.ptm['values']['mem']['free'] + self.ptm['values']['mem']['used'])
mem = "%5.1f" % (round(mem, 1))
except:
mem = " N\\A"
line = line.split('$mem')[0] + mem + line.split('$mem')[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("mem", text)
def netText(self):
"""function to set network text"""
line = self.netFormat
if (line.split('$up')[0] != line):
line = line.split('$up')[0] + self.netSpeed['up'] + line.split('$up')[1]
line = self.ptm['vars']['formats']['net']
if (line.split('$netdev')[0] != 0):
line = line.split('$netdev')[0] + self.ptm['names']['net'] + line.split('$netdev')[1]
if (line.split('$down')[0] != line):
line = line.split('$down')[0] + self.netSpeed['down'] + line.split('$down')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_net.setText(text)
value = "%4.0f" %(self.ptm['values']['net']['down'])
line = line.split('$down')[0] + value + line.split('$down')[1]
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'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("net", text)
def swapText(self):
"""function to set swap text"""
full = self.swap_used + self.swap_free
try:
mem = 100 * self.swap_used / full
mem = "%5s" % (str(round(mem, 1)))
except:
mem = " N\\A"
if (self.swapFormat.split('$swap')[0] != self.swapFormat):
line = self.swapFormat.split('$swap')[0] + mem + self.swapFormat.split('$swap')[1]
else:
line = self.swapFormat
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_swap.setText(text)
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:
mem = 100 * self.ptm['values']['swap']['used'] / (self.ptm['values']['swap']['free'] + self.ptm['values']['swap']['used'])
mem = "%5.1f" % (round(mem, 1))
except:
mem = " N\\A"
line = line.split('$swap')[0] + mem + line.split('$swap')[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("swap", text)
def tempText(self):
"""function to set temperature text"""
line = self.tempFormat
for i in range(len(self.tempNames)):
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]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_temp.setText(text)
def getCustom(self):
"""function to get output from custom command"""
commandOut = commands.getoutput(self.custom_command)
line = self.customFormat
line = line.split('$custom')[0] + commandOut + line.split('$custom')[1]
text = self.formatLine.split('$LINE')[0] + line + self.formatLine.split('$LINE')[1]
self.label_custom.setText(text)
@pyqtSignature("dataUpdated(const QString &, const Plasma::DataEngine::Data &)")
def dataUpdated(self, sourceName, data):
"""function to update label"""
self.dataengine.dataUpdated(sourceName, data)
line = self.ptm['vars']['formats']['temp']
devices = range(len(self.ptm['names']['temp']))
devices.reverse()
for i in devices:
if (line.split('$temp' + str(i))[0] != line):
line = line.split('$temp' + str(i))[0] + self.ptm['values']['temp'][devices[i]] + line.split('$temp' + str(i))[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("temp", text)
# external functions
def addLabel(self, name=None, text=None, add=True):
"""function to add new label"""
if (add):
self.ptm['labels'][name] = CustomPlasmaLabel(self.applet, name)
self.ptm['layout'].addItem(self.ptm['labels'][name])
self.setText(name, text)
else:
self.setText(name, '')
self.ptm['layout'].removeItem(self.ptm['labels'][name])
def applySettings(self, name=None, ptm=None):
"""function to read settings"""
self.ptm[name] = ptm
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'][0] + line + self.ptm['vars']['app']['format'][1]
return output

View File

@ -26,15 +26,14 @@ import commands
class PTMNotify:
def __init__(self, parent):
"""class definition"""
self.parent = parent
def init(self):
def init(self, name=None):
"""function to init notification"""
content = self.initText(self.parent)
content = self.initText(name)
self.createNotify(content)
def createNotify(self, content):
"""function to create notification for label"""
notification = KNotification(content[0])
@ -42,32 +41,20 @@ class PTMNotify:
notification.setTitle("PyTextMonitor info ::: " + content[0]);
notification.setText(content[1]);
notification.sendEvent();
def createText(self, type):
"""function to create text"""
text = ""
if (type == "system"):
if (type == "battery"):
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"))
text = "%s" %(commands.getoutput("acpi -abi"))
except:
text = "Something wrong"
elif (type == "processor"):
elif (type == "disk"):
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: %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)))
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 + "%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 == "graphical"):
@ -78,87 +65,83 @@ class PTMNotify:
elif (output.lower().find('radeon') > -1):
gpudev = "ati"
for line in output.split("\n"):
text = text + "%s %s\n" %(line.split('"')[0], line.split('"')[5])
text = text + "%s %s\n" % (line.split('"')[0], line.split('"')[5])
if (gpudev == 'nvidia'):
output = commands.getoutput("nvidia-smi -q -d UTILIZATION | grep Gpu | tail -n1")
try:
value = "%5s" % (str(round(float(output.split()[2][:-1]), 1)))
value = "%5.1f" % (round(float(output.split()[2]), 1))
except:
value = " N\A"
elif (gpudev == 'ati'):
output = commands.getoutput("aticonfig --od-getclocks | grep load | tail -n1")
try:
value = "%5s" % (str(round(float(output.split()[3][:-1]), 1)))
value = "%5.1f" % (round(float(output.split()[3]), 1))
except:
value = " N\A"
else:
value = " N\A"
text = text + "Load: %s%%\n" %(value)
text = text + "Load: %s%%\n" % (value)
if (gpudev == 'nvidia'):
output = commands.getoutput("nvidia-smi -q -d TEMPERATURE | grep Gpu | tail -n1")
try:
value = "%5s" % (str(round(float(output.split()[2][:-1]), 1)))
value = "%5.1f" % (round(float(output.split()[2]), 1))
except:
value = " N\A"
elif (gpudev == 'ati'):
output = commands.getoutput("aticonfig --od-gettemperature | grep Temperature | tail -n1")
try:
value = "%5s" % (str(round(float(output.split()[3][:-1]), 1)))
value = "%5.1f" % (round(float(output.split()[3]), 1))
except:
value = " N\A"
else:
value = " N\A"
text = text + "Temp: %s\xb0C\n" %(value)
text = text + "Temp: %s\xb0C\n" % (value)
except:
text = "Something wrong"
elif (type == "memory"):
try:
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]))
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 + "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]))))
memUsage = int(output[1].split()[1]) - (int(output[1].split()[3]) + int(output[1].split()[5]) + int(output[1].split()[6]))
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 (%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")
text = text + "Swap Device: %s (%s)" %(output[1].split()[0], output[1].split()[1])
except:
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])
text = text + "Swap Device: %s (%s)" % (output[1].split()[0], output[1].split()[1])
except:
text = "Something wrong"
elif (type == "network"):
try:
output = commands.getoutput("ifconfig -a -s").split("\n")[1:]
text = text + "Devices:"
for line in output:
text = text + " %s" %(line.split()[0])
output = commands.getoutput("ifconfig -a -s " + self.parent.parent.netdev + " && sleep 0.2 && ifconfig -a -s " + self.parent.parent.netdev).split("\n")
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))
text = text + "\n%s: %s/%s KB/s\n" %(self.parent.parent.netdev, download, upload)
output = commands.getoutput("ifconfig " + self.parent.parent.netdev + " | grep 'inet '").split()[1]
text = text + "IP: %s\n" %(output[:-1])
output = commands.getoutput("wget http://checkip.dyndns.org/ -q -O - | awk '{print $6}' | sed 's/<.*>//g'")
text = text + "External IP: %s" %(output[:-1])
devices = [line.split()[0] for line in output]
text = text + "Devices: %s\n" % (' '.join(devices))
for dev in devices:
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))
upload = int((int(output[3].split()[6]) - int(output[1].split()[6])) / (0.2 * 1024))
text = text + "%s: %i/%i KB/s" % (dev, download, upload)
output = commands.getoutput("ifconfig " + dev + " | grep 'inet ' || echo ' inet Null'").split()[1]
text = text + " (IP: %s)\n" % (output)
output = commands.getoutput("wget -qO- http://ifconfig.me/ip")
text = text + "External IP: %s" % (output)
except:
text = "Something wrong"
elif (type == "battery"):
try:
text = text + "%s" %(commands.getoutput("acpi -abi"))
except:
text = "Something wrong"
elif (type == "musicplayer"):
elif (type == "player"):
try:
artist = "N\\A"
album = "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-")
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-")
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")
for line in output.split("\n"):
if (line.split(": ")[0] == "Artist"):
@ -167,107 +150,71 @@ class PTMNotify:
album = line.split(": ")[1]
elif (line.split(": ")[0] == "Title"):
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")
album = commands.getoutput("qmmp --nowplaying '%if(%a,%a,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:
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]
return content
def initText(self, sender):
def initText(self, name):
"""function to send text"""
try:
if (sender == self.parent.parent.label_time):
content = self.createText("system")
return content
except:
pass
try:
if (sender == self.parent.parent.label_uptime):
content = self.createText("system")
return content
except:
pass
try:
if (sender == self.parent.parent.label_cpu):
content = self.createText("processor")
return content
except:
pass
try:
if (sender == self.parent.parent.label_cpuclock):
content = self.createText("processor")
return content
except:
pass
try:
if (sender == self.parent.parent.label_temp):
content = self.createText("processor")
return content
except:
pass
try:
if (sender == self.parent.parent.label_gpu):
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
if (name == "bat"):
return self.createText("battery")
elif (name == "cpu"):
return self.createText("processor")
elif (name == "cpuclock"):
return self.createText("processor")
elif (name == "custom"):
return self.createText("system")
elif (name == "gpu"):
return self.createText("graphical")
elif (name == "gputemp"):
return self.createText("graphical")
elif (name == "hdd"):
return self.createText("disk")
elif (name == "hddtemp"):
return self.createText("disk")
elif (name == "mem"):
return self.createText("memory")
elif (name == "net"):
return self.createText("network")
elif (name == "player"):
return self.createText("player")
elif (name == "swap"):
return self.createText("memory")
elif (name == "temp"):
return self.createText("processor")
elif (name == "time"):
return self.createText("system")
elif (name == "uptime"):
return self.createText("system")
else:
return None

View File

@ -19,253 +19,76 @@
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
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():
def __init__(self, parent):
def __init__(self, parent, defaults=None):
"""class definition"""
self.parent = parent
def reinit(self, confAccept=False):
self.defaults = defaults
self.labels = defaults['format'].keys()
def reinit(self):
"""function to reinitializate widget"""
settings = config.Config(self.parent)
self.parent.interval = settings.get('interval', 2000).toInt()[0]
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'))
self.parent.custom_uptime = str(settings.get('custom_uptime', '$ds,$hs,$ms'))
self.parent.tempNames = []
self.parent.temp = {}
for item in str(settings.get('temp_device', '')).split('@@'):
self.parent.tempNames.append(item)
self.parent.temp[item] =" 0.0"
self.parent.mountNames = []
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]
self.parent.tooltipColors['cpu'] = str(settings.get('cpu_color', '#ff0000'))
self.parent.tooltipColors['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00'))
self.parent.tooltipColors['mem'] = str(settings.get('mem_color', '#0000ff'))
self.parent.tooltipColors['swap'] = str(settings.get('swap_color', '#ffff00'))
self.parent.tooltipColors['down'] = str(settings.get('down_color', '#00ffff'))
self.parent.tooltipColors['up'] = str(settings.get('up_color', '#ff00ff'))
self.parent.tooltipReq = []
self.parent.label_order = str(settings.get('label_order', '1345'))
for label in self.parent.dict_orders.values():
if ((label == 'cpu') or (label == 'mem') or (label == 'swap') or (label == 'net')):
exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 2).toInt()[0]')
else:
exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 0).toInt()[0]')
# labels
for order in self.parent.label_order:
if (order == "1"):
if (self.parent.cpuBool > 0):
self.parent.cpuFormat = str(settings.get('cpuFormat', '[cpu: $cpu%]'))
self.parent.label_cpu = NewPlasmaLabel(self.parent.applet, self.parent)
line = self.parent.cpuFormat
text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1]
self.parent.label_cpu.setText(text)
self.parent.layout.addItem(self.parent.label_cpu)
if (self.parent.cpuBool == 2):
self.parent.tooltipReq.append('cpu')
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
ptmVars = {}
ptmVars['adv'] = {}
ptmVars['adv']['acDev'] = str(settings.get('ac_device', '/sys/class/power_supply/AC/online'))
ptmVars['adv']['batDev'] = str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity'))
ptmVars['adv']['customTime'] = str(settings.get('custom_time', '$hh:$mm'))
ptmVars['adv']['customUptime'] = str(settings.get('custom_uptime', '$dd,$hh,$mm'))
ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0]
ptmVars['adv']['netDir'] = str(settings.get('netdir', '/sys/class/net'))
ptmVars['adv']['player'] = str(settings.get('player_name', "amarok"))
ptmVars['app'] = {}
ptmVars['app']['format'] = ["<pre><p align=\"center\"><span style=\" font-family:'" + str(settings.get('font_family', 'Terminus')) +\
"'; font-style:" + str(settings.get('font_style', 'normal')) + "; font-size:" + str(settings.get('font_size', 12)) +\
"pt; font-weight:" + str(settings.get('font_weight', 400)) + "; color:" + str(settings.get('font_color', '#000000')) +\
";\">", "</span></p></pre>"]
ptmVars['app']['interval'] = settings.get('interval', 2000).toInt()[0]
ptmVars['app']['order'] = str(settings.get('label_order', '1345'))
ptmVars['tooltip'] = {}
ptmVars['tooltip']['colors'] = {}
ptmVars['tooltip']['colors']['cpu'] = str(settings.get('cpu_color', '#ff0000'))
ptmVars['tooltip']['colors']['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00'))
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:
ptmNames['net'] = ""
ptmNames['temp'] = str(settings.get('temp_device', '')).split('@@')
self.parent.applySettings('names', ptmNames)
ptmVars['formats'] = {}
ptmVars['tooltip']['required'] = []
for order in ptmVars['app']['order']:
label = self.defaults['order'][order]
if (ptmVars['bools'][label] > 0):
ptmVars['formats'][label] = str(settings.get(self.defaults['confFormat'][label], self.defaults['format'][label]))
text = ptmVars['app']['format'][0] + ptmVars['formats'][label] + ptmVars['app']['format'][1]
self.parent.addLabel(label, text, True)
if ((label in ['cpu', 'cpuclock', 'mem', 'net', 'swap']) and (ptmVars['bools'][label] == 2)):
if (label == 'net'):
ptmVars['tooltip']['required'].append("down")
ptmVars['tooltip']['required'].append("up")
else:
self.parent.netdev = self.parent.setupNetdev()
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
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()
ptmVars['tooltip']['required'].append(label)
self.parent.applySettings('vars', ptmVars)

View File

@ -26,29 +26,28 @@ class Tooltip():
def __init__(self, parent):
"""class definition"""
self.parent = parent
def addValue(self, type, value=0.0, tooltipNum=100):
"""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):
def createGraphic(self, ptmVars, ptmTooltip, widget):
"""function to create graph"""
widget.clear()
maxOne = [100.0, 100.0]
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
for type in types:
bound = [values[type][0], values[type][0]]
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]))]
norm = [maxOne[0] / len(values[type]), maxOne[1] / (1.5 * bounds[type])]
pen.setColor(QColor(colors[type]))
if (down):
shift = (types.index(type) - 1) * maxOne[0]
@ -56,10 +55,10 @@ class Tooltip():
shift = types.index(type) * maxOne[0]
for i in range(len(values[type])-1):
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
y2 = -(values[type][i+1] - bound[0]) * norm[1]
y2 = -values[type][i+1] * norm[1]
widget.addLine(x1, y1, x2, y2, pen)
if (type == 'down'):
down = True

View File

@ -27,32 +27,30 @@ import os
class Util():
def __init__(self, applet):
self.applet = applet
def createDirectory(self, name):
if not os.path.isdir(name):
try:
os.mkdir(name)
except:
print 'Failed to create directory: ' + name
print ('Failed to create directory: ' + name)
def kdeHome(self):
return unicode(KGlobal.dirs().localkdedir())
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)
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)
copyfile(source, destination)
def createConfig(self):
self.createDirectory(self.kdeHome() + 'share/apps/%s' % 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)
copyfile(source, destination)

View File

@ -19,7 +19,7 @@
<property name="minimumSize">
<size>
<width>575</width>
<height>500</height>
<height>593</height>
</size>
</property>
<property name="maximumSize">
@ -200,7 +200,9 @@ $custom - custom format</string>
<string>$cpu - total load CPU, %
$cpu0 - load CPU for core 0, %
...
$cpu7 - load CPU for core 7, %</string>
$cpu9 - load CPU for core 9, %
...
$cpuN - load CPU for core N, %</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -264,7 +266,9 @@ $cpu7 - load CPU for core 7, %</string>
<string>$cpucl - average CPU clock, MHz
$cpucl0 - CPU clock for core 0, MHz
...
$cpucl7 - CPU clock for core 7, MHz</string>
$cpucl9 - CPU clock for core 9, MHz
...
$cpuclN - CPU clock for core N, MHz</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -500,7 +504,8 @@ $cpucl7 - CPU clock for core 7, MHz</string>
<widget class="QLineEdit" name="lineEdit_mem">
<property name="toolTip">
<string>$mem - RAM usage, %
$memmb - RAM usage, MB</string>
$memmb - RAM usage, MB
$memgb - RAM usage, GB</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -562,7 +567,8 @@ $memmb - RAM usage, MB</string>
<widget class="QLineEdit" name="lineEdit_swap">
<property name="toolTip">
<string>$swap - swap usage, %
$swapmb - swap usage, MB</string>
$swapmb - swap usage, MB
$swapgb - swap usage, GB</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -1037,9 +1043,12 @@ $s - seconds w\o zero</string>
<item>
<widget class="QLineEdit" name="lineEdit_uptimeFormat">
<property name="toolTip">
<string>$ds - uptime days
$hs - uptime hours
$ms - uptime minutes</string>
<string>$dd - uptime days
$d - uptime days without zero
$hh - uptime hours
$h - uptime hours without zero
$mm - uptime minutes
$m - uptime minutes without zero</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -1372,31 +1381,6 @@ del - remove item</string>
</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>Command to run, example:
wget -qO- http://ifconfig.me/ip - get external IP</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="spacer_advanced">
<property name="orientation">
@ -1412,7 +1396,7 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<widget class="QWidget" name="tooltip">
<attribute name="title">
<string>Tooltip</string>
</attribute>
@ -2055,6 +2039,213 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
</item>
</layout>
</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>
</item>
</layout>
@ -2130,7 +2321,6 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
<tabstop>lineEdit_batdev</tabstop>
<tabstop>lineEdit_acdev</tabstop>
<tabstop>comboBox_playerSelect</tabstop>
<tabstop>lineEdit_customCommand</tabstop>
<tabstop>spinBox_tooltipNum</tabstop>
<tabstop>kcolorcombo_cpu</tabstop>
<tabstop>kcolorcombo_cpuclock</tabstop>
@ -2144,6 +2334,11 @@ wget -qO- http://ifconfig.me/ip - get external IP</string>
<tabstop>kcolorcombo</tabstop>
<tabstop>comboBox_style</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>
<resources/>
<connections/>

View File

@ -3,14 +3,14 @@ IconName=system
Name=PyTextMonitor
Comment=PyTextMonitor information
[Event/system]
Name=System information
Comment=System information
[Event/battery]
Name=Battery information
Comment=Battery information
Action=Popup
[Event/processor]
Name=Processor information
Comment=Processor information
[Event/disk]
Name=Disk information
Comment=Disk information
Action=Popup
[Event/graphical]
@ -23,27 +23,22 @@ Name=Memory information
Comment=Memory information
Action=Popup
[Event/disk]
Name=Disk information
Comment=Disk information
Action=Popup
[Event/network]
Name=Network information
Comment=Network information
Action=Popup
[Event/battery]
Name=Battery information
Comment=Battery information
Action=Popup
[Event/graphinfo]
Name=Graphical Information
Comment=Graphical Information
Action=Popup
[Event/musicplayer]
[Event/player]
Name=Now playing
Comment=Now playing
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 ""
"Project-Id-Version: \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"
"PO-Revision-Date: 2014-04-02 20:49+0400\n"
"POT-Creation-Date: 2014-04-05 22:36+0400\n"
"PO-Revision-Date: 2014-04-05 22:36+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
@ -84,7 +84,7 @@ msgstr ""
msgid "CPU"
msgstr "CPU"
#. i18n: file: ui/configwindow.ui:203
#. i18n: file: ui/configwindow.ui:205
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpu)
#: rc.cpp:33
#, no-c-format
@ -92,140 +92,154 @@ msgid ""
"$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n"
"...\n"
"$cpu7 - load CPU for core 7, %"
"$cpu9 - load CPU for core 9, %\n"
"...\n"
"$cpuN - load CPU for core N, %"
msgstr ""
"$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n"
"...\n"
"$cpu7 - load CPU for core 7, %"
"$cpu9 - load CPU for core 9, %\n"
"...\n"
"$cpuN - load CPU for core N, %"
#. i18n: file: ui/configwindow.ui:251
#. i18n: file: ui/configwindow.ui:253
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: rc.cpp:39
#: rc.cpp:41
msgid "CPU Clock"
msgstr "CPU Clock"
#. i18n: file: ui/configwindow.ui:267
#. i18n: file: ui/configwindow.ui:271
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpuclock)
#: rc.cpp:42
#: rc.cpp:44
msgid ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl7 - CPU clock for core 7, MHz"
"$cpucl9 - CPU clock for core 9, MHz\n"
"...\n"
"$cpuclN - CPU clock for core N, MHz"
msgstr ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl7 - CPU clock for core 7, MHz"
"$cpucl9 - CPU clock for core 9, MHz\n"
"...\n"
"$cpuclN - CPU clock for core N, MHz"
#. i18n: file: ui/configwindow.ui:315
#. i18n: file: ui/configwindow.ui:319
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
#: rc.cpp:48
#: rc.cpp:52
msgid "Temperature"
msgstr "Temperature"
#. i18n: file: ui/configwindow.ui:325
#. i18n: file: ui/configwindow.ui:329
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_temp)
#: rc.cpp:51
#: rc.cpp:55
msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
msgstr "$tempN - physical temperature on device N (from 0). Example: $temp0"
#. i18n: file: ui/configwindow.ui:373
#. i18n: file: ui/configwindow.ui:377
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpu)
#: rc.cpp:54
#: rc.cpp:58
msgid "GPU"
msgstr "GPU"
#. i18n: file: ui/configwindow.ui:383
#. i18n: file: ui/configwindow.ui:387
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpu)
#: rc.cpp:58
#: rc.cpp:62
#, no-c-format
msgid "$gpu - gpu usage, %"
msgstr "$gpu - gpu usage, %"
#. i18n: file: ui/configwindow.ui:431
#. i18n: file: ui/configwindow.ui:435
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpuTemp)
#: rc.cpp:61
#: rc.cpp:65
msgid "GPU Temp"
msgstr "GPU Temp"
#. i18n: file: ui/configwindow.ui:441
#. i18n: file: ui/configwindow.ui:445
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpuTemp)
#: rc.cpp:64
#: rc.cpp:68
msgid "$gputemp - physical temperature on GPU"
msgstr "$gputemp - physical temperature on GPU"
#. i18n: file: ui/configwindow.ui:489
#. i18n: file: ui/configwindow.ui:493
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: rc.cpp:67
#: rc.cpp:71
msgid "Memory"
msgstr "Memory"
#. i18n: file: ui/configwindow.ui:503
#. i18n: file: ui/configwindow.ui:508
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71
#: rc.cpp:75
#, no-c-format
msgid ""
"$mem - RAM usage, %\n"
"$memmb - RAM usage, MB"
"$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr ""
"$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:556
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75
#: rc.cpp:80
msgid "Swap"
msgstr "Swap"
#. i18n: file: ui/configwindow.ui:565
#. i18n: file: ui/configwindow.ui:571
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79
#: rc.cpp:84
#, no-c-format
msgid ""
"$swap - swap usage, %\n"
"$swapmb - swap usage, MB"
"$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr ""
"$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:619
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83
#. i18n: file: ui/configwindow.ui:2106
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:89 rc.cpp:298
msgid "HDD"
msgstr "HDD"
#. i18n: file: ui/configwindow.ui:623
#. i18n: file: ui/configwindow.ui:629
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87
#: rc.cpp:93
#, no-c-format
msgid "$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:677
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90
#: rc.cpp:96
msgid "HDD Temp"
msgstr "HDD Temp"
#. i18n: file: ui/configwindow.ui:681
#. i18n: file: ui/configwindow.ui:687
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93
#: rc.cpp:99
msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
#. i18n: file: ui/configwindow.ui:729
#. i18n: file: ui/configwindow.ui:735
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96
#: rc.cpp:102
msgid "Network"
msgstr "Network"
#. i18n: file: ui/configwindow.ui:744
#. i18n: file: ui/configwindow.ui:750
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99
#: rc.cpp:105
msgid ""
"$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n"
@ -235,15 +249,15 @@ msgstr ""
"$up - upload speed, KB/s\n"
"$netdev - current network device"
#. i18n: file: ui/configwindow.ui:792
#. i18n: file: ui/configwindow.ui:798
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104
#: rc.cpp:110
msgid "Battery"
msgstr "Battery"
#. i18n: file: ui/configwindow.ui:803
#. i18n: file: ui/configwindow.ui:809
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108
#: rc.cpp:114
#, no-c-format
msgid ""
"$bat - battery charge, %\n"
@ -252,17 +266,17 @@ msgstr ""
"$bat - battery charge, %\n"
"$ac - AC status"
#. i18n: file: ui/configwindow.ui:851
#. i18n: file: ui/configwindow.ui:857
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338
#. i18n: file: ui/configwindow.ui:1347
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214
#: rc.cpp:118 rc.cpp:223
msgid "Music player"
msgstr "Music player"
#. i18n: file: ui/configwindow.ui:865
#. i18n: file: ui/configwindow.ui:871
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115
#: rc.cpp:121
msgid ""
"$album - song album\n"
"$artist - song artist\n"
@ -276,33 +290,33 @@ msgstr ""
"$time - song duration\n"
"$title - song title"
#. i18n: file: ui/configwindow.ui:913
#. i18n: file: ui/configwindow.ui:919
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122
#: rc.cpp:128
msgid "Custom"
msgstr "Custom"
#. i18n: file: ui/configwindow.ui:923
#. i18n: file: ui/configwindow.ui:929
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125
#: rc.cpp:131
msgid "$custom - get output from custom command"
msgstr "$custom - get output from custom command"
#. i18n: file: ui/configwindow.ui:977
#. i18n: file: ui/configwindow.ui:983
#. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128
#: rc.cpp:134
msgid "Advanced"
msgstr "Advanced"
#. i18n: file: ui/configwindow.ui:991
#. i18n: file: ui/configwindow.ui:997
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131
#: rc.cpp:137
msgid "Custom time format"
msgstr "Custom time format"
#. i18n: file: ui/configwindow.ui:1013
#. i18n: file: ui/configwindow.ui:1019
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134
#: rc.cpp:140
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
@ -338,47 +352,53 @@ msgstr ""
"$ss - seconds\n"
"$s - seconds w\\o zero"
#. i18n: file: ui/configwindow.ui:1033
#. i18n: file: ui/configwindow.ui:1039
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152
#: rc.cpp:158
msgid "Custom uptime format"
msgstr "Custom uptime format"
#. i18n: file: ui/configwindow.ui:1042
#. i18n: file: ui/configwindow.ui:1051
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155
#: rc.cpp:161
msgid ""
"$ds - uptime days\n"
"$hs - uptime hours\n"
"$ms - uptime minutes"
"$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 ""
"$ds - uptime days\n"
"$hs - uptime hours\n"
"$ms - uptime minutes"
"$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"
#. i18n: file: ui/configwindow.ui:1064
#. i18n: file: ui/configwindow.ui:1073
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160
#: rc.cpp:169
msgid "Temperature devices"
msgstr "Temperature devices"
#. i18n: file: ui/configwindow.ui:1090
#. i18n: file: ui/configwindow.ui:1099
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145
#. i18n: file: ui/configwindow.ui:1154
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200
#. i18n: file: ui/configwindow.ui:1209
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183
#: rc.cpp:172 rc.cpp:182 rc.cpp:192
msgid "Add"
msgstr "Add"
#. i18n: file: ui/configwindow.ui:1100
#. i18n: file: ui/configwindow.ui:1109
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155
#. i18n: file: ui/configwindow.ui:1164
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210
#. i18n: file: ui/configwindow.ui:1219
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186
#: rc.cpp:175 rc.cpp:185 rc.cpp:195
msgid ""
"Editable\n"
"del - remove item"
@ -386,109 +406,93 @@ msgstr ""
"Editable\n"
"del - remove item"
#. i18n: file: ui/configwindow.ui:1119
#. i18n: file: ui/configwindow.ui:1128
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170
#: rc.cpp:179
msgid "Mount points"
msgstr "Mount points"
#. i18n: file: ui/configwindow.ui:1174
#. i18n: file: ui/configwindow.ui:1183
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180
#: rc.cpp:189
msgid "HDD devices"
msgstr "HDD devices"
#. i18n: file: ui/configwindow.ui:1227
#. i18n: file: ui/configwindow.ui:1236
#. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190
#: rc.cpp:199
msgid "Network directory"
msgstr "Network directory"
#. i18n: file: ui/configwindow.ui:1234
#. i18n: file: ui/configwindow.ui:1243
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193
#: rc.cpp:202
msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" by default"
#. i18n: file: ui/configwindow.ui:1254
#. i18n: file: ui/configwindow.ui:1263
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196
#: rc.cpp:205
msgid "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:1266
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199
#: rc.cpp:208
msgid "Set network device"
msgstr "Set network device"
#. i18n: file: ui/configwindow.ui:1290
#. i18n: file: ui/configwindow.ui:1299
#. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202
#: rc.cpp:211
msgid "Battery device"
msgstr "Battery device"
#. i18n: file: ui/configwindow.ui:1297
#. i18n: file: ui/configwindow.ui:1306
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205
#: rc.cpp:214
msgid "\"/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:1323
#. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208
#: rc.cpp:217
msgid "AC device"
msgstr "AC device"
#. i18n: file: ui/configwindow.ui:1321
#. i18n: file: ui/configwindow.ui:1330
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211
#: rc.cpp:220
msgid "\"/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:1367
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217
#: rc.cpp:226
msgid "amarok"
msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1363
#. i18n: file: ui/configwindow.ui:1372
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220
#: rc.cpp:229
msgid "mpd"
msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1368
#. i18n: file: ui/configwindow.ui:1377
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223
#: rc.cpp:232
msgid "qmmp"
msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1386
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:226
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
#. i18n: file: ui/configwindow.ui:1401
#. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:235
msgid "Tooltip"
msgstr "Tooltip"
#. i18n: file: ui/configwindow.ui:1423
#. i18n: file: ui/configwindow.ui:1407
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236
#: rc.cpp:238
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
@ -496,100 +500,170 @@ msgstr ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
#. i18n: file: ui/configwindow.ui:1444
#. i18n: file: ui/configwindow.ui:1428
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239
#: rc.cpp:241
msgid "Number of values for tooltips"
msgstr "Number of values for tooltips"
#. i18n: file: ui/configwindow.ui:1499
#. i18n: file: ui/configwindow.ui:1483
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242
#: rc.cpp:244
msgid "CPU color"
msgstr "CPU color"
#. i18n: file: ui/configwindow.ui:1539
#. i18n: file: ui/configwindow.ui:1523
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245
#: rc.cpp:247
msgid "CPU clock color"
msgstr "CPU clock color"
#. i18n: file: ui/configwindow.ui:1579
#. i18n: file: ui/configwindow.ui:1563
#. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248
#: rc.cpp:250
msgid "Memory color"
msgstr "Memory color"
#. i18n: file: ui/configwindow.ui:1619
#. i18n: file: ui/configwindow.ui:1603
#. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251
#: rc.cpp:253
msgid "Swap color"
msgstr "Swap color"
#. i18n: file: ui/configwindow.ui:1659
#. i18n: file: ui/configwindow.ui:1643
#. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254
#: rc.cpp:256
msgid "Download speed color"
msgstr "Download speed color"
#. i18n: file: ui/configwindow.ui:1699
#. i18n: file: ui/configwindow.ui:1683
#. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257
#: rc.cpp:259
msgid "Upload speed color"
msgstr "Upload speed color"
#. i18n: file: ui/configwindow.ui:1745
#. i18n: file: ui/configwindow.ui:1729
#. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260
#: rc.cpp:262
msgid "Appearance"
msgstr "Appearance"
#. i18n: file: ui/configwindow.ui:1759
#. i18n: file: ui/configwindow.ui:1743
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263
#: rc.cpp:265
msgid "Time interval"
msgstr "Time interval"
#. i18n: file: ui/configwindow.ui:1814
#. i18n: file: ui/configwindow.ui:1798
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266
#: rc.cpp:268
msgid "Font"
msgstr "Font"
#. i18n: file: ui/configwindow.ui:1854
#. i18n: file: ui/configwindow.ui:1838
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269
#: rc.cpp:271
msgid "Font size"
msgstr "Font size"
#. i18n: file: ui/configwindow.ui:1909
#. i18n: file: ui/configwindow.ui:1893
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272
#: rc.cpp:274
msgid "Font color"
msgstr "Font color"
#. i18n: file: ui/configwindow.ui:1949
#. i18n: file: ui/configwindow.ui:1933
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275
#: rc.cpp:277
msgid "Font style"
msgstr "Font style"
#. i18n: file: ui/configwindow.ui:1999
#. i18n: file: ui/configwindow.ui:1983
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278
#: rc.cpp:280
msgid "Font weight"
msgstr "Font weight"
#: rc.cpp:279
#. i18n: file: ui/configwindow.ui:2044
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:283
msgid "DataEngine"
msgstr "DataEngine"
#. i18n: file: ui/configwindow.ui:2058
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:286
msgid "GPU device"
msgstr "GPU device"
#. i18n: file: ui/configwindow.ui:2078
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:289
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2083
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:292
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2088
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:295
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2139
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:301
msgid "MPD address"
msgstr "MPD address"
#. i18n: file: ui/configwindow.ui:2163
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:304
msgid "MPD port"
msgstr "MPD port"
#. i18n: file: ui/configwindow.ui:2218
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:307
msgid "Custom command"
msgstr "Custom command"
#. i18n: file: ui/configwindow.ui:2225
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:310
msgid "Custom command to run"
msgstr "Custom command to run"
#: rc.cpp:311
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:280
#: rc.cpp:312
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, %"

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

@ -0,0 +1,689 @@
# 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 22:36+0400\n"
"PO-Revision-Date: 2014-04-05 22:36+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:205
#. 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, %\n"
"...\n"
"$cpuN - load CPU for core N, %"
msgstr ""
"$cpu - charge totale du processeur, %\n"
"$cpu0 - charge du processeur pour le coeur 0, %\n"
"...\n"
"$cpu9 - charge processeur pour le coeur 9, %\n"
"...\n"
"$cpuN - charge processeur pour le coeur N, %"
#. i18n: file: ui/configwindow.ui:253
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: rc.cpp:41
msgid "CPU Clock"
msgstr "Horloge processeur"
#. i18n: file: ui/configwindow.ui:271
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpuclock)
#: rc.cpp:44
msgid ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl9 - CPU clock for core 9, MHz\n"
"...\n"
"$cpuclN - CPU clock for core N, 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\n"
"...\n"
"$cpuclN - Horloge du coeur N, MHz"
#. i18n: file: ui/configwindow.ui:319
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
#: rc.cpp:52
msgid "Temperature"
msgstr "Température"
#. i18n: file: ui/configwindow.ui:329
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_temp)
#: rc.cpp:55
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:377
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpu)
#: rc.cpp:58
msgid "GPU"
msgstr "Processeur graphique"
#. i18n: file: ui/configwindow.ui:387
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpu)
#: rc.cpp:62
#, no-c-format
msgid "$gpu - gpu usage, %"
msgstr "$gpu - utilisation du processeur graphique, %"
#. i18n: file: ui/configwindow.ui:435
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpuTemp)
#: rc.cpp:65
msgid "GPU Temp"
msgstr "Temp du processeur graphique"
#. i18n: file: ui/configwindow.ui:445
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpuTemp)
#: rc.cpp:68
msgid "$gputemp - physical temperature on GPU"
msgstr "$gputemp - Température physique du processeur graphique"
#. i18n: file: ui/configwindow.ui:493
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: rc.cpp:71
msgid "Memory"
msgstr "Mémoire"
#. i18n: file: ui/configwindow.ui:508
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:75
#, 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:556
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:80
msgid "Swap"
msgstr "mémoire d'échange (swap)"
#. i18n: file: ui/configwindow.ui:571
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:84
#, 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:619
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#. i18n: file: ui/configwindow.ui:2106
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:89 rc.cpp:298
msgid "HDD"
msgstr "Disque dur"
#. i18n: file: ui/configwindow.ui:629
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:93
#, 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:677
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:96
msgid "HDD Temp"
msgstr "Température disque dur"
#. i18n: file: ui/configwindow.ui:687
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:99
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:735
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:102
msgid "Network"
msgstr "Réseau"
#. i18n: file: ui/configwindow.ui:750
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:105
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:798
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:110
msgid "Battery"
msgstr "Batterie"
#. i18n: file: ui/configwindow.ui:809
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:114
#, 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:857
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1347
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:118 rc.cpp:223
msgid "Music player"
msgstr "Lecteur audio"
#. i18n: file: ui/configwindow.ui:871
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:121
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:919
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:128
msgid "Custom"
msgstr "Personnalisé"
#. i18n: file: ui/configwindow.ui:929
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:131
msgid "$custom - get output from custom command"
msgstr "$custom - sortie d'une commande personnelle"
#. i18n: file: ui/configwindow.ui:983
#. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:134
msgid "Advanced"
msgstr "Avancé"
#. i18n: file: ui/configwindow.ui:997
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:137
msgid "Custom time format"
msgstr "Format de l'heure personnalisé"
#. i18n: file: ui/configwindow.ui:1019
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:140
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:1039
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:158
msgid "Custom uptime format"
msgstr "Temps de fonctionnement personalisé"
#. i18n: file: ui/configwindow.ui:1051
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:161
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:1073
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:169
msgid "Temperature devices"
msgstr "Temperature des périphériques"
#. i18n: file: ui/configwindow.ui:1099
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1154
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1209
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:172 rc.cpp:182 rc.cpp:192
msgid "Add"
msgstr "Ajouter"
#. i18n: file: ui/configwindow.ui:1109
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1164
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1219
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:175 rc.cpp:185 rc.cpp:195
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
"Modifiable\n"
"del - supprimer un élément"
#. i18n: file: ui/configwindow.ui:1128
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:179
msgid "Mount points"
msgstr "Points de montage"
#. i18n: file: ui/configwindow.ui:1183
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:189
msgid "HDD devices"
msgstr "Périphériques HDD"
#. i18n: file: ui/configwindow.ui:1236
#. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:199
msgid "Network directory"
msgstr "Voisinage réseau"
#. i18n: file: ui/configwindow.ui:1243
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:202
msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" par défaut"
#. i18n: file: ui/configwindow.ui:1263
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:205
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:1266
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:208
msgid "Set network device"
msgstr "Sélectionner le périphérique réseau"
#. i18n: file: ui/configwindow.ui:1299
#. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:211
msgid "Battery device"
msgstr "Batterie"
#. i18n: file: ui/configwindow.ui:1306
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:214
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "\"/sys/class/power_supply/BAT0/capacity\" par défaut"
#. i18n: file: ui/configwindow.ui:1323
#. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:217
msgid "AC device"
msgstr "Périphérique d'alimentation"
#. i18n: file: ui/configwindow.ui:1330
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:220
msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" par défaut"
#. i18n: file: ui/configwindow.ui:1367
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:226
msgid "amarok"
msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1372
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:229
msgid "mpd"
msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1377
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:232
msgid "qmmp"
msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1401
#. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:235
msgid "Tooltip"
msgstr "Conseil"
#. i18n: file: ui/configwindow.ui:1407
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:238
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:1428
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:241
msgid "Number of values for tooltips"
msgstr "Nombre d'éléments pour les conseils"
#. i18n: file: ui/configwindow.ui:1483
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:244
msgid "CPU color"
msgstr "Couleur processeur"
#. i18n: file: ui/configwindow.ui:1523
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:247
msgid "CPU clock color"
msgstr "Couleur de l'horloge processeur"
#. i18n: file: ui/configwindow.ui:1563
#. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:250
msgid "Memory color"
msgstr "Couleur de la mémoire"
#. i18n: file: ui/configwindow.ui:1603
#. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:253
msgid "Swap color"
msgstr "Couleur de la mémoire d'échange"
#. i18n: file: ui/configwindow.ui:1643
#. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:256
msgid "Download speed color"
msgstr "Couleur de la vitesse de téléchargement"
#. i18n: file: ui/configwindow.ui:1683
#. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:259
msgid "Upload speed color"
msgstr "Couleur du téléversement"
#. i18n: file: ui/configwindow.ui:1729
#. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:262
msgid "Appearance"
msgstr "Apparence"
#. i18n: file: ui/configwindow.ui:1743
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:265
msgid "Time interval"
msgstr "Intervalle"
#. i18n: file: ui/configwindow.ui:1798
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:268
msgid "Font"
msgstr "Police"
#. i18n: file: ui/configwindow.ui:1838
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:271
msgid "Font size"
msgstr "Taille de la police"
#. i18n: file: ui/configwindow.ui:1893
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:274
msgid "Font color"
msgstr "Couleur de la police"
#. i18n: file: ui/configwindow.ui:1933
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:277
msgid "Font style"
msgstr "Style de la police"
#. i18n: file: ui/configwindow.ui:1983
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:280
msgid "Font weight"
msgstr "Épaisseur de la police"
#. i18n: file: ui/configwindow.ui:2044
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:283
msgid "DataEngine"
msgstr "Moteur de données"
#. i18n: file: ui/configwindow.ui:2058
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:286
msgid "GPU device"
msgstr "Périphérique graphique"
#. i18n: file: ui/configwindow.ui:2078
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:289
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2083
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:292
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2088
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:295
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2139
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:301
msgid "MPD address"
msgstr "Adresse MPD"
#. i18n: file: ui/configwindow.ui:2163
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:304
msgid "MPD port"
msgstr "Port MPD"
#. i18n: file: ui/configwindow.ui:2218
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:307
msgid "Custom command"
msgstr "Commande personnalisée"
#. i18n: file: ui/configwindow.ui:2225
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:310
msgid "Custom command to run"
msgstr "Commande personnalisée à exécuter"
#: rc.cpp:311
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:312
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 ""
"Project-Id-Version: PACKAGE VERSION\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 22:36+0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -74,7 +74,7 @@ msgstr ""
msgid "CPU"
msgstr ""
#. i18n: file: ui/configwindow.ui:203
#. i18n: file: ui/configwindow.ui:205
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpu)
#: rc.cpp:33
#, no-c-format
@ -82,159 +82,167 @@ msgid ""
"$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n"
"...\n"
"$cpu7 - load CPU for core 7, %"
"$cpu9 - load CPU for core 9, %\n"
"...\n"
"$cpuN - load CPU for core N, %"
msgstr ""
#. i18n: file: ui/configwindow.ui:251
#. i18n: file: ui/configwindow.ui:253
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: rc.cpp:39
#: rc.cpp:41
msgid "CPU Clock"
msgstr ""
#. i18n: file: ui/configwindow.ui:267
#. i18n: file: ui/configwindow.ui:271
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpuclock)
#: rc.cpp:42
#: rc.cpp:44
msgid ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl7 - CPU clock for core 7, MHz"
"$cpucl9 - CPU clock for core 9, MHz\n"
"...\n"
"$cpuclN - CPU clock for core N, MHz"
msgstr ""
#. i18n: file: ui/configwindow.ui:315
#. i18n: file: ui/configwindow.ui:319
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
#: rc.cpp:48
#: rc.cpp:52
msgid "Temperature"
msgstr ""
#. i18n: file: ui/configwindow.ui:325
#. i18n: file: ui/configwindow.ui:329
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_temp)
#: rc.cpp:51
#: rc.cpp:55
msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
msgstr ""
#. i18n: file: ui/configwindow.ui:373
#. i18n: file: ui/configwindow.ui:377
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpu)
#: rc.cpp:54
#: rc.cpp:58
msgid "GPU"
msgstr ""
#. i18n: file: ui/configwindow.ui:383
#. i18n: file: ui/configwindow.ui:387
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpu)
#: rc.cpp:58
#: rc.cpp:62
#, no-c-format
msgid "$gpu - gpu usage, %"
msgstr ""
#. i18n: file: ui/configwindow.ui:431
#. i18n: file: ui/configwindow.ui:435
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpuTemp)
#: rc.cpp:61
#: rc.cpp:65
msgid "GPU Temp"
msgstr ""
#. i18n: file: ui/configwindow.ui:441
#. i18n: file: ui/configwindow.ui:445
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpuTemp)
#: rc.cpp:64
#: rc.cpp:68
msgid "$gputemp - physical temperature on GPU"
msgstr ""
#. i18n: file: ui/configwindow.ui:489
#. i18n: file: ui/configwindow.ui:493
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: rc.cpp:67
#: rc.cpp:71
msgid "Memory"
msgstr ""
#. i18n: file: ui/configwindow.ui:503
#. i18n: file: ui/configwindow.ui:508
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71
#: rc.cpp:75
#, no-c-format
msgid ""
"$mem - RAM usage, %\n"
"$memmb - RAM usage, MB"
"$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr ""
#. i18n: file: ui/configwindow.ui:551
#. i18n: file: ui/configwindow.ui:556
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75
#: rc.cpp:80
msgid "Swap"
msgstr ""
#. i18n: file: ui/configwindow.ui:565
#. i18n: file: ui/configwindow.ui:571
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79
#: rc.cpp:84
#, no-c-format
msgid ""
"$swap - swap usage, %\n"
"$swapmb - swap usage, MB"
"$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr ""
#. i18n: file: ui/configwindow.ui:613
#. i18n: file: ui/configwindow.ui:619
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83
#. i18n: file: ui/configwindow.ui:2106
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:89 rc.cpp:298
msgid "HDD"
msgstr ""
#. i18n: file: ui/configwindow.ui:623
#. i18n: file: ui/configwindow.ui:629
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87
#: rc.cpp:93
#, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr ""
#. i18n: file: ui/configwindow.ui:671
#. i18n: file: ui/configwindow.ui:677
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90
#: rc.cpp:96
msgid "HDD Temp"
msgstr ""
#. i18n: file: ui/configwindow.ui:681
#. i18n: file: ui/configwindow.ui:687
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93
#: rc.cpp:99
msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr ""
#. i18n: file: ui/configwindow.ui:729
#. i18n: file: ui/configwindow.ui:735
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96
#: rc.cpp:102
msgid "Network"
msgstr ""
#. i18n: file: ui/configwindow.ui:744
#. i18n: file: ui/configwindow.ui:750
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99
#: rc.cpp:105
msgid ""
"$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n"
"$netdev - current network device"
msgstr ""
#. i18n: file: ui/configwindow.ui:792
#. i18n: file: ui/configwindow.ui:798
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104
#: rc.cpp:110
msgid "Battery"
msgstr ""
#. i18n: file: ui/configwindow.ui:803
#. i18n: file: ui/configwindow.ui:809
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108
#: rc.cpp:114
#, no-c-format
msgid ""
"$bat - battery charge, %\n"
"$ac - AC status"
msgstr ""
#. i18n: file: ui/configwindow.ui:851
#. i18n: file: ui/configwindow.ui:857
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338
#. i18n: file: ui/configwindow.ui:1347
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214
#: rc.cpp:118 rc.cpp:223
msgid "Music player"
msgstr ""
#. i18n: file: ui/configwindow.ui:865
#. i18n: file: ui/configwindow.ui:871
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115
#: rc.cpp:121
msgid ""
"$album - song album\n"
"$artist - song artist\n"
@ -243,33 +251,33 @@ msgid ""
"$title - song title"
msgstr ""
#. i18n: file: ui/configwindow.ui:913
#. i18n: file: ui/configwindow.ui:919
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122
#: rc.cpp:128
msgid "Custom"
msgstr ""
#. i18n: file: ui/configwindow.ui:923
#. i18n: file: ui/configwindow.ui:929
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125
#: rc.cpp:131
msgid "$custom - get output from custom command"
msgstr ""
#. i18n: file: ui/configwindow.ui:977
#. i18n: file: ui/configwindow.ui:983
#. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128
#: rc.cpp:134
msgid "Advanced"
msgstr ""
#. i18n: file: ui/configwindow.ui:991
#. i18n: file: ui/configwindow.ui:997
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131
#: rc.cpp:137
msgid "Custom time format"
msgstr ""
#. i18n: file: ui/configwindow.ui:1013
#. i18n: file: ui/configwindow.ui:1019
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134
#: rc.cpp:140
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
@ -289,245 +297,288 @@ msgid ""
"$s - seconds w\\o zero"
msgstr ""
#. i18n: file: ui/configwindow.ui:1033
#. i18n: file: ui/configwindow.ui:1039
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152
#: rc.cpp:158
msgid "Custom uptime format"
msgstr ""
#. i18n: file: ui/configwindow.ui:1042
#. i18n: file: ui/configwindow.ui:1051
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155
#: rc.cpp:161
msgid ""
"$ds - uptime days\n"
"$hs - uptime hours\n"
"$ms - uptime minutes"
"$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 ""
#. i18n: file: ui/configwindow.ui:1064
#. i18n: file: ui/configwindow.ui:1073
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160
#: rc.cpp:169
msgid "Temperature devices"
msgstr ""
#. i18n: file: ui/configwindow.ui:1090
#. i18n: file: ui/configwindow.ui:1099
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145
#. i18n: file: ui/configwindow.ui:1154
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200
#. i18n: file: ui/configwindow.ui:1209
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183
#: rc.cpp:172 rc.cpp:182 rc.cpp:192
msgid "Add"
msgstr ""
#. i18n: file: ui/configwindow.ui:1100
#. i18n: file: ui/configwindow.ui:1109
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155
#. i18n: file: ui/configwindow.ui:1164
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210
#. i18n: file: ui/configwindow.ui:1219
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186
#: rc.cpp:175 rc.cpp:185 rc.cpp:195
msgid ""
"Editable\n"
"del - remove item"
msgstr ""
#. i18n: file: ui/configwindow.ui:1119
#. i18n: file: ui/configwindow.ui:1128
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170
#: rc.cpp:179
msgid "Mount points"
msgstr ""
#. i18n: file: ui/configwindow.ui:1174
#. i18n: file: ui/configwindow.ui:1183
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180
#: rc.cpp:189
msgid "HDD devices"
msgstr ""
#. i18n: file: ui/configwindow.ui:1227
#. i18n: file: ui/configwindow.ui:1236
#. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190
#: rc.cpp:199
msgid "Network directory"
msgstr ""
#. i18n: file: ui/configwindow.ui:1234
#. i18n: file: ui/configwindow.ui:1243
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193
#: rc.cpp:202
msgid "\"/sys/class/net\" by default"
msgstr ""
#. i18n: file: ui/configwindow.ui:1254
#. i18n: file: ui/configwindow.ui:1263
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196
#: rc.cpp:205
msgid "Disable auto select device and set specified device"
msgstr ""
#. i18n: file: ui/configwindow.ui:1257
#. i18n: file: ui/configwindow.ui:1266
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199
#: rc.cpp:208
msgid "Set network device"
msgstr ""
#. i18n: file: ui/configwindow.ui:1290
#. i18n: file: ui/configwindow.ui:1299
#. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202
#: rc.cpp:211
msgid "Battery device"
msgstr ""
#. i18n: file: ui/configwindow.ui:1297
#. i18n: file: ui/configwindow.ui:1306
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205
#: rc.cpp:214
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr ""
#. i18n: file: ui/configwindow.ui:1314
#. i18n: file: ui/configwindow.ui:1323
#. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208
#: rc.cpp:217
msgid "AC device"
msgstr ""
#. i18n: file: ui/configwindow.ui:1321
#. i18n: file: ui/configwindow.ui:1330
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211
#: rc.cpp:220
msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr ""
#. i18n: file: ui/configwindow.ui:1358
#. i18n: file: ui/configwindow.ui:1367
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217
#: rc.cpp:226
msgid "amarok"
msgstr ""
#. i18n: file: ui/configwindow.ui:1363
#. i18n: file: ui/configwindow.ui:1372
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220
#: rc.cpp:229
msgid "mpd"
msgstr ""
#. i18n: file: ui/configwindow.ui:1368
#. i18n: file: ui/configwindow.ui:1377
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223
#: rc.cpp:232
msgid "qmmp"
msgstr ""
#. i18n: file: ui/configwindow.ui:1386
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:226
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
#. i18n: file: ui/configwindow.ui:1401
#. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:235
msgid "Tooltip"
msgstr ""
#. i18n: file: ui/configwindow.ui:1423
#. i18n: file: ui/configwindow.ui:1407
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236
#: rc.cpp:238
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
msgstr ""
#. i18n: file: ui/configwindow.ui:1444
#. i18n: file: ui/configwindow.ui:1428
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239
#: rc.cpp:241
msgid "Number of values for tooltips"
msgstr ""
#. i18n: file: ui/configwindow.ui:1499
#. i18n: file: ui/configwindow.ui:1483
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242
#: rc.cpp:244
msgid "CPU color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1539
#. i18n: file: ui/configwindow.ui:1523
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245
#: rc.cpp:247
msgid "CPU clock color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1579
#. i18n: file: ui/configwindow.ui:1563
#. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248
#: rc.cpp:250
msgid "Memory color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1619
#. i18n: file: ui/configwindow.ui:1603
#. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251
#: rc.cpp:253
msgid "Swap color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1659
#. i18n: file: ui/configwindow.ui:1643
#. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254
#: rc.cpp:256
msgid "Download speed color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1699
#. i18n: file: ui/configwindow.ui:1683
#. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257
#: rc.cpp:259
msgid "Upload speed color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1745
#. i18n: file: ui/configwindow.ui:1729
#. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260
#: rc.cpp:262
msgid "Appearance"
msgstr ""
#. i18n: file: ui/configwindow.ui:1759
#. i18n: file: ui/configwindow.ui:1743
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263
#: rc.cpp:265
msgid "Time interval"
msgstr ""
#. i18n: file: ui/configwindow.ui:1814
#. i18n: file: ui/configwindow.ui:1798
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266
#: rc.cpp:268
msgid "Font"
msgstr ""
#. i18n: file: ui/configwindow.ui:1854
#. i18n: file: ui/configwindow.ui:1838
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269
#: rc.cpp:271
msgid "Font size"
msgstr ""
#. i18n: file: ui/configwindow.ui:1909
#. i18n: file: ui/configwindow.ui:1893
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272
#: rc.cpp:274
msgid "Font color"
msgstr ""
#. i18n: file: ui/configwindow.ui:1949
#. i18n: file: ui/configwindow.ui:1933
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275
#: rc.cpp:277
msgid "Font style"
msgstr ""
#. i18n: file: ui/configwindow.ui:1999
#. i18n: file: ui/configwindow.ui:1983
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278
#: rc.cpp:280
msgid "Font weight"
msgstr ""
#: rc.cpp:279
#. i18n: file: ui/configwindow.ui:2044
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:283
msgid "DataEngine"
msgstr ""
#. i18n: file: ui/configwindow.ui:2058
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:286
msgid "GPU device"
msgstr ""
#. i18n: file: ui/configwindow.ui:2078
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:289
msgid "auto"
msgstr ""
#. i18n: file: ui/configwindow.ui:2083
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:292
msgid "nvidia"
msgstr ""
#. i18n: file: ui/configwindow.ui:2088
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:295
msgid "ati"
msgstr ""
#. i18n: file: ui/configwindow.ui:2139
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:301
msgid "MPD address"
msgstr ""
#. i18n: file: ui/configwindow.ui:2163
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:304
msgid "MPD port"
msgstr ""
#. i18n: file: ui/configwindow.ui:2218
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:307
msgid "Custom command"
msgstr ""
#. i18n: file: ui/configwindow.ui:2225
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:310
msgid "Custom command to run"
msgstr ""
#: rc.cpp:311
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: rc.cpp:280
#: rc.cpp:312
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""

View File

@ -6,8 +6,8 @@ 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-02 20:48+0400\n"
"PO-Revision-Date: 2014-04-02 20:52+0400\n"
"POT-Creation-Date: 2014-04-05 22:36+0400\n"
"PO-Revision-Date: 2014-04-05 22:37+0400\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
@ -84,7 +84,7 @@ msgstr ""
msgid "CPU"
msgstr "CPU"
#. i18n: file: ui/configwindow.ui:203
#. i18n: file: ui/configwindow.ui:205
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpu)
#: rc.cpp:33
#, no-c-format
@ -92,141 +92,155 @@ msgid ""
"$cpu - total load CPU, %\n"
"$cpu0 - load CPU for core 0, %\n"
"...\n"
"$cpu7 - load CPU for core 7, %"
"$cpu9 - load CPU for core 9, %\n"
"...\n"
"$cpuN - load CPU for core N, %"
msgstr ""
"$cpu - общая загрузка CPU, %\n"
"$cpu0 - загрузка CPU для ядра 0, %\n"
"...\n"
"$cpu7 - загрузка CPU для ядра 7, %"
"$cpu9 - загрузка CPU для ядра 9, %\n"
"...\n"
"$cpuN - загрузка CPU для ядра N, %"
#. i18n: file: ui/configwindow.ui:251
#. i18n: file: ui/configwindow.ui:253
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_cpuclock)
#: rc.cpp:39
#: rc.cpp:41
msgid "CPU Clock"
msgstr "Частота CPU"
#. i18n: file: ui/configwindow.ui:267
#. i18n: file: ui/configwindow.ui:271
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_cpuclock)
#: rc.cpp:42
#: rc.cpp:44
msgid ""
"$cpucl - average CPU clock, MHz\n"
"$cpucl0 - CPU clock for core 0, MHz\n"
"...\n"
"$cpucl7 - CPU clock for core 7, MHz"
"$cpucl9 - CPU clock for core 9, MHz\n"
"...\n"
"$cpuclN - CPU clock for core N, MHz"
msgstr ""
"$cpucl - средняя частота CPU, MHz\n"
"$cpucl0 - частота CPU для ядра 0, MHz\n"
"...\n"
"$cpucl7 - частота CPU для ядра 7, MHz"
"$cpucl9 - частота CPU для ядра 9, MHz\n"
"...\n"
"$cpuclN - частота CPU для ядра N, MHz"
#. i18n: file: ui/configwindow.ui:315
#. i18n: file: ui/configwindow.ui:319
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_temp)
#: rc.cpp:48
#: rc.cpp:52
msgid "Temperature"
msgstr "Температура"
#. i18n: file: ui/configwindow.ui:325
#. i18n: file: ui/configwindow.ui:329
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_temp)
#: rc.cpp:51
#: rc.cpp:55
msgid "$tempN - physical temperature on device N (from 0). Example: $temp0"
msgstr "$tempN - физическая температура на устройстве N (от 0). Пример: $temp0"
#. i18n: file: ui/configwindow.ui:373
#. i18n: file: ui/configwindow.ui:377
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpu)
#: rc.cpp:54
#: rc.cpp:58
msgid "GPU"
msgstr "GPU"
#. i18n: file: ui/configwindow.ui:383
#. i18n: file: ui/configwindow.ui:387
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpu)
#: rc.cpp:58
#: rc.cpp:62
#, no-c-format
msgid "$gpu - gpu usage, %"
msgstr "$gpu - использование GPU, %"
#. i18n: file: ui/configwindow.ui:431
#. i18n: file: ui/configwindow.ui:435
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_gpuTemp)
#: rc.cpp:61
#: rc.cpp:65
msgid "GPU Temp"
msgstr "Температура GPU"
#. i18n: file: ui/configwindow.ui:441
#. i18n: file: ui/configwindow.ui:445
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_gpuTemp)
#: rc.cpp:64
#: rc.cpp:68
msgid "$gputemp - physical temperature on GPU"
msgstr "$gputemp - физическая температура на GPU"
#. i18n: file: ui/configwindow.ui:489
#. i18n: file: ui/configwindow.ui:493
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_mem)
#: rc.cpp:67
#: rc.cpp:71
msgid "Memory"
msgstr "Память"
#. i18n: file: ui/configwindow.ui:503
#. i18n: file: ui/configwindow.ui:508
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_mem)
#: rc.cpp:71
#: rc.cpp:75
#, no-c-format
msgid ""
"$mem - RAM usage, %\n"
"$memmb - RAM usage, MB"
"$memmb - RAM usage, MB\n"
"$memgb - RAM usage, GB"
msgstr ""
"$mem - использование RAM, %\n"
"$memmb - использование RAM, MB"
"$memmb - использование RAM, MB\n"
"$memgb - использование RAM, GB"
#. i18n: file: ui/configwindow.ui:551
#. i18n: file: ui/configwindow.ui:556
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_swap)
#: rc.cpp:75
#: rc.cpp:80
msgid "Swap"
msgstr "Swap"
#. i18n: file: ui/configwindow.ui:565
#. i18n: file: ui/configwindow.ui:571
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_swap)
#: rc.cpp:79
#: rc.cpp:84
#, no-c-format
msgid ""
"$swap - swap usage, %\n"
"$swapmb - swap usage, MB"
"$swapmb - swap usage, MB\n"
"$swapgb - swap usage, GB"
msgstr ""
"$swap - использование swap, %\n"
"$swapmb - использование swap, MB"
"$swapmb - использование swap, MB\n"
"$swapgb - использование swap, GB"
#. i18n: file: ui/configwindow.ui:613
#. i18n: file: ui/configwindow.ui:619
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hdd)
#: rc.cpp:83
#. i18n: file: ui/configwindow.ui:2106
#. i18n: ectx: property (text), widget (QLabel, label_hdddev)
#: rc.cpp:89 rc.cpp:298
msgid "HDD"
msgstr "HDD"
#. i18n: file: ui/configwindow.ui:623
#. i18n: file: ui/configwindow.ui:629
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hdd)
#: rc.cpp:87
#: rc.cpp:93
#, no-c-format
msgid "$hddN - usage for mount point N (from 0), %. Example: $hdd0"
msgstr "$hddN - использование точки монтирования N (от 0), %. Пример: $hdd0"
#. i18n: file: ui/configwindow.ui:671
#. i18n: file: ui/configwindow.ui:677
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_hddTemp)
#: rc.cpp:90
#: rc.cpp:96
msgid "HDD Temp"
msgstr "Температура HDD"
#. i18n: file: ui/configwindow.ui:681
#. i18n: file: ui/configwindow.ui:687
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_hddTemp)
#: rc.cpp:93
#: rc.cpp:99
msgid ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0"
msgstr ""
"$hddtempN - physical temperature on device N (from 0). Example: $hddtemp0 "
"$hddtempN - температура на устройстве N (от 0). Пример: $hddtemp0"
#. i18n: file: ui/configwindow.ui:729
#. i18n: file: ui/configwindow.ui:735
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_net)
#: rc.cpp:96
#: rc.cpp:102
msgid "Network"
msgstr "Сеть"
#. i18n: file: ui/configwindow.ui:744
#. i18n: file: ui/configwindow.ui:750
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_net)
#: rc.cpp:99
#: rc.cpp:105
msgid ""
"$down - download speed, KB/s\n"
"$up - upload speed, KB/s\n"
@ -236,15 +250,15 @@ msgstr ""
"$up - скорость загрузки, KB/s\n"
"$netdev - текущее устройство"
#. i18n: file: ui/configwindow.ui:792
#. i18n: file: ui/configwindow.ui:798
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_bat)
#: rc.cpp:104
#: rc.cpp:110
msgid "Battery"
msgstr "Батарея"
#. i18n: file: ui/configwindow.ui:803
#. i18n: file: ui/configwindow.ui:809
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_bat)
#: rc.cpp:108
#: rc.cpp:114
#, no-c-format
msgid ""
"$bat - battery charge, %\n"
@ -253,17 +267,17 @@ msgstr ""
"$bat - заряд батареи, %\n"
"$ac - статус адаптора питания"
#. i18n: file: ui/configwindow.ui:851
#. i18n: file: ui/configwindow.ui:857
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_player)
#. i18n: file: ui/configwindow.ui:1338
#. i18n: file: ui/configwindow.ui:1347
#. i18n: ectx: property (text), widget (QLabel, label_playerSelect)
#: rc.cpp:112 rc.cpp:214
#: rc.cpp:118 rc.cpp:223
msgid "Music player"
msgstr "Музыкальный плеер"
#. i18n: file: ui/configwindow.ui:865
#. i18n: file: ui/configwindow.ui:871
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_player)
#: rc.cpp:115
#: rc.cpp:121
msgid ""
"$album - song album\n"
"$artist - song artist\n"
@ -277,33 +291,33 @@ msgstr ""
"$time - продолжительность\n"
"$title - название"
#. i18n: file: ui/configwindow.ui:913
#. i18n: file: ui/configwindow.ui:919
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_custom)
#: rc.cpp:122
#: rc.cpp:128
msgid "Custom"
msgstr "Своя команда"
#. i18n: file: ui/configwindow.ui:923
#. i18n: file: ui/configwindow.ui:929
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_custom)
#: rc.cpp:125
#: rc.cpp:131
msgid "$custom - get output from custom command"
msgstr "$custom - получить информацию из своей команды"
#. i18n: file: ui/configwindow.ui:977
#. i18n: file: ui/configwindow.ui:983
#. i18n: ectx: attribute (title), widget (QWidget, advanced)
#: rc.cpp:128
#: rc.cpp:134
msgid "Advanced"
msgstr "Расширенные"
#. i18n: file: ui/configwindow.ui:991
#. i18n: file: ui/configwindow.ui:997
#. i18n: ectx: property (text), widget (QLabel, label_timeFormat)
#: rc.cpp:131
#: rc.cpp:137
msgid "Custom time format"
msgstr "Свой формат времени"
#. i18n: file: ui/configwindow.ui:1013
#. i18n: file: ui/configwindow.ui:1019
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_timeFormat)
#: rc.cpp:134
#: rc.cpp:140
msgid ""
"$dddd - long weekday\n"
"$ddd - short weekday\n"
@ -339,47 +353,53 @@ msgstr ""
"$ss - секунды\n"
"$s - секунды без 0"
#. i18n: file: ui/configwindow.ui:1033
#. i18n: file: ui/configwindow.ui:1039
#. i18n: ectx: property (text), widget (QLabel, label_uptimeFormat)
#: rc.cpp:152
#: rc.cpp:158
msgid "Custom uptime format"
msgstr "Свой формат аптайма"
#. i18n: file: ui/configwindow.ui:1042
#. i18n: file: ui/configwindow.ui:1051
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_uptimeFormat)
#: rc.cpp:155
#: rc.cpp:161
msgid ""
"$ds - uptime days\n"
"$hs - uptime hours\n"
"$ms - uptime minutes"
"$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 ""
"$ds - дни работы\n"
"$hs - часы\n"
"$ms - минуты"
"$dd - дни аптайма\n"
"$d - дни аптайма без нулей\n"
"$hh - часы аптайма\n"
"$h - часы аптайма без нулей\n"
"$mm - минуты аптайма\n"
"$m - минуты аптайма без нулей"
#. i18n: file: ui/configwindow.ui:1064
#. i18n: file: ui/configwindow.ui:1073
#. i18n: ectx: property (text), widget (QLabel, label_tempDevice)
#: rc.cpp:160
#: rc.cpp:169
msgid "Temperature devices"
msgstr "Температурные устройства"
#. i18n: file: ui/configwindow.ui:1090
#. i18n: file: ui/configwindow.ui:1099
#. i18n: ectx: property (text), widget (QPushButton, pushButton_tempDevice)
#. i18n: file: ui/configwindow.ui:1145
#. i18n: file: ui/configwindow.ui:1154
#. i18n: ectx: property (text), widget (QPushButton, pushButton_mount)
#. i18n: file: ui/configwindow.ui:1200
#. i18n: file: ui/configwindow.ui:1209
#. i18n: ectx: property (text), widget (QPushButton, pushButton_hddDevice)
#: rc.cpp:163 rc.cpp:173 rc.cpp:183
#: rc.cpp:172 rc.cpp:182 rc.cpp:192
msgid "Add"
msgstr "Добавить"
#. i18n: file: ui/configwindow.ui:1100
#. i18n: file: ui/configwindow.ui:1109
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_tempDevice)
#. i18n: file: ui/configwindow.ui:1155
#. i18n: file: ui/configwindow.ui:1164
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_mount)
#. i18n: file: ui/configwindow.ui:1210
#. i18n: file: ui/configwindow.ui:1219
#. i18n: ectx: property (toolTip), widget (QListWidget, listWidget_hddDevice)
#: rc.cpp:166 rc.cpp:176 rc.cpp:186
#: rc.cpp:175 rc.cpp:185 rc.cpp:195
msgid ""
"Editable\n"
"del - remove item"
@ -387,109 +407,93 @@ msgstr ""
"Редактируемо\n"
"del - удалить строку"
#. i18n: file: ui/configwindow.ui:1119
#. i18n: file: ui/configwindow.ui:1128
#. i18n: ectx: property (text), widget (QLabel, label_mount)
#: rc.cpp:170
#: rc.cpp:179
msgid "Mount points"
msgstr "Точки монтирования"
#. i18n: file: ui/configwindow.ui:1174
#. i18n: file: ui/configwindow.ui:1183
#. i18n: ectx: property (text), widget (QLabel, label_hddDevice)
#: rc.cpp:180
#: rc.cpp:189
msgid "HDD devices"
msgstr "HDD"
#. i18n: file: ui/configwindow.ui:1227
#. i18n: file: ui/configwindow.ui:1236
#. i18n: ectx: property (text), widget (QLabel, label_netdir)
#: rc.cpp:190
#: rc.cpp:199
msgid "Network directory"
msgstr "Путь к интерфейсам"
#. i18n: file: ui/configwindow.ui:1234
#. i18n: file: ui/configwindow.ui:1243
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_netdir)
#: rc.cpp:193
#: rc.cpp:202
msgid "\"/sys/class/net\" by default"
msgstr "\"/sys/class/net\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1254
#. i18n: file: ui/configwindow.ui:1263
#. i18n: ectx: property (toolTip), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:196
#: rc.cpp:205
msgid "Disable auto select device and set specified device"
msgstr "Отключить авто выбор устройства и использовать указанное"
#. i18n: file: ui/configwindow.ui:1257
#. i18n: file: ui/configwindow.ui:1266
#. i18n: ectx: property (text), widget (QCheckBox, checkBox_netdev)
#: rc.cpp:199
#: rc.cpp:208
msgid "Set network device"
msgstr "Выберете сетевое устройство"
#. i18n: file: ui/configwindow.ui:1290
#. i18n: file: ui/configwindow.ui:1299
#. i18n: ectx: property (text), widget (QLabel, label_batdev)
#: rc.cpp:202
#: rc.cpp:211
msgid "Battery device"
msgstr "Устройство батареи"
#. i18n: file: ui/configwindow.ui:1297
#. i18n: file: ui/configwindow.ui:1306
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_batdev)
#: rc.cpp:205
#: rc.cpp:214
msgid "\"/sys/class/power_supply/BAT0/capacity\" by default"
msgstr "\"/sys/class/power_supply/BAT0/capacity\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1314
#. i18n: file: ui/configwindow.ui:1323
#. i18n: ectx: property (text), widget (QLabel, label_acdev)
#: rc.cpp:208
#: rc.cpp:217
msgid "AC device"
msgstr "Устройство AC"
#. i18n: file: ui/configwindow.ui:1321
#. i18n: file: ui/configwindow.ui:1330
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_acdev)
#: rc.cpp:211
#: rc.cpp:220
msgid "\"/sys/class/power_supply/AC/online\" by default"
msgstr "\"/sys/class/power_supply/AC/online\" по умолчанию"
#. i18n: file: ui/configwindow.ui:1358
#. i18n: file: ui/configwindow.ui:1367
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:217
#: rc.cpp:226
msgid "amarok"
msgstr "amarok"
#. i18n: file: ui/configwindow.ui:1363
#. i18n: file: ui/configwindow.ui:1372
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:220
#: rc.cpp:229
msgid "mpd"
msgstr "mpd"
#. i18n: file: ui/configwindow.ui:1368
#. i18n: file: ui/configwindow.ui:1377
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_playerSelect)
#: rc.cpp:223
#: rc.cpp:232
msgid "qmmp"
msgstr "qmmp"
#. i18n: file: ui/configwindow.ui:1386
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:226
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
#. i18n: file: ui/configwindow.ui:1401
#. i18n: ectx: attribute (title), widget (QWidget, tooltip)
#: rc.cpp:235
msgid "Tooltip"
msgstr "Тултип"
#. i18n: file: ui/configwindow.ui:1423
#. i18n: file: ui/configwindow.ui:1407
#. i18n: ectx: property (text), widget (QLabel, label_tooltip)
#: rc.cpp:236
#: rc.cpp:238
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox fully checked."
@ -497,100 +501,170 @@ msgstr ""
"Поля CPU, частота CPU, память, swap, сеть поддерживают графический тултип. "
"Чтобы включить его, просто сделайте требуемые чекбоксы полностью чекнутыми."
#. i18n: file: ui/configwindow.ui:1444
#. i18n: file: ui/configwindow.ui:1428
#. i18n: ectx: property (text), widget (QLabel, label_tooltipNum)
#: rc.cpp:239
#: rc.cpp:241
msgid "Number of values for tooltips"
msgstr "Число хранящихся значений"
#. i18n: file: ui/configwindow.ui:1499
#. i18n: file: ui/configwindow.ui:1483
#. i18n: ectx: property (text), widget (QLabel, label_cpuColor)
#: rc.cpp:242
#: rc.cpp:244
msgid "CPU color"
msgstr "Цвет CPU"
#. i18n: file: ui/configwindow.ui:1539
#. i18n: file: ui/configwindow.ui:1523
#. i18n: ectx: property (text), widget (QLabel, label_cpuclockColor)
#: rc.cpp:245
#: rc.cpp:247
msgid "CPU clock color"
msgstr "Цвет частоты CPU"
#. i18n: file: ui/configwindow.ui:1579
#. i18n: file: ui/configwindow.ui:1563
#. i18n: ectx: property (text), widget (QLabel, label_memColor)
#: rc.cpp:248
#: rc.cpp:250
msgid "Memory color"
msgstr "Цвет памяти"
#. i18n: file: ui/configwindow.ui:1619
#. i18n: file: ui/configwindow.ui:1603
#. i18n: ectx: property (text), widget (QLabel, label_swapColor)
#: rc.cpp:251
#: rc.cpp:253
msgid "Swap color"
msgstr "Цвет swap"
#. i18n: file: ui/configwindow.ui:1659
#. i18n: file: ui/configwindow.ui:1643
#. i18n: ectx: property (text), widget (QLabel, label_downColor)
#: rc.cpp:254
#: rc.cpp:256
msgid "Download speed color"
msgstr "Цвет скорости загрузки"
#. i18n: file: ui/configwindow.ui:1699
#. i18n: file: ui/configwindow.ui:1683
#. i18n: ectx: property (text), widget (QLabel, label_upColor)
#: rc.cpp:257
#: rc.cpp:259
msgid "Upload speed color"
msgstr "Цвет скорости отдачи"
#. i18n: file: ui/configwindow.ui:1745
#. i18n: file: ui/configwindow.ui:1729
#. i18n: ectx: attribute (title), widget (QWidget, appearance)
#: rc.cpp:260
#: rc.cpp:262
msgid "Appearance"
msgstr "Внешний вид"
#. i18n: file: ui/configwindow.ui:1759
#. i18n: file: ui/configwindow.ui:1743
#. i18n: ectx: property (text), widget (QLabel, label_interval)
#: rc.cpp:263
#: rc.cpp:265
msgid "Time interval"
msgstr "Интервал обновления"
#. i18n: file: ui/configwindow.ui:1814
#. i18n: file: ui/configwindow.ui:1798
#. i18n: ectx: property (text), widget (QLabel, label_font)
#: rc.cpp:266
#: rc.cpp:268
msgid "Font"
msgstr "Шрифт"
#. i18n: file: ui/configwindow.ui:1854
#. i18n: file: ui/configwindow.ui:1838
#. i18n: ectx: property (text), widget (QLabel, label_fontSize)
#: rc.cpp:269
#: rc.cpp:271
msgid "Font size"
msgstr "Размер шрифта"
#. i18n: file: ui/configwindow.ui:1909
#. i18n: file: ui/configwindow.ui:1893
#. i18n: ectx: property (text), widget (QLabel, label_color)
#: rc.cpp:272
#: rc.cpp:274
msgid "Font color"
msgstr "Цвет шрифта"
#. i18n: file: ui/configwindow.ui:1949
#. i18n: file: ui/configwindow.ui:1933
#. i18n: ectx: property (text), widget (QLabel, label_style)
#: rc.cpp:275
#: rc.cpp:277
msgid "Font style"
msgstr "Стиль шрифта"
#. i18n: file: ui/configwindow.ui:1999
#. i18n: file: ui/configwindow.ui:1983
#. i18n: ectx: property (text), widget (QLabel, label_weight)
#: rc.cpp:278
#: rc.cpp:280
msgid "Font weight"
msgstr "Ширина шрифта"
#: rc.cpp:279
#. i18n: file: ui/configwindow.ui:2044
#. i18n: ectx: attribute (title), widget (QWidget, dataengine)
#: rc.cpp:283
msgid "DataEngine"
msgstr "DataEngine"
#. i18n: file: ui/configwindow.ui:2058
#. i18n: ectx: property (text), widget (QLabel, label_gpudev)
#: rc.cpp:286
msgid "GPU device"
msgstr "Устройство GPU"
#. i18n: file: ui/configwindow.ui:2078
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:289
msgid "auto"
msgstr "auto"
#. i18n: file: ui/configwindow.ui:2083
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:292
msgid "nvidia"
msgstr "nvidia"
#. i18n: file: ui/configwindow.ui:2088
#. i18n: ectx: property (text), item, widget (QComboBox, comboBox_gpudev)
#: rc.cpp:295
msgid "ati"
msgstr "ati"
#. i18n: file: ui/configwindow.ui:2139
#. i18n: ectx: property (text), widget (QLabel, label_mpdaddress)
#: rc.cpp:301
msgid "MPD address"
msgstr "Адрес сервера MPD"
#. i18n: file: ui/configwindow.ui:2163
#. i18n: ectx: property (text), widget (QLabel, label_mpdport)
#: rc.cpp:304
msgid "MPD port"
msgstr "Порт сервера MPD"
#. i18n: file: ui/configwindow.ui:2218
#. i18n: ectx: property (text), widget (QLabel, label_customCommand)
#: rc.cpp:307
msgid "Custom command"
msgstr "Своя команда"
#. i18n: file: ui/configwindow.ui:2225
#. i18n: ectx: property (toolTip), widget (QLineEdit, lineEdit_customCommand)
#: rc.cpp:310
msgid "Custom command to run"
msgstr "Своя команда для запуска"
#: rc.cpp:311
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Evgeniy Alekseev"
#: rc.cpp:280
#: rc.cpp:312
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 - дни работы\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, %"
#~ msgstr "@@/;@@ - использование точки монтирования, %"