PekWM (2) - prispôsobivý WM

07.01.2005 08:14 | Články | Marián Ščerbák
Už v prvej časti článku o PeKWM sme si spomenuli, že tento WM ponúka široké možnosti nastavenia. Momentálne však na tento účel nie je vybavený žiadnym grafickým nástrojom. Preto ho budeme musieť upravovať ručne, editovaním konfiguračných súborov.

Všetky boli automaticky skopírované pri prvom spustení PeKWM a nájdeme ich v adresári ~/.pekwm. Nezabudnime pri tom používať editory čistého textu (určite nie MSWord ;-)

Syntax

Syntax zápisu je rovnaká pre všetky konfiguračné súbory.

Vlastnosť = "hodnota"

Okolo znaku "=" musia byť medzery. Ak nie je uvedené inak, "x" sú hodnoty v pixeloch. Jednotlivé časti a sekcie sú oddelené zloženými zátvorkami, viac príkazov za sebou oddeľujeme bodkočiarkou (stredníkom) a medzerou.

Config

Je základný konfiguračný súbor. Jednu z možných variácií (pekný príklad) nájdete aj na stránkach pekwm, v prípadnom záchvate zúfalstva môžete použiť môj :-) Pomoc pri jeho úprave nájdeme v dokumentácii k programu. Skladá sa z niekoľkých častí, každá z nich je ohraničená zloženými zátvorkami.

Files

V tomto súbore sú zadefinované cesty k dôležitým súborom (ostatné konfiguračné súbory, témy). Syntax je:

INCLUDE = "~/.pekwm/súbor"

MoveResize

Tu sú vlastnosti týkajúce sa presunu a zmeny veľkosti okien. Skladá sa z:

EdgeSnap = "x" určuje vzdialenosť okna od kraja obrazovky pri ťahaní, keď okno "skočí" na okraj; "x" je číslo (v pixeloch);
FrameSnap = "x" je to isté, ibaže vzhľadom na iné okná;
OpaqueMove = "True" a
OpaqueResize = "False"
určujú priehľadnosť okna pri presune/ zmene veľkosti. Práve toto nastavenie spriehľadní okno pri zmene veľkosti.
GrabWhenResize = "False" alebo "True" je vykresľovanie okna pri zmene veľkosti;
WWFrame = "x" Ako v Enlightenmente :-) Ak presúvame okno k okraju plochy, po presunutí "x" pixelov okna sa PeKWM prepne na ďalšiu plochu v poradí;
WWMouse = "x" Presunom myši na "x" pixelov od okraja obrazovky sa môžeme prepnúť na ďalšiu plochu; hodnota "0" túto i predošlú vlastnosť vypne;
WWFrameWrap  a
WWMouseWrap = "True" alebo "False" za(vy)pína prepínanie plochy dookola (z poslednej na prvú) buď pri presune myši, alebo okna.

Screen

Zahŕňa vlastnosti plochy.

Workspaces = "x" určuje počet plôch;
DoubleClicktime = "x" čas medzi dvoma kliknutiami myši (v milisekundách);
ShowFrameList = "True" alebo "False", default je "True" a ukazuje zoznam okien.

Focus a Placement

Je trošku širšia časť nastavení, rieši umiestňovanie a fokus okien.

Placement

V tejto časti (umiestňovanie) môžeme použiť 2 voľby:

Model= "tu volíme medzi:"

Smart (umiestni okno na prázdne miesto);
MouseCentered (centruje okno čo najbližšie ku kurzoru myši),
MouseTopLeft (pod kurzor myši).

Smart V tejto podsekcii určujeme spôsob ukladania viacerých okien na plochu, ako hodnotu uvádzame "True" alebo "False". Na výber máme: Row doradu,
TopToBottom zhora dolu a zľava doprava (LeftToRight).

Focus

Tu máme k dispozícii štyri časti "skladačky" na stanovenie výsledku: Enter (vstup myšou do okna), Leave (opustenie okna), Click a New. Z nich si určením hodnôt ("True" resp. "False") stanovíme náš obľúbený spôsob Focusu. V dokumentácii nájdeme tri príklady tradičných "Unixovských focusových modelov". Nastavenie absolútnej klasiky "Click to Focus" vyzerá teda takto:
Focus {
Click = "True"
New = "True"
Enter = "False"
Leave = "False"
}

Harbour

Placement určuje umiestnenie a správanie sa Harbouru na ploche, pričom môže nadobúdať jednu z týchto hodnôt: Right, Left, Top, alebo Bottom.

Orientation = "TopToBottom" (zhora-dole), alebo BottomToTop (zdola-hore); RightToLeft (sprava- doľava) a naopak (LeftToRight)

OnTop = "True" spôsobí zobrazovanie dockapp-u nad všetkými aplikáciami. MaximizeOver = "False"; určuje, či okno aplikácie pri zväčšení "prekryje" harbour, alebo skončí pred jeho "bránami". Ja osobne som po niekoľkých zlých skúsenostiach s dockapps celý Harbour jednoducho odignoroval a teraz používam iba Gkrellm a Pogo.

Menu

Ďalším nenahraditeľným súborom je Menu. Skladá sa z dvoch sekcií: Root menu a Window menu. Kľúčovými slovami pri vytváraní menu sú: Submenu, určuje názov podmenu; Entry, položka menu, jej názov; Actions určuje čo sa má vykonať. Existuje viac druhov Actions, z nich Exec je asi najdôležitejší. Určuje, že príkaz, ktorý nasleduje za ním, bude vykonaný. Reload znovu načíta konfiguračné súbory PeKWM. Je to niečo ako reštart. Dá sa to krásne využiť pri nastavovaní PeKWM. Stačí uložiť konfigurák, spustíme Reload a PeKWM beží v novom nastavení. Toto je vlastnosť ako stvorená pre experimentovanie :-) Other sa dá prirovnať k Win*ému "Reštartovať do MS-DOS". Ibaže, (a to je, vďaka Linusovi; podstatný rozdiel), my môžeme reštartovať takmer do akéhokoľvek programu :-) Defaultne je to Xterm. Restart-om sa spustia, na rozdiel od Reloadu, všetky súbory spúšťané po štarte PeKWM. Jedno podmenu vyzerá napríklad takto:

  
Submenu = "Nástroje" {
Entry = "Gedit" { Actions = "Exec gedit &" }
Entry = "Gentoo" { Actions = "Exec gentoo &" }
Entry = "Konzola" { Actions = "Exec konsole &" }
}

Nesmieme však zabudnúť na zátvorky a na to, že za príkaz na spustenie programu dávame znak & (ampersand). Samozrejmosťou je aj možnosť zadávať príkazom parametre. Napríklad: { Actions = "Exec mozilla -edit &" }

V časti WindowMenu príliš veľké zmeny robiť nemusíme, Actions v ňom sú stanovené, iba ak by sme niečo zmazali alebo premenovali... A trošičku nepríjemná vlastnosť je podpora CE znakov, ktorú si budeme musieť zadefinovať v súbore používanej témy pre PeKWM. Je to súbor /usr/local/share/pekwm/themes/meno_temy/theme a musíme si v ňom upraviť používaný font na kódovanie "iso8859-2". Ak nevieme presný názov písma, ktoré máme v systéme, použijeme v konzole príkaz xlsfonts, kde potom v názve vybratého fontu nahradíme čísla * (podľa pôvodne použitého písma). Napriek tomu sa však písmo s týmto kódovaním nie vždy zobrazuje korektne.

Najlepšou ukážkou prispôsobivosti PeKWM je podľa mňa Dynamické menu. Ide vlastne o odkaz na program, ktorý vracia do menu požadované hodnoty. Príkladom je položka Themes, ktorá je vytváraná perl skriptom po každom spustení menu. Druh programovacieho jazyka nie je pevne určený, takže ak nevieme perl, môžeme použiť iný. Lepšie povedané akýkoľvek :-) Jednoduchý príklad shell skriptu nájdeme v dokumentácii k PeKWM.

V záverečnej časti článku sa pozrieme na zvyšné konfiguračné súbory, čím sa pokúsime docieliť to, aby nám PeKWM začal zobať z ruky :-)

    • gkrellm ako dockapps 07.01.2005 | 11:34
      sh0t   Návštevník
      Mam pekwm 0.1.3 skompilovany s podporou harbour. Problem je v tom, ze ked spustim gkrellm cez skript pekwm/start, tak sa netvari ze je harbour. Ide mi o to, aby sa programy nedali maximalizovat cez gkrellm. Problem je aj vtedy, ked spustim gkrellm s parametrom -w, vtedy sa tvari ako v harbour, ale je okolo neho neprijemny pixelovy cierny ramcek. budem rad za kazde nakopnutie
      • Re: gkrellm ako dockapps 08.01.2005 | 01:31
        Avatar Marián Ščerbák   Používateľ
        Nie som si istý, či sa dá gkrellm chápať ako "dockapps", pre ktoré je určený "harbour". Mimochodom, práve pre problémy niektorých "dockapps" s "harbourom" som ich nechal plávať (vo FAQ PeKWM sa o tom tiež píše). Ak niekto po takých "vecičkách" prahne, odporúčam použiť Pogo. Nie je to síce "dockapps", ale je vynikajúci :-) K druhej časti otázky: ak nechcete, aby gkrellm zakrývala akákoľvek aplikácia, dá sa to riešiť v súbore "autoproperties", keď tam použijete konštrukciu: Layer = "OnTop" a určíte mu miesto na ploche. Budeme sa tým však zaoberať v poslednej časti článku, toto je iba na doplnenie :-)
    • Zajimave tema 07.01.2005 | 16:03
      gmmns   Návštevník
      Pred nejakou dobou jsem experimentoval s ruznymi WM, ale vzdal jsem to a vratil se ke KDE. PekWM jsem tenkrat opustil, aniz bych jej poradne otestoval, takze ma jeste sanci. Co se mi libi na KDE? Snadna a podrobna konfigurovatelnost a moznost ovladat v podstate vsechno pres klavesnici. Take se mi libi moznost spousteni aplikaci pres Alt-F2 zadanim nazvu bínarky; nesnasim menu. Rad bych tedy vedel, jak si stoji PekWM v tomto ohledu. Z appletu KDE mi hodne sedi Klipper, takze by me dale zajimalo , jak se chova PekWM k appletum, ktere se normalne usazuji v Kickeru. Za pripadne odpovedi predem dekuji.
      • Re: Zajimave tema 07.01.2005 | 16:54
        sh0t   Návštevník
        pouzivam pekwm dlhsiu dobu a nechyba mi tu nic. Samozrejme pekwm samo o sebe a bez vlastnej konfiguracie nie je velmi pouzitelne. Ak ho vsak vyladis pre svoj obraz nebudes chciet prejst na nic ine.

        Ja napr. pouzivam ako panel PyPanel, ktory zobrazuje spustene aplikacie, hodiny a plochy, na monitorovanie systemu torsmo, alebo gkrellm. Kalendar pouzivam gdeskcal. Najviac sa mi v pekwm paci jednuduche a prehladne konfiguraky (ziadne klikacie veci :) a moznost vyladenia k vlastnej potrebe.

        K tvojej otazke: Zalezi na aplikacii. V pekwm to vsak nema vyznam pretoze nema ziadny panel. V pripade toho co pouzivam (PyPanel), sa dockuju dobre aplikacie skor gnome ako kde. Napr. v pohode funguje Gaim, Mail-notification, Skype, SIM atd. Avsak tvoj spominany program na viacnasobnu schranku sa chova ako ostatne kde tray ikonky. Tray ikonka sa spusti, ale ako male okno velkosti ikonky v lavom hornom rohu. Je plne pouzitelna, ale nie je to uz ono ako v system tray na panely.

        • Re: Zajimave tema 08.01.2005 | 01:12
          Avatar Marián Ščerbák   Používateľ
          No, to, či bude Alt+F2 fungovať, bude záležať iba na vás :-) V ďalšej časti budú klávesové skratky. Nestačilo by spustiť terminál stlačením "t"? ;-) Svojou prispôsobivosťou ma PeKWM naozaj prekvapil. Klipper: dá sa to riešiť viacerými spôsobmi, tak ako v predošlej reakcii, alebo si nájdeme nejaký "appletík" na tento účel. Určite sa nejaké nájdu :-)
          • Re: Zajimave tema 08.01.2005 | 22:27
            gmmns   Návštevník
            Dekuji Vam obema za reakce. Spoustet programy pres terminal prave nechci, protoze nevidim vyznam v tom, otevirat dalsi okno, kdyz chci spustit treba Gimp nebo Mozillu. Alt-F2 v KDE mi plne vyhovuje i v tom, ze si pamatuje historii zadanych prikazu (kterych zase tak moc obvykle nepouzivam) a pri zadani prvnich par znaku uz vyberovy listbox zkracuje. To je pro me daleko prijemnejsi nez doplnovani na prikazove radce v shellu. Na dalsi dil serialu se tesim.