--- permalink: ru/projects/awesome-widgets category: ru hastr: true layout: project title: Awesome Widgets short: awesome-widgets tags: python, kde, qt, linux, система, awesome hasgui: true hasdocs: false developers: - Evgeniy Alekseev - Ernesto Avilés Vzqz (перевод на испанский) - Mermouy (перевод на французский) - underr (перевод на бразильский португальский) - Виктор Слободян (перевод на украинский) - Lemueler (перевод на китайский) - Heimen Stoffels (перевод на голландский) license: GPLv3 links: - Страница плазмоида на kde-look.org - Страница DataEngine на kde-look.org - Пакет в AUR - Пакет для openSUSE (спасибо Kott) - Пакеты для Ubuntu - Миграция на версию 2.0 - Расширения --- Набор минималистичных легко настраиваемых пламоидов, написанных на `C++/Qt`. Они выглядят, как виджеты в [Awesome WM](//awesome.naquadah.org/ "Домашняя страница Awesome"). Также пакет предоставляет дополнительный системный [DataEngine](//techbase.kde.org/Development/Tutorials/Plasma/DataEngines "Мануал для разработчиков"). **ВНИМАНИЕ:** [НУЖНЫ ПЕРЕВОДЧИКИ!](//github.com/arcan1s/awesome-widgets/issues/14 "Тикет") **Совместим с Plasma 5!** ### Разработчики {% for devel in page.developers %} * {{ devel }}{% endfor %} ### Лицензия * {{ page.license }} ### Список изменений [CHANGELOG-RU](//github.com/arcan1s/awesome-widgets/blob/master/CHANGELOG-RU "GitHub") ## Установка ### Инструкция * Скачайте [архив](//github.com/arcan1s/awesome-widgets/releases "GitHub") с актуальной версией исходных файлов. * Извлеките из него файлы и установите: ```bash cd /путь/к/извлеченным/файлам/ mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../ make sudo make install ``` **ВНИМАНИЕ:** Для Plasma 5, вероятно, потребуется флаг `-DKDE_INSTALL_USE_QT_SYS_PATHS=ON` ### Зависимости Все было протестировано на последних версиях зависимостей. * plasma-framework * cmake *(make)* * extra-cmake-modules *(make)* * hddtemp **или** smartmontools *(опционально, для контроля за температурой HDD)* * один из поддерживаемых музыкальных плееров *(опционально, для контроля за музыкальным плеером)* * проприетарный видеодрайвер *(опционально, для контроля за GPU)* ## Использование Откройте список виджетов Plasma и выберете `Awesome Widget`. ### Tips & tricks Вы можете использовать несколько цветов в тексте. Просто вставьте нужный текст в html код. Смотри [вопрос](//github.com/arcan1s/awesome-widgets/issues/9 "GitHub") для более подробной информации. ## Настройка ### Настройка DataEngine Вы можете отредактировать настройки DataEngine, которые хранятся в `/etc/xdg/plasma-dataengine-extsysmon.conf` и `$HOME/.config/plasma-dataengine-extsysmon.conf`. Раскомментируйте необходимые строчки и отредактируйте их. ### Опции DataEngine | | | |----------|----------| | ACPIPATH | Путь к устройствам ACPI. По умолчанию `/sys/class/power_supply/`. | | GPUDEV | Устанавливает тип GPU. Может быть `nvidia` (для nVidia), `ati` (для ATI Radeon), `disable` или `auto`. По умолчанию `auto`. | | HDDDEV | Устанавливает блочное устройство для `hddtemp` через запятую или `all` для всех возможных. `disable` отключит монитор температуры HDD. По умолчанию `all`. | | HDDTEMPCMD | Команда, которая будет запущена для hddtemp. По умолчанию `sudo smartctl -a`. Поддерживаемые приложения - `hddtemp` и `smartmontools`. | | MPDADDRESS | Адрес MPD хоста. По умолчанию `localhost`. | | MPDPORT | Адрес MPD хоста. По умолчанию `6600`. | | PLAYER | Устанавливает музыкальный плеер. Поддерживаемые плееры: mpd и с поддержкой MPRIS/DBus. `disable` отключит данный монитор. | | PLAYERSYMBOLS | Количество символов в динамических тегах монитора за плеером. По умолчанию `10`. | ### Настройка виджета Для настройки внешнего вида Вы должны открыть окно настроек и установить требуемый формат текста. HTML теги обрабатываются корректно. Доступные флаги приведены в таблице ниже. **ЗАМЕЧАНИЕ** Нумерация всех массивов в переменных начинается с 0. | Тег | Описание | Введен | |-----|----------|--------| | `$time` | Время в стандартном формате. Например, `fri Nov 6 04:48:01 2013`. | 1.5.1 | | `$isotime` | Время в формате ISO. | 1.5.2 | | `$shorttime` | Время в коротком формате локали. | 1.5.2 | | `$longtime` | Время в длинном формате локали. | 1.5.2 | | `$ctime` | Специальный формат времени. | 2.0.0 | | `$uptime` | Системный аптайм, `---d--h--m`. | | `$cuptime` | Специальный формат аптайма. | 2.0.0 | | `$la1` | Средняя загрузка за 1 минуту, `-----`. | 2.4.0 | | `$la5` | Средняя загрузка за 5 минут, `-----`. | 2.4.0 | | `$la15` | Средняя загрузка за 15 минут, `-----`. | 2.4.0 | | `$cpu` | Полная загрузка CPU, %, `-----`. | | `$cpuN` | Загрузка CPU для ядра N, %, `-----`. | 1.7.0 | | `$cpucl` | Средняя частота CPU, МГц, `----`. | 1.1.2 | | `$cpuclN` | Частота CPU для ядра N, МГц, `----`. | 1.7.0 | | `$tempN` | Температура для датчика N, `----`. Пример: `$temp0` | | `$gpu` | Использование GPU, %, `-----`. `aticonfig` или `nvidia-smi` должны быть установлены. | 1.3.2 | | `$gputemp` | Температура GPU, `----`. `aticonfig` или `nvidia-smi` должны быть установлены. | 1.3.2 | | `$mem` | Использование RAM, %, `-----`. | | `$memmb` | Использование RAM, MB, `-----`. | 1.1.1 | | `$memgb` | Использование RAM, GB, `----`. | 1.7.3 | | `$memfreemb` | Свободная RAM, MB, `-----`. | 2.0.0 | | `$memfreegb` | Свободная RAM, GB, `----`. | 2.0.0 | | `$memtotmb` | RAM, MB, `-----`. | 1.10.0 | | `$memtotgb` | RAM, GB, `----`. | 1.10.0 | | `$memusedmb` | Занятая и кэшированная RAM, MB, `-----`. | 2.0.0 | | `$memusedgb` | Занятая и кэшированная RAM, GB, `----`. | 2.0.0 | | `$swap` | Использование swap, %, `-----`. | | `$swapmb` | Использование swap, MB, `-----`. | 1.1.1 | | `$swapgb` | Использование swap, GB, `----`. | 1.7.3 | | `$swapfreemb` | Свободный swap, MB, `-----`. | 2.0.0 | | `$swapfreegb` | Свободный swap, GB, `----`. | 2.0.0 | | `$swaptotmb` | swap, MB, `-----`. | 1.10.0 | | `$swaptotgb` | swap, GB, `----`. | 1.10.0 | | `$hddN` | Занятость точки монтирования N, %, `-----`. Пример: `$hdd0`. | 1.3.2 | | `$hddmbN` | Занятость точки монтирования N, MB, `-----`. Пример: `$hddmb0`. | 1.8.0 | | `$hddgbN` | Занятость точки монтирования N, GB, `-----`. Пример: `$hddgb0`. | 1.8.0 | | `$hddfreembN` | Свободное место точки монтирования N, MB, `-----`. Пример: `$hddfreemb0`. | 2.0.0 | | `$hddfreegbN` | Свободное место точки монтирования N, GB, `-----`. Пример: `$hddfreegb0`. | 2.0.0 | | `$hddtotmbN` | Размер точки монтирования N, MB, `-----`. Пример: `$hddtotmb0`. | 1.10.0 | | `$hddtotgbN` | Размер точки монтирования N, GB, `-----`. Пример: `$hddtotgb0`. | 1.10.0 | | `$hddrN` | Скорость записи диска N, KB/s, `-----`. Пример: `$hddr0`. | 1.9.0 | | `$hddwN` | Скорость чтения диска N, KB/s, `-----`. Пример: `$hddw0`. | 1.9.0 | | `$hddtempN` | Температура HDD с номером N, `----`. Пример `$hddtemp0`. `hddtemp` или `smartmontools` должен быть установлен. | 1.7.0 | | `$down` | Скорость загрузки активного устройства, KB/s или MB/s, `----`. | 1.7.0 | | `$downkb` | Скорость загрузки активного устройства, KB/s, `----`. | 3.0.0 | | `$downunits` | Единицы скорости загрузки активного устройства, `----`. | 3.0.0 | | `$downN` | Скорость загрузки устройства N, KB/s или MB/s, `----`. | 2.2.0 | | `$downkbN` | Скорость загрузки устройства N, KB/s, `----`. | 3.0.0 | | `$downunitsN` | Единицы cкорости загрузки устройства N, `----`. | 3.0.0 | | `$up` | Скорость отдачи активного устройства, KB/s или MB/s, `----`. | 1.7.0 | | `$upkb` | Скорость отдачи активного устройства, KB/s, `----`. | 3.0.0 | | `$upunits` | Единицы скорости отдачи активного устройства, `----`. | 3.0.0 | | `$upN` | Скорость отдачи устройства N, KB/s или MB/s, `----`. | 2.2.0 | | `$upkbN` | Скорость отдачи устройства N, KB/s, `----`. | 3.0.0 | | `$upunitsN` | Единицы скорости отдачи устройства N, `----`. | 3.0.0 | | `$netdev` | Текущее устройство. | 1.1.1 | | `$bat` | Средний заряд батареи, %, `---`. | | `$batN` | Заряд батареи N, %, `---`. | 2.0.3 | | `$ac` | Статус зарядного устройства. Возвращает `(*)`, если устройство подключено, или `( )`, если нет. | | `$album` | Альбом текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.3 | | `$dalbum` | Альбом текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 | | `$salbum` | Альбом текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 | | `$artist` | Исполнитель текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.0 | | `$dartist` | Исполнитель текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 | | `$sartist` | Исполнитель текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 | | `$duration` | Длительность текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 2.0.0 | | `$progress` | Прогресс текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.3 | | `$title` | Название текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.0 | | `$dtitle` | Название текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 | | `$stitle` | Название текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 | | `$ps` | Список запущенных процессов, разделенных запятой. | 1.8.0 | | `$pscount` | Число запущенных процессов. | 1.8.0 | | `$pstotal` | Общее число процессов. | 1.8.0 | | `$pkgcountN` | Число пакетов, доступных для обновления, для команды N. | 1.8.0 | | `$customN` | Получить данные из указанной команды N. Например, `$custom0`. | 1.9.0 | | `$desktop` | Имя текущего рабочего стола. | 2.0.0 | | `$ndesktop` | Номер текущего рабочего стола. | 2.0.0 | | `$tdesktops` | Общее число рабочих столов. | 2.0.0 | | `$askN` | Получить аск по тикеру N. Например, `$ask0`. | 2.2.2 | | `$askchgN` | Абсолютное изменение аск по тикеру N. Например, `$askchg0`. | 2.2.2 | | `$percaskchgN` | Изменение аск по тикеру N, %. Например, `$percaskchg0`. | 2.2.2 | | `$bidN` | Получить бид по тикеру N. Например, `$bid0`. | 2.2.2 | | `$bidchgN` | Абсолютное изменение бид по тикеру N. Например, `$bidchg0`. | 2.2.2 | | `$percbidchgN` | Изменение бид по тикеру N, %. Например, `$percbidchg0`. | 2.2.2 | | `$priceN` | Получить цену по тикеру N. Например, `$price0`. | 2.2.2 | | `$pricechgN` | Абсолютное изменение цены по тикеру N. Например, `$pricechg0`. | 2.2.2 | | `$percpricechgN` | Изменение цены по тикеру N, %. Например, `$percpricechg0`. | 2.2.2 | | `$weatherIdN` | Численное ID погоды. Например `$weatherId0`. | 2.4.0 | | `$weatherN` | Статус погоды. Например `$weather0`. | 2.4.0 | | `$humidityN` | Влажность, %. Например `$humidity0`. | 2.4.0 | | `$pressureN` | Давление, бар. Например `$pressure0`. | 2.4.0 | | `$temperatureN` | Температура. Humidity `$temperature0`. | 2.4.0 | ### Лямбда функции Начиная с версии 3.0.0 основной виджет поддерживает лямбда выражения, которые рассчитываются в рантайме. Они объявляются использованием конструкции `${% raw %}${{{% endraw %} {% raw %}}}{% endraw %}`: ```javascript {% raw %}${{{% endraw %} function three() { return 1 + 2; } three() {% raw %}}}{% endraw %} ``` Функции внутри будут интерпретированы, как JavaScript, любая переменная из основного набора поддерживается. Так, функция: ```javascript {% raw %}${{{% endraw %} function colorCpu() { if ($cpu > 90.0) return "$cpu" else return "$cpu" } colorCpu() {% raw %}}}{% endraw %} ``` покажет значение `$cpu` красным, если оно больше 90.0, иначе - покажет цветом по-умолчанию. Также поддерживаются произвольные вычисления: ```javascript {% raw %}${{{% endraw %} $down - $up {% raw %}}}{% endraw %} ``` покажет разность между скоростями загрузки и отдачи. Другая особенность, предоставляемая лямбда выражениями - тег `$this`, который вернет последнее значение данной лямбда функции. Ниже чуть более сложный пример, который покажет бегущую строку "Артист - Название" с длиной меньшей либо равной 10 символам: ```javascript {% raw %}${{{% endraw %} function runningLine() { var current = "$artist - $title"; var index = current.indexOf("$this"); if (("$this" == "") || ((index + 20 + 1) > current.length)) return current.substring(0, 20); else return current.substring(index + 1, index + 20 + 1); } runningLine() {% raw %}}}{% endraw %} ``` Таким образом, лямбда выражения могут быть использованы, например, чтобы показывать произвольное значение, которое будет рассчитано в рантайме, или, чтобы показать различную информацию, в зависимости от некоторых условий. Однако, пожалуйста, учитывайте, что подобные вычисления в рантайме могут увеличить нагрузку на CPU. ### Расширенные настройки **Включить фон:** Снимите галочку, чтобы отключить стандартный фон виджета и установить прозрачный. По умолчанию `true`. **Переводить строки:** Переводить или нет строковые теги. По умолчанию `true`. **Заменить символ перевода строки:** Заменить `\n` на `<br>`. По умолчанию `false`. **Перенос слов:** Включить перенос слов. По умолчанию `false`. **Включить всплывающие сообщения:** Снимите галочку, если вы не хотите всплывающих сообщений на системные события. По умолчанию `true`. **Проверять обновления:** Проверять или нет обновления при запуске. По умолчанию `true`. **Высота виджета:** Отключит автоматическое определение высоты виджета и установит ее в данное значение. По умолчанию `0` (автоматически). **Ширина виджета:** Отключит автоматическое определение ширины виджета и установит ее в данное значение. По умолчанию `0` (автоматически). **Интервал обновления:** Интервал обновления виджета, мс. По умолчанию `1000`. **Очередь сообщений:** Использовать указанное количество тредов в пуле. `0` означает идеальное количество тредов. По умолчанию `0`. **Температурные единицы:** Выберете единицы температуры. Доступные единицы следующие: Цельсий, Фаренгейт и Кельвин. **Свой формат времени:** | | | |---------|---------| | `$dddd` | Длинный день недели. | | `$ddd` | Короткий день недели. | | `$dd` | День. | | `$d` | День без нуля. | | `$MMMM` | Месяц в длинном формате. | | `$MMM` | Месяц в коротком формате. | | `$MM` | Месяц. | | `$M` | Месяц без нуля. | | `$yyyy` | Год. | | `$yy` | Год в коротком формате. | | `$hh` | Часы. | | `$h` | Часы без нуля. | | `$HH` | Часы в 24-часовом формате. | | `$H` | Часы в 24-часовом формате без нуля. | | `$mm` | Минуты. | | `$m` | Минуты без нуля. | | `$ss` | Секунды. | | `$s` | Секунды без нуля. | | `$t` | Временная зона. | | `$a`/`$ap` | am или pm. | | `$A`/`$AP` | AM или PM. | **Свой формат времени работы:** | | | |-------|-------| | `$dd` | Дни аптайма. | | `$d` | Дни аптайма без нуля. | | `$hh` | Часы аптайма. | | `$h` | Часы аптайма без нуля. | | `$mm` | Минуты аптайма. | | `$m` | Минуты аптайма без нуля. | **AC online тег:** Строка, которая будет показана, когда AC онлайн. По умолчанию `(*)`. **AC offline тег:** Строка, которая будет показана, когда AC оффлайн. По умолчанию `( )`. ### Тултипы Начиная с версии 1.7.0, поля CPU, частота CPU, память, swap, сеть и батарея поддерживают графический тултип (всплывающая подсказка). Чтобы включить их, просто поставьте нужные галочки. Число хранимых значений может быть установлено во вкладке. Также есть возможность настроить цвета графиков. ### Настройка DataEngine **Устройства ACPI:** Путь к устройствам ACPI. По умолчанию `/sys/class/power_supply/`. **Устройство GPU:** Выберете одно из поддерживаемых устройств GPU. `auto` включит автоматическое определение устройства, `disable` отключит все мониторы GPU. По умолчанию `auto`. **HDD:** Выберете один из HDD для монитора температуры HDD. `all` включит монитор для всех доступных устройств, `disable` отключит монитор температуры HDD. По умолчанию `all`. **Команда hddtemp:** Введите команду, которая будет запущена для hddtemp DataEngine. По умолчанию `sudo hddtemp`. **Количество символов для плеера:** Количество символов, которые будут показываться в динамических тегах плеера. **Музыкальный плеер:** Выберете один из поддерживаемых музыкальных плееров для соответствующего поля. **MPRIS:** Выберете имя плеера MPRIS. `auto` включит автоматическое определение плеера. По умолчанию `auto`. **Адрес MPD:** Адрес MPD сервера. По умолчанию `localhost`. **Порт MPD:** Порт MPD сервера. По умолчанию `6600`. ### Desktop panel Начиная с версии 1.11.0 виджеты предоставляют панель для мониторинга за рабочими столами. И да, он выглядит, как аналогичная панель в Awesome. ### Настройка Desktop panel **Включить фон:** Снимите галочку, чтобы отключить стандартный фон виджета и установить прозрачный. По умолчанию `true`. **Вертикальная разметка:** Использовать вертикальную разметку вместо горизонтальной. По умолчанию `false`. **Высота виджета:** Отключит автоматическое определение высоты виджета и установит ее в данное значение. По умолчанию `0` (автоматически). **Ширина виджета:** Отключит автоматическое определение ширины виджета и установит ее в данное значение. По умолчанию `0` (автоматически). **Метка** Введите символ (или строку), которая будет показана, если данный рабочий стол сейчас активен. **Тип тултипа:** Тип превью, по умолчанию `Окна`. **Ширина тултипа:** Ширина тултипа в пикселях. По умолчанию `200px`. **Цвет тултипа:** Цвет, который будет использован в некоторых типах тултипа. По умолчанию `#ffffff`. **Теги шаблона** | | | |---------|---------| | `$mark` | Показать метку, если данный рабочий стол активен. Иначе показывает пробелы | | `$name` | Имя рабочего стола. | | `$number` | Номер рабочего стола. | | `$total` | Общее число рабочих столов. | ## Графический интерфейс ## Скриншоты
{% assign scrdesc = "Виджет (кликабельно)" %} {% assign scrname = "awesomewidgets_widget" %} {% include prj_scr.html %} {% assign scrdesc = "Окно настроек" %} {% assign scrname = "awesomewidgets_config_01" %} {% include prj_scr.html %} {% assign scrdesc = "Окно настроек" %} {% assign scrname = "awesomewidgets_config_02" %} {% include prj_scr.html %} {% assign scrdesc = "Окно настроек" %} {% assign scrname = "awesomewidgets_config_03" %} {% include prj_scr.html %} {% assign scrdesc = "Окно настроек" %} {% assign scrname = "awesomewidgets_config_04" %} {% include prj_scr.html %} {% assign scrdesc = "Окно настроек" %} {% assign scrname = "awesomewidgets_config_05" %} {% include prj_scr.html %} {% assign scrdesc = "Тултипы" %} {% assign scrname = "awesomewidgets_tooltips" %} {% include prj_scr.html %}