Vytvorte si desktop podľa svojich predstáv V diel, kompozitor

18.09.2014 21:36 | Články | bedňa

Ď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 až 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 s 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 windows.
# 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, defaults to 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.
    • RE: Vytvorte si desktop podľa svojich predstáv V diel, kompozitor 02.10.2014 | 22:27
      Avatar Andrej Lacho Debian, CentOS obcas Kubuntu  Administrátor

      A uz sa ide skusat :)

      Linux without fckin systemd
      • RE: Vytvorte si desktop podľa svojich predstáv V diel, kompozitor 02.10.2014 | 23:02
        Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

        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.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
        • RE: Vytvorte si desktop podľa svojich predstáv V diel, kompozitor 05.10.2014 | 22:18
          Avatar Andrej Lacho Debian, CentOS obcas Kubuntu  Administrátor

          Toto som potreboval, rychle a super. thx

          Linux without fckin systemd