Интерактивный xmobar

Aivar
Я не знаю логики xmobar. Из треда понял, что на вывод каждого значения нужен внешний скрипт. Одним скриптом вывести нельзя?
Можно. Логика такая - любой модуль может читать данные из канала (мгновенно), либо из встроенной команды (быстро), либо из внешнего скрипта (столько сколько будет выполняться скрип - и на это время бар морозится). Если это скрипт выдающий дату/время в заданном формате - то это мгновенно и проблем нет, но проверка обновлений (с моим инетом) м.б. долго и при перезагрузке, когда базы нет панель может просто не отображаться пока все не закончится. Вот и приходится придумывать разные костыли.
s-ugra@ya.ru
Какая разница?
да особо никакой просто...
while true; do
  if [[ `date "+%H"` == 00 ]]; then
    sleep 7200 && /home/admin/script/backup.sh
  fi
  sleep 30
done
люди и без crona обходились)))
Ошибки в тексте-неповторимый стиль автора©
s-ugra@ya.ru
У мну инет другой, бывает совсем плохой, он может и на одном зеркале повеситься на 5 минут(((

Morisson
Вчера испытал, вырубив связь. Запустился мгновенно.
Morisson
Вчера испытал, вырубив связь. Запустился мгновенно.
Возможно, если сети нет, он туда и не лезет, но если коннект есть, то он все же пытается оттуда чего то дождаться.
s-ugra@ya.ru, как-то все это то ли неправильно, то ли непривычно... Должно быть так: один скрипт работает в конвейере с баром, создает и отдает ему нужную инфу. Во всяком случае у меня так. Могу брать и выводить стандартный вывод i3status, могу в разных пропорциях добавлять свою и т.д. Ну да вам с бацькай виднее. )

indeviral
люди и без crona обходились)))
Я и сейчас без него обхожусь, правда, грешен, не без systemd timers. )
Aivar
Ну да вам с бацькай виднее. )
Чет он сегодня не пришел) Да и у нас в принципе все так же, только возможно i3status не морозится когда в конвейере затык... с нормальным инетом (на работе) вообще проблем нет, это проявляется только на даче, 3G модем, большое расстояние...
s-ugra@ya.ru
возможно i3status не морозится когда в конвейере затык
Ну как... это же конвейер: остановился один узел - остановился весь механизм. Не довожу и вам не советую. Не используйте fifo и точка. В конце концов, количество доступных обновлений - не такая у важная инфа, хотя, это дело, конечно, принципа.
indeviral
он не продуман, там сильно много если))
если,
then else
fi)))
Погода.
Для получения погоды используется gis-weather-git, т.к. на текущий момент в релизе этих фишек ещё нет.

1 - Добавляем вывод температуры в xmobar
Для начала следует установить gis-weather-git из аура и настроить его для своего местоположения. Более подробная информация есть на странице проекта на гитхабе
После завершения настройки необходимо выключить программу и открыть в текстовом редакторе файл ~/.config/gis-weather/gw_config1.json
Проверяем в конфиге параметры сохранения данных (строки 173 и 175)
"save_cur_temp":
"save_cur_temp_to_pipe": 
Первый по дефолту false, второй true
Устанавливаем оба в true
Сохраняем изменения, и запускаем gis-weather.
Открываем на редактирование xmobarrc
Добавляем в commands следующую строку
, Run PipeReader "/home/username/.config/gis-weather/cur_temp" "Cur_temp"
В template прописываем %Cur_temp% в выбранное место. При желании можно применить форматирование вывода. У меня это так.
<fn=1><fc=#95d5f5>%Cur_temp%</fc></fn>
* fn=1 это в моём конфиге "xft:Terminus:size=12:weight=bold:antialias=true:hinting=true"
Сохраняем, перезапускаем xmobar, получаем



Возможно, что с первого раза не заведётся - будет висеть надпись Updating...
Просто перезапустите gis-weather или, ещё лучше, перезайдите в сеанс.

2 - Вывод подробной погоды в попап (dunst, notify-osd)
Останавливаем gis-weather
Открываем на редактирование файл ~/.config/gis-weather/gw_config1.json
За вывод информации в файл и форматирование отвечают следующие параметры
    "save_weather": false,
    "save_weather_fmt": "",
    "save_weather_path": "",
Изменяем false на true и запускаем gis-weather
Вывод осуществляется командой
notify-send "$(cat ~/.config/gis-weather/cur_weather)"
В программе уже есть предустановки форматирования, но, если они не устраивают, то можно изменить их на свои.
Для этого следует прописать в "save_weather_fmt": "", свой формат вывода
Доступные переменные
'city_name'
't_now'
't_now_feel'
'condition_now'
'wind_direct_now'
'wind_speed_now'
'wind_units_now'
'sunrise'
'sunset'
'pressure_now'
'pressure_units_now'
'humidity_now'
Для форматирования можно использовать следующие теги
<tt> - моноширинный шрифт
<big>
<small>
<b>
<u>
<i>
Список тегов приведён для вывода через dunst
Если вы используете notify-osd, то можно также задать цвет/тип шрифта и использовать другие параметры форматирования, которые поддерживаются этой программой. В том числе <center> для позиционирования названия населённого пункта, к примеру.

В качестве примера настройки приведу строку из своего конфига (у меня dunst)
"save_weather_fmt": "<tt>    <big><b><u>{city_name}</u></b></big>\n \n <i>{condition_now}</i>\n \n Температура:  {t_now}C\n Ощущается:    {t_now_feel}C\n Ветер:        {wind_direct_now} {wind_speed_now} <small>{wind_units_now}</small>\n Давление:     {pressure_now} <small>мм рт.ст.</small>  \n Влажность:    {humidity_now}\n \n Восход:       {sunrise}\n Закат:        {sunset}\n</tt>",

Чтобы попап выглядел привлекательнее и более информативно, можно заменить стандартную иконку уведомления, на значёк текущей погоды.
notify-send -t 0 -i "/home/username/.config/gis-weather/cur_icon.png" "$(cat ~/.config/gis-weather/cur_weather)"
*путь к изображению нужно прописывать в полном формате
сокращения типа ~/my/image.png или $HOME/my/image.png не работают

В итоге получаем вот такой попап


Чтобы в значёк в попапе выглядел нормально, требуется в строке "indicator_icons_name": указать понравившуюся тему.
К примеру, "indicator_icons_name": "light", - значки из этого набора отображены на скрине
В противном случает, если установлено "default", значки берутся с сайта той погодной службы, на которую вы настроили gis-weather. В отдельных случаях они могут иметь неадекватные размеры.
Список доступных к использованию наборов значков:

Simple
Sketchy
Stiker
colorful
dark
flat_black
flat_colorful
flat_white
light

Команду вызова можно повесить либо на хоткей, либо прописать как действие по клику на показания температуры в xmobar - тут уже всё зависит от вашей фантазии.

На этом пока всё.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
P.S>
GWeather
#!/usr/bin/env zsh

if (pidof dunst >/dev/null); then
    kill $(pidof dunst)
else
    notify-send -t 0 -i "/home/haron/.config/gis-weather/cur_icon.png" "$(cat ~/.config/gis-weather/cur_weather)"
fi
exit 0
*скрипт позволяет показывать и прятать попап по одной и той же комбинации клавиш

xmonad.hs
, ((mod1Mask,                        0x77),  spawn "GWeather")           --Alt+W

xmobarrc
<action=`GWeather` button=1><fn=1><fc=#95d5f5>%Cur_temp%</fc></fn></action>
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 
Зарегистрироваться или войдите чтобы оставить сообщение.