Тонкая настройка xmobar

Похоже на то, что скрипт вообще не выполняется при старте xmobar...
Странно...
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Попробуйте убить xmobar и запустите его в терминале, чтоб посмотреть, на что ругается.
Собственно я и полез на форум вопросы задавать, потому, что с самого начала xmobar мне никакой ругани в терминал не выдает. Кроме того, что не все опции в конфиге указаны:
[shu@ShuuuuR ~]$ killall xmobar && xmobar
Fields missing from config defaulted: additionalFonts,border,borderColor,textOffset,iconOffset,allDesktops,pickBroadest,hideOnStart,lowerOnStart,persistent,iconRoot,alpha
Haron_Prime
Похоже на то, что скрипт вообще не выполняется при старте xmobar...
Странно...

Да, xmobar читает из pipe, но скрипт не выполняет:
[shu@ShuuuuR ~]$ lsof /tmp/Time
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
xmobar  2999  shu    9u  FIFO   0,39      0t0 23769 /tmp/Time
[shu@ShuuuuR ~]$ lsof ~/.local/bin/XMTime
[shu@ShuuuuR ~]$

Хотя права на выполнение ему даны:
[shu@ShuuuuR ~]$ ls -la ~/.local/bin/XMTime
-rwxr-xr-x 1 shu users 390 сен  3 22:26 /home/shu/.local/bin/XMTime
У Вас ошибка в xmobarrc -
font = "xft:Terminus-18"
Это неправильная форма записи
нужно вот так
font = "xft:Terminus:size=18"
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
У Вас ошибка в xmobarrc -
font = "xft:Terminus-18"
Это неправильная форма записи
нужно вот так
font = "xft:Terminus:size=18"

Спасибо, поправил. Но проблему это не решило.
Сейчас обновил систему (pacman -Syu) и перезагрузил машину. Теперь даже запуск скрипта XMTime из терминала не выводит дату в бар.

Еще не понял такую вещь: В вашем последнем конфиге Текст ссылки...
Все скрипты работают через pipe. А где в этом конфиге они запускаются?
Т.е. я у себя явно прописываю запуск скрипта:
Run Com "XMTime" [] "" 10

А как это реализовано у вас?
ShuuuuR
А где в этом конфиге они запускаются?
Теперь все используемые скрипты совершенно другие и запускаются из конфига xmonad
myStartupHook = return () <+> adjustEventInput <+> setWMName "LG3D" <+> onScr 1 W.greedyView (myWorkspaces !! 0) <+> spawn "XMStart"
XMStart - это скрипт, который проделывает все нужные действия при старте xmonad/xmobar - обнуляет неиспользуемые каналы (большинство скриптов, выводящих данные в эти каналы, теперь срабатывает по требованию - кликом по значку), отправляет в некоторые каналы временные символы (они потом заменяются другими, когда отработают соответствующие скрипты и программы и выведут данные в эти каналы), проверяет состояние скриптов и запускает нужные, если они не запущены.
cat ~/.local/bin/XMStart
#!/usr/bin/env zsh
# Author - Haron Prime
# License © 2017 WTFPL http://www.wtfpl.net/

echo  "" > /tmp/haron/NT &
echo  "" > /tmp/haron/TU &
echo  " " > /tmp/haron/WI &
echo > /tmp/haron/CT &
echo > /tmp/haron/CU &
echo > /tmp/haron/DO &
echo > /tmp/haron/MEM &
echo > /tmp/haron/MW2 &
echo > /tmp/haron/NS &
echo > /tmp/haron/PL &
echo > /tmp/haron/RU &
echo > /tmp/haron/TEMP &
echo > /tmp/haron/TR &
echo > /tmp/haron/UP &
echo > /tmp/haron/UT &
echo > /tmp/haron/VO &
if [[ -z $(ps aux | grep gis-weather.py | grep -v grep | awk '{print $2}') ]]; then
    gis-weather &
fi
if [[ -z $(ps aux | grep XMTimeNew | grep -v grep | awk '{print $2}') ]]; then
    XMTimeNew &
fi
if [[ -z $(ps aux | grep XMUpdate | grep -v grep | awk '{print $2}') ]]; then
    XMUpdate &
fi
if [[ -z $(ps aux | grep XMNetTest | grep -v grep | awk '{print $2}') ]]; then
    XMNetTest &
fi
if [[ -z $(ps aux | grep XMTrans | grep -v grep | awk '{print $2}') ]]; then
    XMTrans &
fi
if [[ -z $(ps aux | grep XMMPD | grep -v grep | awk '{print $2}') ]]; then
    XMMPD &
fi
exit 0
Сам скрипт, который выводит время и дату теперь разделён на два - XMTimeNew и XMDate
Первый запускается при старте xmonad, второй по требованию (кликом)

XMTimeNew
#!/usr/bin/env zsh
# Author - Haron Prime
# License © 2017 WTFPL http://www.wtfpl.net/

while true; do
    echo `date "+%H:%M:%S"` > /tmp/haron/TIME
    sleep 1
done

XMDate
#!/usr/bin/env zsh
# Author - Haron Prime
# License © 2017 WTFPL http://www.wtfpl.net/

while true; do
    DAY=`date "+%A"`
    DATA=`date "+%d.%m.%Y"`
    if [[ $(date "+%V" | cut -c 2) -eq 1 ]]; then
        WEEK=`date "+%V-st week"`
    elif [[ $(date "+%V" | cut -c 2) -eq 2 ]]; then
        WEEK=`date "+%V-nd week"`
    elif [[ $(date "+%V" | cut -c 2) -eq 3 ]]; then
        WEEK=`date "+%V-rd week"`
    else
        WEEK=`date "+%V-th week"`
    fi
    TZ=`date "+%Z UTC%:::z"`
    case $DAY in
        Суббота     ) echo "<fc=#ffab00> $DAY</fc>  <fn=1><fc=#ccc>$DATA  $WEEK  $TZ </fc></fn>" > /tmp/haron/DO ;;
        Воскресенье ) echo "<fc=#ff6500> $DAY</fc>  <fn=1><fc=#ccc>$DATA  $WEEK  $TZ </fc></fn>" > /tmp/haron/DO ;;
        *           ) echo "<fc=#959595> $DAY</fc>  <fn=1><fc=#ccc>$DATA  $WEEK  $TZ </fc></fn>" > /tmp/haron/DO ;;
    esac
    sleep 60
done

xmobarrc

, Run PipeReader "/tmp/haron/TIME" "TIME"
, Run PipeReader "/tmp/haron/DO"   "DO"
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Теперь у меня отображение переключается - сокращённое (только время) и полное. Поэтому вывод и сделан через пайп.





Отображение переключается кликом (скрипт XMDateState)

xmobarrc
template = "... <action=`XMDateState` button=1><action=`XMGSimplecal` button=3><action=`XMCal` button=45>%DO%<fn=1><fc=#ccc> %TIME%</fc></fn></action></action></action> ..."

XMDateState
#!/usr/bin/env zsh
# Author - Haron Prime
# License © 2017 WTFPL http://www.wtfpl.net/

PID=`ps aux | grep XMDate | grep -v XMDateState | grep -v grep | awk '{print $2}'`
if [[ -n $PID ]]; then
    kill $PID
    echo > /tmp/haron/DO
    exit 0
else
    XMDate &
    exit 0
fi

Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Не знаю, полезна ли будет кому-либо эта информация, но спустя много времени таки решил проблему удалением slim. При авторизации в системе через него, xmobar и xmonad не запускали сторонние скрипты.
Простенький анимированный индикатор заряжающейся батареи (требуется наличие шрифта Font Awesome или Terminus Re33 Nerd)

#!/usr/bin/env zsh

while true; do
    echo "<fc=#5f5>  </fc>" > /tmp/haron/battery
    sleep 0.5
    echo "<fc=#5f5>  </fc>" > /tmp/haron/battery
    sleep 0.5
    echo "<fc=#5f5>  </fc>" > /tmp/haron/battery
    sleep 0.5
    echo "<fc=#5f5>  </fc>" > /tmp/haron/battery
    sleep 0.5
    echo "<fc=#5f5>  </fc>" > /tmp/haron/battery
    sleep 0.5
done


Вот так это работает (видео webm)
Вариант 1 - просто зелёный индикатор
Вариант 2 - меняющий цвет.

Думаю, принцип понятен.
А уж допилить скрипт под свои нужды и заставить запускаться/останавливаться по событию, дело того, кто захочет им воспользоваться. )))
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 
Зарегистрироваться или войдите чтобы оставить сообщение.