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

За скрипт спасибо, выглядит, конечно, намного изящней) а насчет амперсанда я думал что он везде нужен, да и батька Haron так сказал:
Haron_Prime
1 - редактируем xinitrc - добавим туда следующую строку

mkfifo /tmp/pipe &
Надо почитать где-то развернуто про синтаксис .xinitrc
Нашел вот такое утверждение:
...следите за тем, чтобы в конце каждой комманды, кроме собственно window manager, стоял амперсанд (&),- в результате этого все программы запускаются в фоновом режиме (иначе следующая команда не будет выполняться, пока не закончится выполнение предыдущей, а ничего хорошего в этом нет). Поэтому ТОЛЬКО WINDOW MANAGER запускается в основном режиме и забирает с собой все процессы, запущенные через xinitrc, когда вы выходите из X
s-ugra@ya.ru
Нашел вот такое утверждение:
Настройка X Windows. ))) Дальше даже не читал. Это про десятую винду, наверное... )

s-ugra@ya.ru
Надо почитать где-то развернуто про синтаксис .xinitrc
Что там читать? По сути - это обыкновенный bash-скрипт.
Амперсанд - запуск команды в фоновом режиме, в .xinitrc с этой целью и применяется, т.е. нужен если команда не умеет самостоятельно работать в фоновом режиме или отрабатывает долго. Пример:
urxvtd &
(sleep 5 && sbxkb) &
Ысчё один пример:
$ time xset s 300

real	0m0,002s
user	0m0,000s
sys	0m0,000s
Тут после xset амперсанд нужен, как козе баян.
Morisson
Поделись скриптом?
он не продуман, там сильно много если))
Aivar
echo >> /tmp/.getpkg-pipe &
что то я не совсем догоняю смысл этого но если это pipe файл то аперанд(или как он там) всё таки нужен))
Ошибки в тексте-неповторимый стиль автора©
Haron_Prime
Ну и напоследок - Как сделать простую кликабельную кнопку в xmobar.
Воспользовавшись идеей реализовал у себя, но немного по-другому. Поскольку у меня в xmobar применяется шрифт
Config {
    font = "xft:SFN
    display:size=11,FontAwesome:size=11"
    ...
я решил сделать иконку из него, для для этого в скрипте ~/.local/bin/XMNull сделал так:
#!/bin/sh
echo '<fc=#FF0000>''</fc>'
exit 0
Думаю, что можно и просто "off" написать или что-нибудь другое.
А действие (запись в template) сделал одно:
<action=`oblogout` button=1>%XMNull%</action>
Файл /etc/oblogout.conf немного подправил, чтобы вписывалось в xmonad:
...
[looks]
opacity = 70
bgcolor = black
#buttontheme = oxygen
buttontheme =foom
#buttons = cancel, logout, restart, shutdown, suspend, hibernate, lock
buttons = cancel, restart, shutdown, suspend
...
Правило для oblogout в xmonad.hs
myManageHook = scratchpadManageHook ( W.RationalRect 0.25 0.25 0.5 0.5 ) <+> namedScratchpadManageHook mynameScratchpads <+> ( composeAll . concat $
      ...
    , [(className =? c <||> title =? c <||> resource =? c) --> doFloat                        | c <- float  ]
      ...
    where
        ...
        float     = ["feh","Oblogout"]
    ...
Выглядит кнопка вот так

И oblogout так
indeviral
Aivar
echo >> /tmp/.getpkg-pipe &
что то я не совсем догоняю смысл этого...
Это не мое произведение, а смысл, вероятно, записать (затем прочитать) пустую строку.

indeviral
но после этого
mkfifo /tmp/.getpkg-pipe &
аперанд всё таки нужен))
Зачем?
Aivar
Зачем?
после этого
echo >> /tmp/.getpkg-pipe &
я некорректно написал уже поправил сори...
Ошибки в тексте-неповторимый стиль автора©
indeviral
Aivar
echo >> /tmp/.getpkg-pipe &
что то я не совсем догоняю смысл этого но если это pipe файл то аперанд(или как он там) всё таки нужен))
Если не отправить в канал пустую строку, то на баре все время будет висеть надпись "Updating..." с момента загрузки и пока не отработает скрипт, а так там просто ничего не будет пока не появятся обновления.
indeviral
я не корректно написал уже поправил сори...
Ага, ну да: один зашел - один вышел, и пока второй не вышел, первый не зайдет. Но я же не знаю с какой периодичностью там читается содержимое /tmp/.getpkg-pipe. Если регулярно, то амперсанд точно не нужен. Если не регулярно - тем более не нужен, ибо он поломает всю логику скрипта. Имхо, пусть ждет, пока не освободится очередь. Впрочем пусть вопрошавший разбирается на месте.
Читается когда загрузится xmobar. Да в принципе в оно в .xinitrc и не нужно, я его в xmonad.hs перенес:
myStartupHook = setWMName "LG3D" <+> setDefaultCursor xC_left_ptr <+> do  spawn "~/.xmonad/getvolume.sh >> /tmp/.volume-pipe && echo >> /tmp/.getpkg-pipe"
Aivar
Если не регулярно - тем более не нужен
у него его скрипт, который опрашивает не стартанёт пока незавершится
echo >> /tmp/.getpkg-pipe
а он не завершится))

s-ugra@ya.ru
Если не отправить в канал пустую строку, то на баре все время будет висеть надпись "Updating..." с момента загрузки и пока не отработает скрипт, а так там просто ничего не будет пока не появятся обновления.
вы в pipe отправляете одну цифру, что это за мазахизм?) (или ваш xomand с обычными файлами не работает? )
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.