Ďalším dielom do skladačky nášho desktopu bude kompozitor. Kompozitor vykresľuje desktop mimo obrazovky, poskladá ho z rôznych efektov, pridá priehľadnosť, rozmazanie, tiene okolo okna, alebo stmavenie a vykreslí výsledok na obrazovku. To sú základné vlastnosti, pokročilejšie kompozitori pridávajú 2D, 3D grafické animované efekty a veľa ďalšieho. Ja som si vybral Compton pre jeho jednoduchosť, nenáročnosť a možnosti akcelerácie pomocou GLX alias OpenGL pre X Window.
Konfiguračný súbor sa nachádza v ~/.config/compton.conf
GLX backend
Začneme nastavením akcelerácie Comptonu pomocou GLX, upozorňujem že podľa kombinácie ovládača a grafickej karty vám môžu vyhovovať iné parametre. Pokiaľ by ste mali problém s výkonom pri vykresľovaní cez GLX, tak túto sekciu zakomentujte a tým pádom sa použije XRenderer.
Vôbec sa nečudujte že niektorým špeciálnym možnostiam vôbec nerozumiete, bude to tým, že som im neporozumel ani ja. Ide hlavne o OpenGL a WM špecifické veci, tu odporúčam si detaily naštudovať, prípadne sa k ním môžeme dopátrať v komentároch ku článku ak bude záujem.
# GLX # GLX backend nastavenia. Pozri si manuálové stránky pre viac info.
backend = "glx" # GLX backend je váčšinou rýchlejší než XRenderer. glx-no-stencil = true; # Vyhnite sa použitiu stencil buffer, ak ho nemáte, mne osobne s true behá lepšie. glx-copy-from-front = false; # Použiteľné s --glx-swap-method. glx-swap-method = 1; # Nemusí fungovať. glx-no-rebind-pixmap = true; # Pravdepodobne by mohlo zlepšiť výkon pri rýchlych zmenách v obsahu okna. Odporúčam zapnúť ak to funguje. paint-on-overlay = true; # Vykresľuje na X Kompozitné okno namiesto root okna.
Popis som dával ako komentáre k nastaveniam, má to tú výhodu že si môžete kopírovať nastavenia aj s komentármi a pri tom sa článok zbytočne nenatiahne na raz takú dĺžku.
Tiene okolo okna
Tiene okolo okna ktoré poznáte z klasického nastavenia v KDE. Osobne to nepoužívam.
# Shadow # Tiene okna. shadow = false; # Zapnutie vypnutie tieňov okna. # no-dock-shadow = true; # nevykresľovať tiene na dokoch a paneloch. # no-dnd-shadow = false; # nevykresľovať tiene na DND okná. # clear-shadow = true; # Nulová časť masky tieňa za oknom (experimentálne). # shadow-radius = 7; # Rozmazaný rádius pre tieň. (default 12) # shadow-offset-x = -7; # Posunutie tieňa od ľavého okraja okna. (default -15) # shadow-offset-y = -7; # Posunutie tieňa od horného okraja okna. (default -15) # shadow-opacity = 0.7; # Priesvitnosť tieňa. (default .75) # shadow-red = 0.0; # Červená zložka tieňa. (0.0 - 1.0, defaults to 0) # shadow-green = 0.0; # Zelená zložka tieňa. (0.0 - 1.0, defaults to 0) # shadow-blue = 1; # Modrá zložka tieňa. (0.0 - 1.0, defaults to 0) # shadow-exclude = [ "n:e:Notification" ]; # Vynechanie tieňovania pre ... # shadow-exclude = "n:e:Notification"; # shadow-ignore-shaped = true;
(ne)Priehľadnosť
Nastavenie (ne)priehľadnosti sa používa veľmi často.
# Opacity # Nepriehľadnosť (heh angláni) menu-opacity = 0.9; # Nepriehľadnosť pre menu. (default 1.0) inactive-opacity = 0.5; # Nepriehľadnosť pre neaktívne okno. (0.1 - 1.0) active-opacity = 1; # Nepriehľadnosť pre aktívne okno. (0.0 - 1.0) frame-opacity = 1; # Nepriehľadnosť pre názov okna a okraje. (0.1 - 1.0) inactive-opacity-override = false; # Neaktívna nepriehľadnosť nastavená cez 'inactive-opacity' prepíše _NET_WM_OPACITY.
Určite sa hodí mať pre niektoré aplikácie určené priehľadnosti. "60:class_g = 'Gnome-terminal'" nastaví pre Gnome terminál nepriehľadnosť na 60%. V príklade je terminál na 60% nepriehľadný a ostatné tam vymenované na 100% nepriehľadnosti.
# Opacity rules opacity-rule = [ "60:class_g = 'Gnome-terminal'", "100:class_g = 'Firefox'", "100:class_g = 'TaskBar'", "100:class_g = 'Key-mon'"]; # Nastavý priehľadnosť pre aplikácie
Animácia objavovania a skrývania sa okien
Zoslabenie, alebo tiež by sa dalo povedať blednutie okien sa nachádza v ďalších nastaveniach, rovnako nepoužívam, ale pre ľudí ktorí majú radi animované efekty prepínania okien sa to môže hodiť.
# Fading # Zoslabenie/vyblednutie fading = false; # Zoslab okno počas zmeny nepriehľadnosti. # fade-delta = 30; # Čas medzi krokmi pri blednutí okna v milisekundách. (default 10). # fade-in-step = 0.03; # Zmena nepriehľadnosti medzi krokmi počas blednutia. (default 0.028). # fade-out-step = 0.03; # Zmena nepriehľadnosti medzi krokmi počas tmavnutia. (default 0.03). # no-fading-openclose = true; # Blednutie okien počas otvárania/zatvárania. inactive-dim = 0; # Zošerí neaktívne okná. (0.0 - 1.0, defaultne 0).
V nastaveniach typov okien si môžeme extra nastaviť ako sa budú správať.
Typ okna môže byť
- desktop = plocha
- dock = panel/dok
- toolbar = lišta s ikonami
- menu = menu
- utility = utilita :) (tu netuším o čo ide, proste asi keď nejaká aplikácia vráti informáciu že je utilita)
- splash = okono ktoré sa zobrazí pri štartovaní aplikácie
- dialog = dialógové okno
- normal = normálne okno
- dropdown_menu = rolovacie menu
- popup_menu = spravidla menu ktoré sa zobrazí pri kliknutím pravého tlačítka myši
- tooltip = bublinka s nápovedou
- notify = bublinka s upozornením
- combo = roletové menu
- dnd = drag-and-drop okno.
Nižšie uvedené nastavenia urobia plynulé zobrazovanie sa a strácanie bubliniek s upozorneniami, nebudú mať tieň a nebudú priehľadné. Pre pozadie zakáže vyblednutie, tieň a priehľadnosť.
# Window type settings # Nastavenie typov okien (fade -> vyblednutie, shadow -> tieň, opacity -> nepriehľadnosť) wintypes: { notify = { fade = true; shadow = false; opacity = 1; }; # Nastavý vlastnosti pre bublinku s upozorneniami. desktop = { fade = false; shadow = false; opacity = 1; }; # Nastavý vlastnosti pre plochu. };
Nastavenie VSync
Problémom môže byť trhanie okien pri presúvaní, ja mám zapnutý VSync podľa OpenGL a funguje k úplnej spokojnosti.
vsync = "opengl"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
Efekt rozmazávania desktopu a panela.
Pokiaľ nechceme aby sa na dock a desktop neaplikoval efekt rozmazávania tak ho vyjmeme nižšie uvedeným príkazom.
blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ]; # Vyjme z priehľadnosti dock a desktop.
Na záver pár WM špecifických nastavení.
# Other # Ďalšie nastavenia mark-wmwin-focused = false; # Pokúsi sa detekovať okná WM a označí ich ako aktívne. mark-ovredir-focused = true; # Označí všetky non-WM, ale override-redirect okná ako aktívne (napríklad menu). detect-rounded-corners = false; # Detekuje zaoblené rohy a zaobchádza s nimi ako pravouhlými pokiaľ --shadow-ignore-shaped je zapnuté. refresh-rate = 0; # Pre --sw-opti: Špecifikuje obnovovaciu frekvenciu obrazovky. 0 pre automatickú. unredir-if-possible = true; # Nepresmeruje všetky okná ak full-screen nepriehľadnosť okna je detekovaná, pre maximálny výkon. dbe = false; # Zapne DBE kresliaci mód, málo kedy potrebné. use-ewmh-active-win = true; # Použi EWMH _NET_WM_ACTIVE_WINDOW pre detekciu ktoré okno je aktívne # namiesto zamerania/stratenia zamerania. # Obvykle spoľahlivejšie, ale závisí na EWMH kompatibilnom WM.
A uz sa ide skusat :)
Ja to testujem tak, že nakopnem Compton cez terminál a pozriem si efekty. Potom stlačím Ctrl+C čím ho preruším, zmením nastavenia a zas spustím.
Toto som potreboval, rychle a super. thx
Pošle někdo efektní nastavení ?