Zář 21

Efekty pomocou Compton

Compton je kompozitor pre správcu okien. Ten slúži na vykresľovanie rôznych doplňujúcich efektov pre okná ako je napríklad priehľadnosť okna v pozadí, priehľadnosť záhlavia, vytvorenie tieňu, rozmazania. Compton je forkom xcompmgr-dana, ktorý je zase postavený na xcompmgr.

 

 

 

Manuálová stránka a pomoc:

man compton
compton -h
compton --help

Príručka s opisom ako najlepšie compton nakonfigurovať a príručka pre synchronizáciu.
Ukážkový konfiguračný súbor.

 

Inštalácia a konfigurácia

V prvom rade si aplikáciu potrebujeme nainštalovať. Máme na výber z dvoch možností. Jednou je stabilná verzia z oficiálnych repozitárov alebo git-verzia z AUR.

sudo pacman -S compton
 yay -S compton-git

Existuje i grafická pomôcka pre úpravu comtonu, ktorej používanie ale v tomto článku nebude spomenuté.:

yay -S compton-conf
yay -S compton-conf-git

 

compton_conf

 

Druhým možným krokom, ktorý potrebujeme vykonať, je pridanie comptonu do súboru pre automatické spustenie programov. Zvolíme si postup podľa prostredia, ktoré používame. Uvediem dva príklady. Jeden pre i3 a druhý pre OpenBox. Pomocou nejakého textového editoru si ho otvoríme:

gedit ~/.config/i3/config

gedit ~/.config/openbox/autostart

 

Opäť máme dve možnosti ako compton nadeklarovať. Prvou je nalinkovanie konfiguračného súboru, druhou priame nadefinovanie konfigurácie. Nesmieme zabudnúť, že každý riadok v súbore sa musí končiť &.

Cesta ku konfiguračnému súboru:

exec --no-startup-id compton --config ~/.config/compton-i3wm.conf

compton --config /cesta/ku/compton.conf -b &
(compton --config ~/.config/compton.conf -b &)

Priame nadefinovanie konfigurácie:

compton -cCGfz -o 0.20 -r 7 -t 0 -l 0 -O 200 -I 200 -D2 -m 0.85 -i 0.85 -b &

Zopár dostupných možností pre konfiguráciu:

-r určí polomer rozostrenia pre tieň
-o určí priehľadnosť pre tieň
-m nastaví priehľadnosť menu
-c povolí vykresľovanie tieňa oknám
-C zakáže vykresľovanie tieňa panelu a doku
-z nastaví tzv. čistý tieň
-i nastaví priehľadnosť okien v pozadí
-e nastaví priehľadnosť záhlavia okien
-G zakáže vykresľovanie tieňa na DND oknách
-b proces sa spustí ako daemon

 

Nastavenie comptonu pomocou konfiguračného súboru

Všetky dostupné parametre nie sú vypísané. Podrobná príručka aj s opisom sa nachádza tu a tu.

 

Základné nastavenia:

Asi najdôležitejšou vecou, na ktorú sa potrebujeme zamerať je výber akcelerácie. Dostupné sú dve možnosti: GLX (OpenGL) a X Render. Druhý je univerzálnejší a funguje na akomkoľvek prostredí. No prvou voľbou by mal byť radej GLX, nakoľko poskytuje lepšie možnosti, zvyčajne tak nezaťažuje CPU. Ak nastanú nejaké problémy s GLX (napríklad s výkonom či nekorekntým zobrazovaním), riadok backend = “glx”; stačí zakomentovať (pridať mriežku #). Tým sa pre konfiguráciu stane neviditeľný. Vtedy sa automaticky zvolí X Render. Tieto parametre sú závislé od hardvéru počítača.

backend = “glx”;
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
vsync = “opengl-swc”;

backend = “glx”; určí akceleráciu, ktorá sa má použiť. Zakomentovaním riadku pomocou mriežky (#) sa použije X Render.
paint-on-overlay = true; namiesto root okna vykresľuje kompozitné. Má dve hodnoty. true voľbu povoľuje, false zakazuje. Nastavenie sa dá ignorovať pomocou mriežky. Môže mať pozitívny i negatívny efekt na výkon.
glx-no-stencil = true; tento parameter má dve hodnoty. true voľbu povoľuje, false zakazuje. Nastavenie sa dá ignorovať pomocou mriežky. Obvykle má pozitívny efekt na výkon.
glx-no-rebind-pixmap = true; tento parameter má dve hodnoty. true voľbu povoľuje, false zakazuje. Nastavenie sa dá ignorovať pomocou mriežky. Väčšinou funguje. A spravidla zlepšuje výkon pri rýchlych zmenách obsahu okien.
vsync = “opengl-swc”; je určený pre synchronizáciu. Má niekoľko parametrov: none, drm, opengl, opengl-oml, opengl-swc a opengl-mswc. Ak sa vyskytnú problémy s výkonom, prvou voľbou ako sa ich pokúsiť vyriešiť, je zakázanie synchronizácie. Pri použití Radeon sa môže stať, že sa zníži obnovovacia frekvencia monitoru. Pri použití viacerých monitorov s rôznymi obnovovacím frekvenciami sa taktiež môžu vyskytnúť problémy. Ak sa tearing vyskytuje iba počas prehrávania, najprv je dobré zmeniť výstup pre video. Najmä tie s akceleráciou sú dobrá voľba (vaapi, vdpau, xv, opengl).

 

Nastavenia pre tieň:

## Shadow (Tieň)
shadow = true;
no-dock-shadow = true;
no-dnd-shadow = true;
clear-shadow = true;
shadow-radius = 7;
shadow-offset-x = -9;
shadow-offset-y = -9;
shadow-opacity = 0.20;
shadow-ignore-shaped = true;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;

shadow = true; povolí alebo zakáže tieň okna. Má dva parametre: true a false.
no-dock-shadow = true; povolí alebo zakáže vykresľovanie tieňa na dokoch a paneloch. Povoľuje sa nevykresľovanie. Má dva parametre: true a false.
no-dnd-shadow = true; povolí alebo zakáže vykresľovanie tieňa na DND oknách. Povoľuje sa nevykresľovanie. Má dva parametre: true a false.
clear-shadow = true; povolí alebo zakáže nulovú časť masky tieňa za oknom. Má dva parametre: true a false. Ide o experimentálnu funkciu.
shadow-radius = 7; nastaví polomer rozostrenia tieňa.
shadow-offset-x = -9; nastaví posunutie tieňa od ľavého okraja okna.
shadow-offset-y = -9; nastaví posunutie tieňa od horného okraja okna.
shadow-opacity = 0.20; nastaví priesvitnosť tieňa.
shadow-ignore-shaped = true; povolí alebo zakáže vykresľovanie tieňa na všetkých tvarovaných oknách. Má dva parametre: true a false.
shadow-red = 0.0; nastaví červenú zložku tieňa. Rozmedzie hodnôt sa pohybuje medzi 0 až 1. Predvolená hodnota je 0.
shadow-green = 0.0; nastaví zelenú zložku tieňa. Rozmedzie hodnôt sa pohybuje medzi 0 až 1. Predvolená hodnota je 0.
shadow-blue = 0.0; nastaví modrú zložku tieňa. Rozmedzie hodnôt sa pohybuje medzi 0 až 1. Predvolená hodnota je 0.

 

Nastavenia pre postupné vyblednutie:

## Fading (Vyblednutie)
fading = true;
fade-delta = 2;
fade-in-step = 5;
fade-out-step = 5;
# no-fading-openclose = true;

fading = true; povolí alebo zakáže vyblednutie okna počas zmeny nepriehľadnosti. Má dva parametre: true a false.
fade-delta = 2; nastaví čas v milisekundách medzi krokmi pri blednutí okna.
fade-in-step = 5; nastaví zmenu nepriehľadnosti medzi krokmi počas blednutia.
fade-out-step = 5; nastaví zmenu nepriehľadnosti medzi krokmi počas tmavnutia.
no-fading-openclose = true; povolí alebo zakáže blednutie okna počas otvárania a zatvárania. Má dva parametre: true a false.

 

Nastavenia pre priehľadnosť:

## Opacity (Nepriehľadnosť/Priehľadnosť)
menu-opacity = 0.85;
# active-opacity = 1;
inactive-opacity = 0.85;
# frame-opacity = 0.8;
inactive-opacity-override = true;

menu-opacity = 0.85; nastaví priehľadnosť menu.
active-opacity = 1; nastaví priehľadnosť pre aktívne okno. Rozmedzie hodnôt sa pohybuje medzi 0 až 1.
inactive-opacity = 0.85; nastaví priehľadnosť pre neaktívne okno. Rozmedzie hodnôt sa pohybuje medzi 0 až 1.
frame-opacity = 0.8; nastaví priehľadnosť pre záhlavie okna a okraje. Rozmedzie hodnôt sa pohybuje medzi 0 až 1.
inactive-opacity-override = true; povolí alebo zakáže neaktívnu nepriehľadnosť nastavenú cez inactive-opacity. Prepíše hodnoty _NET_WM_OPACITY. Má dva parametre: true a false.

 

Ďalšie nastavenia:

## Other (Ďalšie nastavenia)
# inactive-dim = 0.5;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;

inactive-dim = 0.5; nastaví stlmenie neaktívnych okien. Rozmedzie hodnôt sa pohybuje medzi 0 až 1. Predvolená hodnota je 0.
mark-wmwin-focused = true; povolí alebo zakáže detekciu okien WM a označí ich ako aktívne. Má dva parametre: true a false.
mark-ovredir-focused = true; povolí alebo zakáže všetky okná, ktoré nie sú WM a označí ich ako aktívne. Má dva parametre: true a false.
detect-rounded-corners = true; povolí alebo zakáže detekciu zaoblených hrán a ak je povolené shadow-ignore-shaped, tak s nimi zaobchádza s nimi ako pravouhlými. Má dva parametre: true a false.
detect-client-opacity = true; povolí alebo zakáže detekciu priehľadnosti okien. Vďaka tomuto parametru sa ignoruje nastavenie priehľadnosti určitých aplikácií.
refresh-rate = 0; nastaví špecifickú obnovovaciu frekvenciu monitora. 0 berie automatickú hodnotu. Parameter súvisí s sw-opti.
sw-opti = false; povolí alebo zakáže obmedzenie obnovovania frekvencie. Má dva paramtre: true a false. Nemal by sa používať spolu drm, opengl a opengl-oml. Hodnoty nižšie ako je tá automatická sú zbytočné. Je určený pre maximalizáciu výkonu.
unredir-if-possible = true; povolí alebo zakáže presmerovanie všetkých okien ak je detekovaná nepriehľadnosť pri celej obrazovke. Má dva parametre: true a false. Je určený pre maximalizáciu výkonu.
dbe = false; povolí alebo zakáže DBE kresliaci mód v snahe o vyhnutie sa tearingu. Vhodný pri použití Vsync. Zdá sa, že bez úspechu. Má dva parametre: true a false.
detect-transient = true; povolí alebo zakáže zameranie skupinových okien v ten istý čas. Má dva parametre: true a false.
detect-client-leader = true; povolí alebo zakáže zameranie skupinových okien v ten istý čas. Má dva parametre: true a false. Detect-transient má vyššiu prioritu.
use-ewmh-active-win = true; povolí alebo zakáže použitie EWMH _NET_WM_ACTIVE_WINDOW na detekciu aktívnych okien. Má dva parametre: true a false.
blur-background = false; povolí alebo zakáže rozostrenie pozadia priehľadných okien. Má dva parametre: true a false. Odporúčaný je GLX, pretože s X Render poskytuje zlý výkon.
blur-background-frame = false; povolí alebo zakáže rozostrenie pozadia nepriehľadných okien s priehľadnými okrajmi. Má dva parametre: true a false.
blur-background-fixed = false; povolí alebo zakáže polomer rozostrenia založený na základe nepriehľadnosti okien. Má dva parametre: true a false.

 

Nastavenia typov okien:

## Window type settings (Nastavenia typov okien)
wintypes:
 {
  notify = { fade = true; shadow = false; opacity = 0.75; };
  tooltip = { fade = true; shadow = false; opacity = 0.75; };
 };

notify = { fade = true; shadow = false; opacity = 0.75; };
Nastaví vyblednutie (fade), tieň (shadow) a priehľadnosť (opacity) upozornení.
tooltip = { fade = true; shadow = false; opacity = 0.75; };
Nastaví vyblednutie (fade), tieň (shadow) a priehľadnosť (opacity) vyskakujúcich popisov.

 

Programy, na ktoré sa nevzťahujú efekty:

## Excluded apps (Programy, na ktoré sa nevzťahujú efekty)
# shadow-exclude = [ “g:si:Conky”, “class_g = ‘conky'” ];
shadow-exclude = [ “n:e:Notification” ];
# shadow-exclude = [ “n:w:*VirtualBox*” ];
# blur-background-exclude = [ “window_type = ‘dock'”, “window_type = ‘desktop'” ];

shadow-exclude = [ “g:si:Conky”, “class_g = ‘conky’” ]; vynechá Conky z nastavení tieňa. Jednoducho povedané, Conky nebude vykresľovať tieň. Toto sú len dve možnosti zápisu. Nie je potrebné deklarovať oba.
shadow-exclude = [ “n:e:Notification” ]; vynechá upozornenia z nastavení tieňa.
shadow-exclude = [ “n:w:*VirtualBox*” ]; vynechá VirtualBox z nastavení tieňa.
blur-background-exclude = [ “window_type = ‘dock’”, “window_type = ‘desktop’” ]; na dok a plochu nebude aplikovaný efekt rozostrenia. Môže sa použiť i tento zápis:

blur-background-exclude = [
  “window_type = ‘dock'”,
  “window_type = ‘desktop'”
 ];

 

Napsat komentář

Your email address will not be published.

%d blogerům se to líbí: