Manjaro XFCE Edition
   3463

Эффект размытия Kwin для окон XFWM

Manjaro XFCE Edition: Эффект размытия Kwin для окон XFWM
Kwin предоставляет эффект размытия для полупрозрачных окон. Это хорошо работает в KDE, так как там прозрачные окна запрашивают размытие, но не работает с окнами XFWM так как они этого не делают. Получается, что размытие есть только на декорациях окон.
Получить размытие можно командой
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0

или, для того, чтобы размытие получило «верхнее» окно
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')

Как бы привязать эту команду ко всем вновь запускаемым программам по умолчанию? Мне приходит в голову использовать сценарии Kwin, но я не знаю как. Может есть какой-нибудь простой способ?
— UPD:
Со сценариями я не разобрался, но написал небольшой скрипт:
xprop -spy -root -notype _NET_ACTIVE_WINDOW | while read 
do
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}') 
done

5 комментариев

avatar
Автор, объясни смысл первой команды:

xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0


Как её использовать, если мне надо заблюрить фон Konsole, например?
0
avatar
это просто команда, которая заменяет параметр окна _KDE_NET_WM_BLUR_BEHIND_REGION 0 на _KDE_NET_WM_BLUR_BEHIND_REGION 32c, т.е. включает блюр. Чтобы увидеть, окно должно быть прозрачным.
при вводе команды появится курсор в виде крестика, которым нужно указать на это окно.
0
avatar
Может кто подскажет, как составить bash скрипт.
значит, у меня есть вывод команды
xprop -spy -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}'

с id окон, который постоянно дополняется при выборе других окон. Получается как-то так:
[evgeniy@Terminator ~]$ xprop -spy -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}'
0x3e00003
0xc00003
0xc00003
0x3e00003
0x3e00003
0xc00003
0xc00003


как мне передавать этот вывод в переменную другой команды, чтобы эта продолжала выполняться? Т.е. чтобы скрипт работал для каждого нового окна?
Последний раз редактировалось
0
avatar
пока не придумал ничего более работающего, чем этот ужас:
xprop -spy -root -notype _NET_ACTIVE_WINDOW | while read 
do
xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}') 
done


xprop сыпет своим выводом по каждому окну, цикл на каждую строку выполняет команду замены атрибута размытия активного окна. Пытался сократить вывод xprop -spy -root при помощи grep или awk, но их вывод почему-то не читает команда read и цикл не запускается.
Зато размытие срабатывает на всех открываемых окнах, кроме меню. Настроил небольшую прозрачность на неактивных окнах и для отдельных приложений.
выглядит как-то так
Последний раз редактировалось
0
avatar
Появился скрипт для KWIN — Force blur, работает тоже через xprop.
store.kde.org/p/1294604/
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.