Tutorials/Force Transparency And Blur: Difference between revisions

From KDE Wiki Sandbox
(A short tutorial for how to force blur in plasma 5.)
 
m (Minor fixes)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<translate>
<!--T:1-->
For those who care about blur, here is all the info you can get.
For those who care about blur, here is all the info you can get.


1 you want the terminal to be blury from top to bottom. In this case you will need to find some window decorations that are transparent. Obviously you need to make sure the blur is enabled under desktop effects.I don't even use window decorations so can't really recommend a theme for you (achieved that by going to window decorations > edit breeze > overrides > add a rule with the regular expression .*
== Window decorations only == <!--T:2-->


2. you want all the stuff to be blury. Ok. For that there are 2 ways of doing it. Up to you which one.
<!--T:3-->
You want the terminal to be blurry from top to bottom for example. In this case, you will need to find some window decorations that are transparent. Obviously, you need to make sure the blur is enabled under desktop effects.I don't even use window decorations so can't really recommend a theme for you (achieved that by going to <menuchoice>Window Decorations</menuchoice> &rarr; <menuchoice>Configure Breeze...</menuchoice> &rarr; <menuchoice>Windows-Specific Overrides</menuchoice> &rarr; add a rule with the regular expression <code>.*</code>).


2.a install kvantum (you can find it on github). Change to the kvantum widget style in the application style > widget style. Make sure you choose what theme you want under the separate application kvantum engine after you installed. Also you can modify settings there as well. To get blur install some kvantum theme with transparency like materia blur or kvglass and choose that as your current theme. More so, to edit the themes you can for example you can edit the materia colors with something like this sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.kvconfig and sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.svg which will replace the normal color with the breeze blue. You can do this by also opening a text editor and replace the color as you would normally do.
== Window body transparency == <!--T:4-->


2.b keep the breeze widget style and theme you are using but instead force transparency on everything.
=== Kvantum === <!--T:5-->


2.b.1. create a transparency kwin rule > make everything unimportant. Thus it will apply to everything. FORCE the active or inactive opacity to how much you want in the very last tab.
<!--T:6-->
Install Kvantum from [https://github.com/tsujan/Kvantum/tree/master/Kvantum Kvantum github]. Change to the Kvantum widget style in the <menuchoice>System Settings</menuchoice> &rarr; <menuchoice>Application Style</menuchoice> &rarr; <menuchoice>Widget Style</menuchoice>. Then you can choose a Kvantum theme in the separate application called '''Manager Kvantum'''.


2.b.2. create another rule on top of the first that will be an exclusion rule. Separate window titles with |. So for ex conky|pqiv|plasmashell|something. For this one force the opacity to 100%. In case you don't know what window class something has (tho it is usually in the titlebar) you can press ALT+F3 > More actions > Special Window Settings and get the window class or when you create a rule there is a button that will let you click on something to get it's properties (detect window properties).
<!--T:7-->
To get blur install some Kvantum theme with transparency like [https://github.com/PapirusDevelopmentTeam/materia-kde Materia Blur] or [https://store.kde.org/p/1201321 Kvglass] and choose that as your current theme. More so, to edit the themes you can, for example, edit the materia colors with something like this:</translate>
<syntaxhighlight lang="bash" line>
sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.kvconfig
sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.svg
</syntaxhighlight>


2.b.3. install the kwin script force blur and give it all the windows you want to have blur. Make sure you also read the instructions for it because you need to run 2 commands to be able to actually edit its options. So pretty much everything under .local/share/applications and /usr/share/applications can be added ernatively you can have a script like this and have it run at startup. The force blur thing does the same thing.
<translate>
<!--T:8-->
which will replace the normal color with the Breeze blue. You can do this by also opening a text editor and replace the color as you would normally do.


   if [ $(ps --no-header -p $PPID -o comm) =~ '^yakuake|dolphin$' ]; then
===Keep breeze style=== <!--T:9-->
 
<!--T:10-->
There is no need to install Kvantum.
 
<!--T:11-->
Create a transparency Kwin rule by <keycap>Alt+F3</keycap> &rarr; <menuchoice>More actions</menuchoice> &rarr; <menuchoice>Special Window Settings</menuchoice>, then in the dropdown menu for Window Class and Role choose Unimportant instead. Also select all window types, besides Desktop and Splash Screen. Thus, the will apply to everything. FORCE the active or inactive opacity to how much you want in the very last tab under <menuchoice>Appearances and Fixes</menuchoice>. The end result will look like so and can be imported by saving it as {{Path|.kwinrule}}.
 
 
<!--T:12-->
[[File:KwinForceOpacity.png|500px|center]]
 
<!--T:16-->
{{Input|1=<nowiki>
[Transparent all the things]
Description=Transparent all the things
clientmachine=localhost
clientmachinematch=0
opacityactive=90
opacityactiverule=2
opacityinactive=80
opacityinactiverule=2
types=445
wmclass=audacious
wmclasscomplete=false
wmclassmatch=0
</nowiki>}}
 
<!--T:13-->
Create  another rule on top of the first that will be an exclusion rule.  Separate window titles with |. So for ex   conky|pqiv|plasmashell|something should be placed in the Window Class while having Regexp instead of Unimportant. For this one force the opacity to 100%. In case you don't know what window class something has (tho it is usually in the titlebar) you can press <keycap>ALT+F3</keycap> &rarr; <menuchoice>More actions</menuchoice> &rarr; <menuchoice>Special Window Settings</menuchoice> and get the window class or when you create a rule there is a button that will let you click on something to get its properties (detect window properties).The end result will look like so, and can be imported by saving it as {{Path|.kwinrule}}.
 
<!--T:17-->
{{Input|1=<nowiki>
[Transparency exceptions]
Description=Transparency exceptions
opacityactive=100
opacityactiverule=2
opacityinactive=100
opacityinactiverule=2
wmclass=conky|pqiv|plasmashell|rpcs3
wmclasscomplete=false
wmclassmatch=3
</nowiki>}}
 
<!--T:14-->
Install the Kwin script [https://store.kde.org/p/1294604/ force blur] and give it all the windows you want to have blur. Before that the command you need to run are the following. After this a setting icon will appear for Force Blur under <menuchoice>Kwin Scripts</menuchoice>.</translate>
<syntaxhighlight lang="bash" line>
mkdir -p ~/.local/share/kservices5/
cp ~/.local/share/kwin/scripts/forceblur/metadata.desktop ~/.local/share/kservices5/forceblur.desktop
</syntaxhighlight><translate>
 
<!--T:18-->
So pretty much everything under {{Path|.local/share/applications}} and {{Path|/usr/share/applications}} can be added alternatively you can have a script like this and have it runs at startup. The force blur thing does the same thing.</translate>
 
<syntaxhighlight lang="bash" line>
if [[ $(ps --no-header -p $PPID -o comm) =~ '^yakuake|dolphin$' ]]; then
     for wid in $(xdotool search --pid $PPID); do
     for wid in $(xdotool search --pid $PPID); do
       xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $wid;
       xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $wid;
  done fi
    done
fi
</syntaxhighlight>
 
<translate>
<!--T:15-->
[[Category:Tutorials]] [[Category:Desktop]]
</translate>

Latest revision as of 17:37, 12 May 2019

Other languages:

For those who care about blur, here is all the info you can get.

Window decorations only

You want the terminal to be blurry from top to bottom for example. In this case, you will need to find some window decorations that are transparent. Obviously, you need to make sure the blur is enabled under desktop effects.I don't even use window decorations so can't really recommend a theme for you (achieved that by going to Window DecorationsConfigure Breeze...Windows-Specific Overrides → add a rule with the regular expression .*).

Window body transparency

Kvantum

Install Kvantum from Kvantum github. Change to the Kvantum widget style in the System SettingsApplication StyleWidget Style. Then you can choose a Kvantum theme in the separate application called Manager Kvantum.

To get blur install some Kvantum theme with transparency like Materia Blur or Kvglass and choose that as your current theme. More so, to edit the themes you can, for example, edit the materia colors with something like this:

sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.kvconfig
sudo sed -i 's/#4285f4/#3daee9/g' MateriaBlur.svg

which will replace the normal color with the Breeze blue. You can do this by also opening a text editor and replace the color as you would normally do.

Keep breeze style

There is no need to install Kvantum.

Create a transparency Kwin rule by Alt+F3More actionsSpecial Window Settings, then in the dropdown menu for Window Class and Role choose Unimportant instead. Also select all window types, besides Desktop and Splash Screen. Thus, the will apply to everything. FORCE the active or inactive opacity to how much you want in the very last tab under Appearances and Fixes. The end result will look like so and can be imported by saving it as .kwinrule.


[Transparent all the things]
Description=Transparent all the things
clientmachine=localhost
clientmachinematch=0
opacityactive=90
opacityactiverule=2
opacityinactive=80
opacityinactiverule=2
types=445
wmclass=audacious
wmclasscomplete=false
wmclassmatch=0

Create another rule on top of the first that will be an exclusion rule. Separate window titles with |. So for ex conky|pqiv|plasmashell|something should be placed in the Window Class while having Regexp instead of Unimportant. For this one force the opacity to 100%. In case you don't know what window class something has (tho it is usually in the titlebar) you can press ALT+F3More actionsSpecial Window Settings and get the window class or when you create a rule there is a button that will let you click on something to get its properties (detect window properties).The end result will look like so, and can be imported by saving it as .kwinrule.

[Transparency exceptions]
Description=Transparency exceptions
opacityactive=100
opacityactiverule=2
opacityinactive=100
opacityinactiverule=2
wmclass=conky|pqiv|plasmashell|rpcs3
wmclasscomplete=false
wmclassmatch=3

Install the Kwin script force blur and give it all the windows you want to have blur. Before that the command you need to run are the following. After this a setting icon will appear for Force Blur under Kwin Scripts.

mkdir -p ~/.local/share/kservices5/
cp ~/.local/share/kwin/scripts/forceblur/metadata.desktop ~/.local/share/kservices5/forceblur.desktop

So pretty much everything under .local/share/applications and /usr/share/applications can be added alternatively you can have a script like this and have it runs at startup. The force blur thing does the same thing.

if [[ $(ps --no-header -p $PPID -o comm) =~ '^yakuake|dolphin$' ]]; then
    for wid in $(xdotool search --pid $PPID); do
       xprop -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 -id $wid;
    done
fi