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

Такова специфика xmobar
Используйте вызов внешней утилиты date
 Run Com "date" ["+\"%a %b %_d %H:%M\""] "mydate" 600
https://archives.haskell.org/projects.haskell.org/xmobar/#executing-external-commands
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Используйте вызов внешней утилиты date

Благодарю, так работает.
Но почему тогда не получается прикрутить ваш скрипт "XMTime"?
xmobar пишет: Updating...
Думал дело в том, что в скрипте условие по дню недели на русском:
if [[ $DAY = "Суббота" ]]; then echo '<fc=#ffab00>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
elif [[ $DAY = "Воскресенье" ]]; then echo '<fc=#ff6500>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
Но теперь понял, что это не так.
ShuuuuR
Но почему тогда не получается прикрутить ваш скрипт "XMTime"?
xmobar пишет: Updating...
Наверное, Вы что-то не так делаете....
Либо пути не совпадают.
Судя по "xmobar пишет: Updating..." данных в канале нет.
Скрипт выводит данные в канал (pipe) Чтобы его использовать нужно сначала создать этот канал и прописать путь в самом скрипте и конфиге xmobar
mkfifo /path/to/pipe
В самом скрипте
echo что_там_выводится > /path/to/pipe
В конфиге xmobar должно быть прописано
Run PipeReader "/path/to/pipe" "pipe_name"
.....
template = ".... %pipe_name% ...."
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
P.S> я не знаю, какой версией скрипта Вы пользуетесь..
Дело в том, что с момента создания данного топика у меня многое изменилось - все скрипты теперь выводят данные в каналы.
Скрипт, отображающий дату и время у меня сейчас разделён на два отдельных скрипты.
Так что мне сложно давать советы, не зная, что именно используется.
Если не трудно, приведите весь скрипт полностью, а я посмотрю, что не так.

P.P.S>
Если скрипт взят отсюда, то:
1 - даны ли ему права на исполнение?
2 - пробовали ли Вы запускать его в терминале?
3 - по какому пути находится скрипт?
4 - прописан ли этот путь в переменной PATH в .bashprofile (или .zprofile, если в качестве дефолтного шелла используется zsh) ?

В общем, вариантов, почему скрипт у Вас не работает, может быть масса. Без подробной информации я могу только гадать...
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Наверное, Вы что-то не так делаете....
Да, делал не так.
Я использовал как пример ваш старый xmobarrc: github

Т.е. в commands добавил
Run Com "XMTime" [] "" 10"
, и в template
"%XMTime%"

Разве не то же самое происходит, когда вызывается внешняя команда date, как вы писали ранее?
ShuuuuR
Разве не то же самое происходит, когда вызывается внешняя команда date, как вы писали ранее?
То же самое.
Попробуйте запустить скрипт в терминале и посмотрите вывод.
Только запускайте просто прописав название скрипта, а не полный путь - есть у меня подозрение, что что-то не так с п.1 или п.4 из перечисленных мною в предыдущем сообщении.
Либо нет права на исполнение, либо путь к каталогу со скриптом не прописан в PATH

P.S> у меня в .bash_profile и .zprofile (я использую в качестве основного zsh) прописано
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games:/usr/bin/core_perl:/usr/lib/ccache/bin/:$HOME/.local/bin:$HOME/.cabal/bin"
Все скрипты лежат в ~/.local/bin и запускаются без использования полного пути, только по названию.
Никаких проблем нет.
Всё, что я описывал выше, работало на моём компе. Так что в данном случае что-то не так на Вашей стороне, со скриптом всё в порядке.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Попробуйте запустить скрипт в терминале и посмотрите вывод.
Либо нет права на исполнение, либо путь к каталогу со скриптом не прописан в PATH

Нет, сам по себе скрипт работает, ~/.local/bin прописан в $PATH, права на исполнение ему даны:
[shu@ShuuuuR ~]$ ls -la ~/.local/bin/XMTime
-rwxr-xr-x 1 shu users 355 сен  3 20:53 /home/shu/.local/bin/XMTime
[shu@ShuuuuR ~]$ XMTime
<fc=#ff6500>Воскресенье</fc> 03.09.2017 <fc=#cccccc>21:14:02</fc>

Всё, что я описывал выше, работало на моём компе. Так что в данном случае что-то не так на Вашей стороне, со скриптом всё в порядке.
Это понятно, что проблема у меня. Еще бы понять как ее решить.

Т.е. я правильно понимаю, что с такими настройками (без передачи вывода скрипта в pipe) все должно работать?
[shu@ShuuuuR ~]$ cat ~/.xmobarrc
Config {
    font = "xft:Terminus-18"
    , bgColor = "#333333"
    , fgColor = "#ffffff"
    , position = Top
    , overrideRedirect = True
    , commands = [ Run Com "XMTime" [] "" 10
		   , Run Network "enp3s0" ["-L","0","-H","32","--normal","green","--high","red"] 10
		   , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
		   , Run Memory ["-t","Mem: <usedratio>%"] 10
		   , Run Swap [] 10
		   , Run StdinReader
                 ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader% }{ %enp3s0% | %cpu% | %memory% | %swap% | %XMTime%"
}
ShuuuuR
Т.е. я правильно понимаю, что с такими настройками (без передачи вывода скрипта в pipe) все должно работать?
По идее, должно работать.
Во всяком случае у меня работало. Да и сейчас работает, хотя скрипт и был изменён.
У Вас именно этот вариант?
#!/bin/sh
DATA=`date "+%d.%m.%Y"`
DAY=`date "+%A"`
TIME=`date "+%H:%M:%S"`
if [[ $DAY = "Суббота" ]]; then echo '<fc=#ffab00>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
elif [[ $DAY = "Воскресенье" ]]; then echo '<fc=#ff6500>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
else echo $DAY $DATA  '<fc=#cccccc>'$TIME'</fc>'
fi
exit 0
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
P.S>
Попробуйте убить xmobar и запустите его в терминале, чтоб посмотреть, на что ругается.
killall xmobar && xmobar
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
У Вас именно этот вариант?
Да, в точности:
[shu@ShuuuuR ~]$ cat ~/.local/bin/XMTime
#!/bin/sh
DATA=`date "+%d.%m.%Y"`
DAY=`date "+%A"`
TIME=`date "+%H:%M:%S"`
if [[ $DAY = "Суббота" ]]; then echo '<fc=#ffab00>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
elif [[ $DAY = "Воскресенье" ]]; then echo '<fc=#ff6500>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>'
else echo $DAY $DATA  '<fc=#cccccc>'$TIME'</fc>'
fi
exit 0
Сейчас попробовал сделать через pipe:
1. Создал pipe
[shu@ShuuuuR ~]$ ls -la /tmp/Time
prw-r--r-- 1 shu users 0 сен  3 21:45 /tmp/Time

2. Прописал в скрипте вывод в него:
[shu@ShuuuuR ~]$ cat ~/.local/bin/XMTime
#!/bin/sh
DATA=`date "+%d.%m.%Y"`
DAY=`date "+%A"`
TIME=`date "+%H:%M:%S"`
if [[ $DAY = "Суббота" ]]; then echo '<fc=#ffab00>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>' > /tmp/Time
elif [[ $DAY = "Воскресенье" ]]; then echo '<fc=#ff6500>'$DAY'</fc>' $DATA  '<fc=#cccccc>'$TIME'</fc>' > /tmp/Time
else echo $DAY $DATA  '<fc=#cccccc>'$TIME'</fc>' > /tmp/Time
fi
exit 0

3. Изменил xmobarrc:
[[shu@ShuuuuR ~]$ cat ~/.xmobarrc
Config {
    font = "xft:Terminus-18"
    , bgColor = "#333333"
    , fgColor = "#ffffff"
    , position = Top
    , overrideRedirect = True
    , commands = [ Run Com "XMTime" [] "" 10
		   , Run PipeReader "/tmp/Time" "Time"
		   , Run Network "enp3s0" ["-L","0","-H","32","--normal","green","--high","red"] 10
		   , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
		   , Run Memory ["-t","Mem: <usedratio>%"] 10
		   , Run Swap [] 10
		   , Run StdinReader
                 ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader% }{ %enp3s0% | %cpu% | %memory% | %swap% | %Time%"
}

xmobar также выводит Updating.., но если в терминале выполнить скрипт, то в панели появляется его вывод появляется. Но не обновляется, пока снова не запущу XMTime.
Теперь непонятно, почему xmonad не выполняет скрипт каждую секунду.
 
Зарегистрироваться или войдите чтобы оставить сообщение.