bspwm - делимся полезными наработками

gentux, а polybar каким образом у Вас запускается?
[email protected]
gentux, а polybar каким образом у Вас запускается?
В .config/openbox/autostart
.config/polybar/launch.sh &

#!/usr/bin/env sh

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

# Launch bar1 and bar2
polybar test &
gentux
В .config/openbox/autostart
Если запустить в терминале
~/.config/polybar/launch.sh
выхлоп какой?
[email protected]
выхлоп какой?
Ничего, позже попробую переписать по вашему пути.
Что интересно когда начинал писать свой конфиг для polybar, то была похожая проблема с телеграммом, не хотел запускаться по клику без >/dev/null &
[module/telegram]
type = custom/text
content = 
content-foreground = ${colors.foreground}
click-left = telegram-desktop >/dev/null &
с погодой такой фокус не прокатывает.
gentux, возможно, что у polybar под openbox свои особенности. Можно попробовать вообще убрать из polybar модуль get-weather, а вместо него добавить в .config/openbox/autostart запуск скрипта
get-weather.sh &
следующего содержания:
#!/usr/bin/bash
# Search for your city at http://www.accuweather.com and replace the URL in the following script with the URL for your city
SLEEP_INTERVAL=60

while :
do
if `ping -c 1 -w 5 8.8.8.8 &> /dev/null`
then
    SLEEP_INTERVAL=600
     wget -q -O ~/.config/.curweath-tmp
"http://www.accuweather.com/ru/ru/surgut/288459/current-weather/288459" && cp ~/.config/.curweath-tmp ~/.config/.curweath-web && ~/.bin/pb-superweather $(cat ~/.config/.pb-weather-mode)
fi
    sleep $SLEEP_INTERVAL
done

И в конец файла .config/polybar/launch.sh
добавить строку
~/.bin/pb-superweather $(cat ~/.config/.pb-weather-mode) &
SirKittyKnight
Тема "bspwm - делимся полезными наработками", а написано про polybar.
ТС, действительно, где о полезных вкусностях (или как там?) для bspwm, которые делают его на голову выше других тайлинговых оконных менеджеров?
А polybar можно прикрутить к любому другому WM, равно как и вывести инфу о погоде любую информацию в любом другом статус-баре. Или не в статус-баре, без которого вполне себе можно обойтись. Чичас скриншотик приложу в соответствующей теме...
[email protected], Все оказалось проще, разрешение на запись в tmp.
Aivar
ТС, действительно, где о полезных вкусностях (или как там?) для bspwm
Виноват, сэр, сворачивание окон в панель сегодня будет, потом другие вкусности будут... Но сэр... как я могу сделать bspwm на голову выше других, ведь он и так на голову выше!
))) Ну да, погода - мелочь, да просто gentux ее попросил, ну я ее первой и выложил.
Aivar
Чичас скриншотик приложу в соответствующей теме…
Боковой монитор на первом скриншоте выглядит очень интересно :) А как это делается?
Ну а насчет того что это может заменить панель - сложно согласиться, у нее же кроме вывода информации есть и функции управления - можно кликать и что-то будет делаться.
"Сворачивание" окон на панель

В кавычках потому что окна в тайлинге на самом деле свернуть нельзя, их можно спрятать. Иногда это бывает полезно. Эта тема уже поднималась в обсуждениях xmonad - тыц тыц тыц.
Я нашел способ реализации этого функционала в manjaro-bspwm и немного переделал, адаптировав под rofi (у них он работает с dmenu) и под polybar. Теоретически это должно работать с любыми WM, но я проверил только на bspwm.
Требуются пакеты:
xdo
xdotool
wmutils (есть в AUR)
rofi
В автозагрузке, (напр., в ~/.xinitrc) создаем канал
mkfifo /tmp/.countwhid-pipe &
Через него мы будем выводить на панель индикацию свернутых окон.
Пишем скрипт
whid2
#!/bin/bash
file="/tmp/.minimized"
touch $file
# By https://github.com/tatou-tatou
width=$(wattr w $(lsw -r))
height=$(wattr h $(lsw -r))
bar_width=$(( $width / 2 ))
left_shift=$(( ($width - $bar_width) / 2 ))
top_shift=$(( $height / 3 ))

case $1 in
hide)
    lines=$(wc -l < $file)

    if [[ $lines -ge 10 ]]; then ## Fight against bad practices
        notify-send "Ten windows are already hidden" "You should consider closing some before hiding even more." -i warning
    else
        focusedDesktop=$(xdotool get_desktop)
        focusedID=$(xdo id)
        focusedName=$(xdotool getwindowname $focusedID)

        let "clines = $lines+1"
        echo "$focusedID $focusedDesktop $focusedName" >> $file && xdo hide $focusedID
    fi
    ;;
rofi)
    miniList=$(cat $file)

    if [ -z "$miniList" ]
    then
        miniList="  Nothing is hidden!"
    fi

    # Launch dmenu
    # Comment that line if you use vanilla dmenu, and not one patched with eye candy
    lineNumber=$(echo "$miniList" | cut -d " " -f 3- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | rofi -dmenu -i -width 80 -p 'Hidden: ' | cut -d '-' -f -1)

    # If you exited dmenu without selecting anything or if the list was empty
    [ -z "$lineNumber" -o "$miniList" = " Nothing is hidden!" ] && exit

    # Show the selected hidden window
    selectedID=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 1)
    selectedDesktop=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 2)
    xdotool set_desktop $selectedDesktop
    xdo show $selectedID && sed -i "${lineNumber}d" $file
    ;;
last)
    lines=$(wc -l < $file)
    selectedID=$(sed -n "$lines p" $file | cut -d ' ' -f 1)
    selectedDesktop=$(sed -n "$lines p" $file | cut -d ' ' -f 2)
    xdotool set_desktop $selectedDesktop
    xdo show $selectedID && sed -i "${lines}d" $file
    ;;
esac

lines=$(wc -l < $file)

    if [[ $lines -ge 1 ]]; then
      echo "_$lines" > /tmp/.countwhid-pipe
    else
      echo "" > /tmp/.countwhid-pipe
    fi
exit 0

В файле ~/.config/sxhkd/sxhkdrc добавляем горячие клавиши:
...
### Map or unmap windows (functional equivalent of "minimize")
super + c
    whid2 rofi

super + shift + c
    whid2 hide

super + ctrl + c
    whid2 last
...
super + shift + c - сворачивает активное окно
super + ctrl + c - поднимает последнее свернутое на том же воркспейсе где оно было сернуто и переводит на него фокус
super + c - выводит список свернутых окон в rofi

В конфиг polybar добавляем модуль:
...
modules-left = bspwm showhid
...
;=====================================================
; Module showhid
;=====================================================
[module/showhid]
type = custom/script
exec = tail -F /tmp/.countwhid-pipe
exec-if = [ -p /tmp/.countwhid-pipe ]
tail = true
label = %output%
label-padding    = 2
label-background = #55

click-left = whid2 rofi
click-right = whid2 last
...
Модуль кликабельный, думаю, все понятно из кода.
У меня свернутые окна отображаются символом "H" с цифрой, но это уже кому как нравится, можно ставить любые шрифты и ими выводить что угодно.
 
Зарегистрироваться или войдите чтобы оставить сообщение.