Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Итак, приступим. К сожалению вынужден сообщить, что после некоторого тестирования выяснилось, что нужно не два, а три канала: 1 - канал, который будет слушать сокет 2 - канал, который будет слушать скрипт 3 - канал, в который скрипт будет отправлять модифицированные данные Как вариант, второй канал можно заменить текстовым файлом, т.к. информация в файле будет обновляться одновременно с обновлением первого канала, т.е. как только программа получит новые данные от сервера. В общем, это не принципиально, поэтому выкладываю способ для трёх каналов. Захотите - переделаете. $HOME/.config/gis-weather/gw_config1.json
$HOME/.config/systemd/user/wi.socket
$HOME/.config/systemd/user/wi.service
$HOME/.local/bin/XMWI
xmobarrc
.xinitrc
*** Примечания 1 - пути для каналов можно прописывать на своё усмотрение - место их расположения значения не имеет, я предпочитаю в /tmp. В первый канал выводится текущая температура (способ её вывода на панель описан в этом же топике ранее), второй канал прослушивается сокетом (абсолютно неважно, что туда будет выводиться, т.к. нас интересует сам факт обновления информации, а не он сама), третий канал содержит необходимую нам информацию, которую будет считывать скрипт, преобразовывать и перенаправлять в другой канал, который и прослушивается PipeReader'ом xmobar'а, его можно заменить текстовым файлом. Каналы должны быть прописанны именно в таком порядке, т.к. из-за специфики программы информация туда пишется по очереди. После внесения изменений в конфиг программы её следует перезапустить. 2 - после того, как создадите сокет и сервис, требуется активировать сокет
3 - в скрипте используется шрифт Weather Icons - он есть в ауре (ссылки на аур и сайт я давал в предыдущих сообщениях). Его следует прописать в xmobarrc в additionalFonts Соответственно в скрипте следует указать этот шрифт под тем же номером, под которым он прописан в xmobarrc. В моём примере (и моей системе) это четвёртый альтернативный шрифт xmobar, поэтому в скрипте прописано <fn=4>. Основной шрифт xmobar - это fn=0 (счёт начинается с нуля) Альтернативные шрифты нумеруются от 1 и далее 4 - Канал wi_output, куда скрипт будет сливать модифицированную информацию, следует создавать самому. Можно делать это командой в xinitrc или, как это делаю я, пользовательским сервисом (у меня он создаёт каталог /tmp/haron, в который переносится кеш и в котором тем же сервисом создаются все нужные мне временные файлы и каналы). Если вы разместите данный канал не в /tmp, то достаточно создать его один раз. Вроде всё. ![]() ![]() |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Прикрутил ещё одно действие - переключение раскладки текущего окна кликом (старый вариант был, откровенно говоря, кривоват)
xmobarrc
|
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Ещё одно небольшое "улучшение" - изменил способ вывода уровня громкости в xmobar Раньше звук выводился периодически выполняемым скриптом. Чтобы избежать постоянного ненужного выполнения скрипта немного изменил команды в xmonad.hs и xmobarrc Теперь это реализовано так: 1 - xinitrc или сервис
2 - xmonad.hs
3 - xmobarrc
4 - XMVol2
Теперь скрипт выполняется только после события изменения громкости. Отображаемое значение в xmobar меняется моментально. P.S> для того, чтобы после старта xmonad/xmobar не висела надпись Updating... в ожидании события изменения громкости, в xmonad.hs следует прописать однократное выполнение скрипта при старте. У меня это реализовано так
Уровень громкости отображается сразу после старта, никакого ожидания не происходит. P.S> UPD |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Возвращаясь к нашим баранам )))s-ugra@ya.ru
|
s-ugra@ya.ru |
|
![]()
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
Haron_PrimeПоставил у себя, работает отлично :) |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
как и задумывалось ))) |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Haron_PrimeUPD. Изменил ещё раз. Создал три копии скрипта XMVol2 с именами XMVolUp, XMVolDown, XMVolMute В каждую копию добавил первой строкой действие изменения уровня громкости. Типа вот так Ну и заменил все соответствующие команды в xmonad и xmobar
С одной стороны - наплодил сущностей С другой - места на диске мне не жалко, да и занимают эти три скрипта совсем ничего. Зато мне стало удобнее ковыряться в конфигах xmonad и xmobar, а делаю я это регулярно. В общем, получилось то, что получилось. ))) |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
Слепил ещё пару скриптиков для плавного изменения цвета в зависимости от получаемого значения Tемпература Gpu, MB и GPU теперь выглядит так ![]() Диапазон значений температуры 20-72 (Сначала сделал 30-82 но получилось как-то слишком зелено) Диапазон цветов 00FF00-FFFF00-FF0000 Кому нужно - берите с гитхаба Скрипты называются XMTCpuNew, XMTGpuNew, XMTMBNew Корявенькие, но работают. Входящие значения подправите под себя - я беру данные из sensors Ещё один скрипт (XMRomNew, там же) для вывода значений использованого места на дисках Сделан по тому же принципу Диапазон 0-100 (green-yellow-red) ![]() Но его ещё буду завтра редактировать ![]() |
Haron_Prime |
|
![]()
Темы:
28
Сообщения:
2109
Участник с: 08 июня 2014
|
В дополнение к вышенаписаному Скрипт XMCpuLoad - высчитывает нагрузку CPU и выводит показания различным цветом в зависимости от нагрузки (шаг - 1 градус): 0% - #00FF00 ... 50% - #FFFF00 ... 100% - #FF0000 Результат выводится в канал Вывод в xmobar
P.S> как его запускать - решать вам у меня его запуск прописан в xmonad.hs
|
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
Haron_PrimeВы теперь везде где надо и где нет будете массивы применять? На это же смотреть больно. Я уже не говорю сколько времени вы потратили на калибровку цветов... ) Тут я описывал маленькую процедуру. В вашем случае (насколько я понимаю и если нигде не ошибся) это должно выглядеть так: Т.е. в шесть строк делает:AivarДарю. ) |