Awesome Widgets

Общая информация
Установка
Использование
Настройка
Графический интерфейс
Скриншоты
Ссылки

Сообщить о баге

Набор минималистичных легко настраиваемых пламоидов, написанных на C++/Qt. Они выглядят, как виджеты в Awesome WM. Также пакет предоставляет дополнительный системный [DataEngine] (//techbase.kde.org/Development/Tutorials/Plasma/DataEngines “Мануал для разработчиков”).

ВНИМАНИЕ: НУЖНЫ ПЕРЕВОДЧИКИ!

Совместим с Plasma 5!

Разработчики

Отдельное спасибо:

Лицензия

Список изменений

CHANGELOG-RU

Установка

Инструкция

Зависимости

Все было протестировано на последних версиях зависимостей.

Использование

Откройте список виджетов Plasma и выберете Awesome Widget.

Tips & tricks

Вы можете использовать несколько цветов в тексте. Просто вставьте нужный текст в html код. Смотри вопрос для более подробной информации.

Настройка

Настройка 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
$tstime Текущий таймстемп 3.1.2
$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
$downtotal Всего скачано для активного устройства, MB, ----. 3.1.2
$downtotalkb Всего скачано для активного устройства, KB, ----. 3.1.2
$downN Скорость загрузки устройства N, KB/s или MB/s, ----. 2.2.0
$downkbN Скорость загрузки устройства N, KB/s, ----. 3.0.0
$downunitsN Единицы cкорости загрузки устройства N, ----. 3.0.0
$downtotalN Всего скачано для устройства N, MB, ----. 3.1.2
$downtotalkbN Всего скачано для устройства N, KB, ----. 3.1.2
$up Скорость отдачи активного устройства, KB/s или MB/s, ----. 1.7.0
$upkb Скорость отдачи активного устройства, KB/s, ----. 3.0.0
$upunits Единицы скорости отдачи активного устройства, ----. 3.0.0
$uptotal Всего загружено для активного устройства, MB, ----. 3.1.2
$uptotalkb Всего загружено для активного устройства, KB, ----. 3.1.2
$upN Скорость отдачи устройства N, KB/s или MB/s, ----. 2.2.0
$upkbN Скорость отдачи устройства N, KB/s, ----. 3.0.0
$upunitsN Единицы скорости отдачи устройства N, ----. 3.0.0
$uptotalN Всего загружено для устройства N, MB, ----. 3.1.2
$uptotalkbN Всего загружено для устройства N, KB, ----. 3.1.2
$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
$responseN Ответ на веб запрос к URL N. 3.3.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 основной виджет поддерживает лямбда выражения, которые рассчитываются в рантайме. Они объявляются использованием конструкции ${{ }}:

${{
function three()
{
    return 1 + 2;
}
three()
}}

Функции внутри будут интерпретированы, как JavaScript, любая переменная из основного набора поддерживается. Так, функция:

${{
function colorCpu()
{
    if ($cpu > 90.0)
        return "<span style=\"color:#ff0000;\">$cpu</span>"
    else
        return "$cpu"
}
colorCpu()
}}

покажет значение $cpu красным, если оно больше 90.0, иначе - покажет цветом по-умолчанию. Также поддерживаются произвольные вычисления:

${{
$down - $up
}}

покажет разность между скоростями загрузки и отдачи. Другая особенность, предоставляемая лямбда выражениями - тег $this, который вернет последнее значение данной лямбда функции. Ниже чуть более сложный пример, который покажет бегущую строку “Артист - Название” с длиной меньшей либо равной 10 символам:

${{
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()
}}

Таким образом, лямбда выражения могут быть использованы, например, чтобы показывать произвольное значение, которое будет рассчитано в рантайме, или, чтобы показать различную информацию, в зависимости от некоторых условий. Однако, пожалуйста, учитывайте, что подобные вычисления в рантайме могут увеличить нагрузку на CPU.

Другое дополнение, которое было введено с 3.1.0 - шаблоны. Они работают также, как и лямбда выражения, однако вычисляются один раз (на старте), например:

$template{{
function three()
{
    return 1+2;
}
three()
}}

всегда будет показывать 3 и не будер расчитываться каждый раз.

Специальные функции

Чтобы улучшить работу лямбда и шаблонных функций с 3.1.0 были введены несколько внутренних функций. Они имеют следующий синтаксис: $aw_function<args>{{body}}, где аргументы могут быть опциональными. Если вы хотите передать несколько аргументов, они должны быть разделены запятыми. Если вы хотите передать запятую, как аргумент, используйте $,. Чтобы использовать сдвоенные скобки внутри тела, их нужно экранировать, используя $, например ${. Функции будут вызваны один раз при запуске перед всем остальным.

Функция Описание Аргументы Тело
aw_all была введена для отладки, возвращает все ключи по регекспу разделитель регексп для поиска
aw_count возвращает количество ключей по заданному регекспу (нет) регексп для поиска
aw_keys возвращает ключи по заданному регекспу, объединенные разделителем разделитель регексп для поиска
aw_names возвращает имена ключей (т.е. без $) по заданному регекспу, объединенные разделителем разделитель регексп для поиска
aw_macro определяет пользовательский макрос имя макроса, аргументы тело макроса
aw_macro_* (* - имя макроса) вызов пользовательского макроса аргументы макроса в аналогичном порядке игнорируется

Расширенные настройки

Включить фон: Снимите галочку, чтобы отключить стандартный фон виджета и установить прозрачный. По умолчанию true.

Переводить строки: Переводить или нет строковые теги. По умолчанию true.

Заменить символ перевода строки: Заменить \n на &#60;br&#62;. По умолчанию false.

Перенос слов: Включить перенос слов. По умолчанию false.

Включить всплывающие сообщения: Снимите галочку, если вы не хотите всплывающих сообщений на системные события. По умолчанию true.

Проверять обновления: Проверять или нет обновления при запуске. По умолчанию true.

Оптимизировать подписку: Оптимизировать работу с DataEngine. Вероятно, вы не хотите менять эту опцию, несмотря на тот факт, что одна функция будет недоступна. По умолчанию 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 оффлайн. По умолчанию ( ).

Включить удаленную телеметрию: Включить загрузку конфигурации на удаленный сервер.

Количество истории: Общее количество конфигураций, которые будут сохранены локально

ID телеметрии: Уникальный идентификатор клиента для загрузки на удаленный сервер.

Тултипы

Начиная с версии 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 Общее число рабочих столов.

Графический интерфейс

Скриншоты

awesomewidgets_widget
Виджет (кликабельно)
awesomewidgets_config_01
Окно настроек
awesomewidgets_config_02
Окно настроек
awesomewidgets_config_03
Окно настроек
awesomewidgets_config_04
Окно настроек
awesomewidgets_config_05
Окно настроек
awesomewidgets_tooltips
Тултипы

Ссылки