s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
Предлагаю размещать здесь у кого что есть интересного по bspwm Скрипт погоды для polybar и Погода с яндекса, дополнение (спасибо patashnik), значительно упрощающее задачу "Сворачивание" окон на панель Планируется: Разные режимы создания новых окон а автоматическом режиме и их смена "на лету" (layouts) Выпадающий терминал Scratchpads - вызов во float режиме и скрытие любых окон на текущем workspase |
s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
Зарезервировано... |
s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
Скрипт погоды для polybar Давно хотел сделать погоду на панели WM такую как хочется. А именно - чтобы без сторонних приложений, без погодных сервисов, исходя из того что сайт погоды есть в свободном доступе, брать с него данные и выводить на панель. Вот и сделал. Данный вариант работает с панелью polybar, но его при желании можно легко приспособить и для xmobar, и для dzen, и для других подобных панелей. По клику на панели погода переключается в краткий формат (только иконка и температура) и развернутый формат (краткий + влажность + направление и скорость ветра + давление + тенденция давления: растет/падает) Конструкция состоит из 4 файлов с данными - это промежуточный и конечный с данными веб-страницы, pipe канал, конф-файл состояния кратко/подробно, ~/.config/.curweath-tmp ~/.config/.curweath-web /tmp/.weather-pipe ~/.config/.pb-weather-mode 3 небольших скриптов: Скрипт 1 ~/.bin/pb-get-weather Запускается каждые 10 мин., если есть пинг Качает страницу, запускает Скрипт 2 Скрипт 2 ~/.bin/pb-superweather парсит страницу и загоняет данные в pipe, читая конф-файл Скрипт 3 (по клику) ~/.bin/toggle-pb-weather Переключает параметр конф-файла и запускает Скрипт 2 и двух модулей панели polybar: Модуль 1 Ничего не выводит, а только запускает Скрипт 1 с заданным интервалом Модуль 2 Читает pipe и выводит на панель, по клику запускает Скрипт 3 Данные о погоде берутся с сайта accuweather.com Используется шрифт Weather Icons Итак, по порядку: 1. Именованный канал. Создаем канал где-нибудь в автозагрузке (например, в .xinitrc)
2. Скрипт 1 ~/.bin/pb-get-weather
Почему мы здесь сначала запускаем Скрипт 2, затем качаем страницу и потом повторно запускаем Скрипт 2? Потому что Скрипт 1 запускается при старте/перезагрузке панели (системы) и нужно сразу вывести данные на панель, пусть даже устаревшие, но они отобразятся сразу, а потом пусть неспешно (ведь инет не всегда быстрый) обновятся. А почему 2 файла ~/.config/.curweath-tmp и ~/.config/.curweath-web? Так инет жеж не всегда быстрый, и если wget будет работать несколько секунд, а в это время сработает Скрипт 2, то в pipe полетит ошибка, копирование же произойдет мгновенно и ошибка вылезти не успеет. Адрес "http://www.accuweather.com/ru/ru/surgut/288459/current-weather/288459" - это Сургут, пройдите по ссылке, выберите свое место и скопируйте адресную строку браузера в скрипт. Если вы используете не polybar, то можете в автозагрузку поставить примерно такой скрипт:
Скрипт 2 ~/.bin/pb-superweather
Как вы поняли, погодные иконки рисуются разные для дня и ночи и в блоке где определяется день сейчас или ночь у меня указано, что в месяцах 6 и 7 днем считать время от 3 до 23 часов и т.д., вы, конечно же, должны проставить свои параметры.Скрипт 3 ~/.bin/toggle-pb-weather
Модули панели Еще один момент: у меня в polybar шрифты заданы в следующем порядке:
Стало быть шрифт Weather Icons у меня пятый, и он выводится в ~/.bin/pb-superweather следующим образом echo "%{T5}$WICON%{T-}.... Если у вас другой порядок шрифтов, замените 5 на свое значение. Ну вот кажется и все, буду рад дельным советам :) -- p.s. Если пропадет иконка состояния погоды, значит на сайте появилась новая фраза. Зайдите на сайт, посмотрите что там, например, не "Солнечно", а "Грибной дождик", и допишите в массивы скрипта ~/.bin/pb-superweather новую фразу и соответствующую ей иконку. |
SirKittyKnight |
|
Темы:
5
Сообщения:
51
Участник с: 17 декабря 2017
|
Тема "bspwm - делимся полезными наработками", а написано про polybar. И зачем так мучаться с погодой, если можно: а) закурлить со спец.ресурсов, б) запарсить по человечески, в) использовать пакеты из аура, которые погоду в терминал кидают, г) на каком-нибудь яп с поддержкой модулей/сторонних библиотек по ключу выводить погоду. |
s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
SirKittyKnight, я же написал чего хотел: "чтобы без сторонних приложений, без погодных сервисов", если бы я хотел с ключами/пакетами/в терминал, то сделал бы по-другому.SirKittyKnightЕсли есть предложение по оптимизации кода - буду рад... |
patashnik |
|
Темы:
4
Сообщения:
199
Участник с: 29 августа 2009
|
Погода с яндекса
|
s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
patashnikСпасибо огромное! Давно искал нечто подобное. Добавлю в шапку и потестирую. |
gentux |
|
Темы:
3
Сообщения:
119
Участник с: 15 января 2015
|
Благодарю. |
SirKittyKnight |
|
Темы:
5
Сообщения:
51
Участник с: 17 декабря 2017
|
s-ugra@ya.ru, по-поводу сторонних сервисов, вы же в своем же скрипте используете сторонний сервис. Если у вас нет собственных датчиков, то зачем придумывать велосипед, если есть готовый. Как написали выше, через яндекс. Можно через Можно через яп, например, у меня через питон:
|
s-ugra@ya.ru |
|
Темы:
11
Сообщения:
763
Участник с: 15 ноября 2016
|
SirKittyKnight, говоря о сервисах, я имел в виду вот это, где "Fast, Low Priced and Automated, the simplest way to get AccuWeather?s Weather Data at your end, starting at US$0.69 per month.", а читать страницу, которая в открытом доступе - не есть использование какого-то сервиса. |