[РЕШЕНО] xmonad - некоторые параметры manageHook

Сформулирую вопрос как смогу .
В общем, суть в следующем - никак не могу найти подходящий параметр, который "приклеит" указанное окно в нижнем слое, под всеми окнами.
Имеется в виду приложение Gis-weather. Мне нужно, чтобы выводимый виджет отрисовывался, но перекрывался другими окнами.
Перечитал уже кучу манов, но нигде не нашёл того, что мне требуется.
Знаю, что виджет можно скрыть в настройках программы, оставив только индикатор в трее, но этот вариант меня не устраивает.. Поясню почему.

Когда я только начал осваивать awesome меня абсолютно не устраивал вид индикатора в трее, в который выводится текущая температура. Дело в том, что он сильно искажал шрифт и портил весь вид панели. Поэтому автор программы, с которым я знаком по бубнофоруму, включил в новые версии одну незадокументированную фичу - текущая температура записывается в фйал, лежащий в каталоге с конфигом. И вот оттуда я и беру температуру и вывожу на панель средствами самого wm. Однако с этим не всё гладко - данные в файле обновляются только при наличии виджета на рабочем столе. Если его скрыть, оставив только индикатор, то файл обновляться не будет.
В awesome я прописал правило для этого виджета, прикрепляющее его к первому тегу, а в настройках самого приложения отключил опцию "отображать на всех рабочих столах". В итоге виджет всегда скрыт под браузером, а температура выводится в панель и регулярно обновляется (простенький скрипт, который запускается с указанным периодом)
С xmonad такое не получается - виджет подчиняется общим правилам и отрисовывается в тайле. Никаие настройки программы его поведение не меняют. Если скрыть виджет, оставив только индикатор (благо трея у меня нет и его не видно), то тогда температура не обновляется.
Пришлось прописать отдельное правило для виджета - теперь он отрисовывается в плавающем окне указанного размера в указанной позиции. Периодически запускаю, чтоб обновить температуру, а потом выключаю. Геморройно это.
Вот само правило:

, NS "Gis-weather.py" "python3 /home/haron/lib/gis-weather/gis-weather.py" (className =? "Gis-weather.py") (customFloating $ W.RationalRect 0.291 0.3 0.418 0.32)

Мне требуется заменить customFloating на параметр, который спрачет виджет под всеми окнами. Но найти его я не смог. (((
Паралельно я обратился к автору программы и он пообещал на выходных посмотреть как можно решить проблему с необновляемостью данных в файле. Человек он хороший, всегда шёл мне навстречу и старался реализовать все мои хотелки (мы с ним "сотрудничаем" с самого начала разработки программы, когда это был ещё просто скрипт на питоне), но гарантии положительного результата нет. Вот и приходится мскать обходные пути.

Прошу прощенья за "много букав".
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Беглым поиском нашёл:

doF W.swapDown - ставит новые окна ниже других, вот не знаком с тайлингом, он ниже поставит или всёже под...
Этот параметр взят отсюда.
1.1.3 Floating all new windows
To float all windows and manually tile them with ‹mod›-t, simply add  <+> doFloat
to your manage hooks. Warning: you don't want to combine this with hooks such as doF W.swapDown
which put new windows below others. Also, the floating layer isn't designed for extensive use; if possible, limit doFloat
to apps that really need it (see examples in previous section.)

-- skipped
main = xmonad defaultConfig
    { manageHook = myManageHooks <+> doFloat
      -- more changes
    }

Эммм, а смотрели тут? по поиску under, below
https://wiki.haskell.org/Xmonad/General_xmonad.hs_config_tips#More_info_about_ManageHooks
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Doc-Extending.html#15
http://xmonad.org/xmonad-docs/xmonad/XMonad-ManageHook.html

Создание комнаты для Conky или приложений из трея

import XMonad
import XMonad.Hooks.ManageDocks

main=do
xmonad $ defaultConfig
{ ...
, layoutHook=avoidStruts $ layoutHook defaultConfig
, manageHook=manageHook defaultConfig <+> manageDocks
, ...
}


P.S. xmonad'а у меня нету, как и возможности проверить.
Русская команда переводчиков ArchWiki
скромный вклад
Этот параметр я видел, он располагает окно именно ниже, а не под другими окнами.
Вчера просмтривал faq и wiki на сайте программы, всречал и эти функции, а вот нужную не нашёл.
Но всё равно спасибо.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
В общем, вопрос пока закрыт, т.к. корректного решения нет.
Слепил костыль - создал дополнительный рабочий стол "0" прописал в конфиге правило для виджета "отображаться только на этом столе"
Подожду, что скажет RingOV (автор программы).
Есть одна идея, но пока её не проверял, сработает или нет - не знаю.
Попробую указать для данного виджета нулевой размер и позицио в самом углу.
Типа так
, NS "Gis-weather.py" "python3 /home/haron/lib/gis-weather/gis-weather.py" (className =? "Gis-weather.py") (customFloating $ W.RationalRect 0 0 0 0)
Посмотрим, как отреагирует xmonad и сама программа.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Сегодня RingOV выложил новую git-версию своей программы, в которой исправлен вывод текущей температуры в файл - теперь данные выводятся независимо от того, какой именно режим отображения выбран (только виджет | виджет + индикатор | только индикатор).
Теперь мой костыыль работает без нареканий - текущая температура в xmobar обновляется как положено.
Отмечаю тему как решённую, хотя нужное правило для окна так и не было найдено. Тем не менее поставленной цели я достиг.
Всем спасибо за внимание.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Сегодня RingOV выложил новую git-версию своей программы, в которой исправлен вывод текущей температуры в файл
Оперативно он :-)
Русская команда переводчиков ArchWiki
скромный вклад
malody,
Я ж писал - он очень хороший и отзывчивый человек. Всегда оперативно реагирует на "багрепорты" на форуме.
Я, правда, обращаюсь к нему напрямую в ЛС, т.к. большинство моих хотелок нафиг не нужны никому, кроме меня, как в данном случае.

Если кого-то заинтересует способ альтернативного вывода текущей температуры и погоды из gis-weather, поставьте git-версию. (не знаю, если это есть в релизных версиях gis-weather)
В конфиге есть такие строки

    "save_cur_data_path": "",   # путь для сохранения файлов с температурой и значков, если не устраивает дефолтный
    "save_cur_icon": false,
    "save_cur_temp": false,
    "save_cur_temp_add_scale": false,
По дефолту опции сохранения отключены.
После первого запуска и настройки в конфиге появится нужный файлик - $HOME/.config/gis-weather/cur_temp и значки текущей погоды в формате png и svg (если активированы соответствующие опции)
Профит!
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 
Зарегистрироваться или войдите чтобы оставить сообщение.