V tomto díle si povíme o detailním nastavení prostředí a klávesových zkratek WindowMakeru, popíšeme si jednotlivé konfigurační soubory a nástroje, které můžete pro konfiguraci využít. A představíme si několik novinek, které jsou k dispozici v nové verzi WindowMakeru.
21.2.2012 00:00 | David Adamczyk | czytane 8782×
RELATED ARTICLES
KOMENTARZE
Nová verze
Před několika dny byla vydána nová verze WindowMakeru, pokud ji ještě nemáte a nebo nejsou k dispozici balíčky pro Vaší distribuci můžete si stáhnout zdrojové kódy z git repozitáře. Kompilace a instalace probíhá standardním způsobem, více informací naleznete v oficiálním popisu instalace. Vylepšeny byly taktéž webové stránky projektu a on-line dokumentace WindowMakeru. Bylo opraveno několik chyb a přibylo spoustu nových zajímavých funkcí a několik utilit usnadňující práci s WindowMakerem. Nyní si probereme některé novinky:
Konfigurace WindowMakeru
Dříve než se pustíte do hrátek s konfiguračními soubory, pečlivě si tyto soubory zazálohujte. Předejdete tak možným problémum, které se mohou vyskytnout v případě, kdy Window Maker načítá chybný konfigurační soubor. Nastavené vlastnosti jsou v těchto případech buď nefunkční, nebo dochází k havarii WindowMakeru - pokud neobnovíte soubory z funkční zálohy možná WindowMaker již nespustíte. Jestliže nemáte zálohu, je možným řešením nakopírováni defaultní konfigurace z adresáře /etc/WindowMaker (tato cesta se může lišit v různých systémech), nebo smazáni adresáře GNUStep ve vaší domovské složce, odinstalace a následné znovu nainstalováni Window Makeru.
V jednom z předchozích dílů jsem se již krátce zmínil o struktuře adresáře GNUStep, teď si jej probereme podrobněji.
Ve výchozí instalaci nalezneme v adresáři /home/UZIVATEL/GNUstep/Defaults doménu s názvem Defaults ve které nalezneme čtyři soubory.
- Soubor WindowMaker obsahuje aktuální nastavení celého prostředí WindowMakeru jako například cesty k souborům s ikonami, aktuální pozadí.
- WMRootMenu popisuje konfiguraci vašeho menu, které můžete vyvolat kliknutím pravého tlačítka myši do volného místa pracovní plochy.
- V souboru WMState najdeme nastavení Docku, Clipu (sponky) a všech pracovních ploch.
- Poslední soubor WMWindowAttributes uchovává nastavení oken aplikací, tyto nastavení můžete provádět rovněž pomocí dialogového okna, které vyvoláte kliknutím pravého tlačítka myši do Titlebaru a vyběrem položky "Atributy..." - toto bylo popsáno v jednom z předchozích článků o WindowMakeru.
Nastavení obecných vlastností (pomocí znaku *) je nutné aktivovat resetem WindowMakeru, ostatní nastavení budou aktivní ihned po uložení. Pro parametry, které nejsou uvedeny je použita výchozí hodnota, chcete-li hodnotu parametru změnit zajistěte, aby se v konfiguračním souboru nacházel příslušný zápis.
Konfigurační soubory Window Makeru používají pro zápis speciální syntaxi nazývanou
Backusova-Naurova forma.
Nejprve si tedy probereme výchozí konfigurační soubor
GNUStep/Defaults/WindowMaker. Při jeho otevření si jistě všimnete, že obsahuje i položky z vašeho vybraného grafického stylu. Jedná se tedy o aktuální nastavení celého prostředí, které můžete v souboru měnit a změny budou viditelné ihned po uložení souboru.
Volba | Hodnota | Popis |
PixmapPath | Seznam adresářů v uvozovkách oddělený čárkou | Seznam adresářů kde bude WindowMaker hledat grafické soubory (ikony) |
*NoDithering | boolean, výchozí hodnota: NO | Zakázání ditheringu, není doporučeno pro displaye s menší než 8bitovou barevnou hloubkou. |
*ColormapSize | Číslo vyšší než 1, obvykle 4 | Počet barev poyžitý při ditheringu. Tato hodnota musí být vyšší než 1 a menší než 6. Tato volba nemá žádný význam na TrueColor displayi. |
*ModifierKey | Název klávesy modifikátoru. Výchozí Mod1 | Na výběr z Alt, Meta, Super, Hyper, Mod1, Mod2, Mod3, Mod4, Mod5 |
UseSaveUnders | YES/NO | Aktivuje saveunders |
DisableClip | YES/NO | Odstraní Clip (sponku) z pracovní plochy |
DisableDock | YES/NO | Odstraní Dock z pracovní plochy |
Superfluous | YES/NO | Zapne eyecandy (animace) |
SaveSessionOnExit | YES/NO | Uloží stav sezení při odchodu z Window Makeru. Při dalším spuštění pokračuje ve stejném stavu. |
*IconSize | číslo v pixelech větší než 4 (výchozí hodnota je 64) | Velikost ikon a miniwindow. |
OpaqueMove | YES/NO (výchozí: NO) | Při přemístění okna bude viditelné celé okno nebo jen jeho obrys. |
OpaqueResize | YES/NO | Při změně velikosti okna bude viditelné celé okno nebo jen jeho obrys. |
FocusMode | Manual(ClickToFocus), Auto(FocusFolowsMouse), SemiAuto(Sloopy) | Způsob jakým budete zaměřovat okno se kterým chcete pracovat. |
IgnoreFocusClick | YES/NO (výchozí: NO) | Ignoruje zaměření okna kliknutím kurzoru myši nad oknem. |
AutoFocus | YES/NO (výchozí hodnota: yes) | Nově vytvořené okno bude automaticky změřeno – neplést s FocusMode=Auto |
RaiseDelay | čas v [ms] (výchozí: 0) | Kolik sekund bude trvat než bude zaměřeno okno pomocí Auto nebo Semi-Auto zaměřovacího módu. |
DoubleClickTime | čas v [ms] | Časový interval ve kterém budou dvě kliknutí brána jako dvojklik |
ColormapMode | manual | The mode of colormap setting. In Manual or ClickToFocus mode, the |
CirculateRaise | YES/NO (výchozí: NO) | Režim při přepínání oken, kdy vybrané okno bude během přepínáni mezi ostatními okny vždy zaměřeno a umístěno nad ostatní okna. Pokud je volba vypnuta dojde k zaměření a přenesení do popředí až po skončení přepínání mezi okny.
|
OnTopTransients | YES/NO (výchozí: YES) | Jestliže aplikace otevře nové okno, bude toto okno vždy umístěno v popředí. |
WindowPlacement | Auto/Cascade/Manual/Random (výchozí: Cascade) | Umístění nově vytvořeného okna. Volba Auto umístí nově vytvořené okno na volné místo pracovní plochy. Cascade umístí okno do příslušného pořadí ve směru od levého horního rohu pracovní plochy. Manual nově vytvořené okno umístíte ručně kurzorem myši na pracovní ploše. Random umístí nově vytvořené okno na náhodnou pozici. |
WindowPlaceOrigin | (x,y) | Posunutí od levého horního rohu, kde začnou být umísťována nově otevřená okna. Maximální velikost je závislá na rozlišení displaye. |
AutoArrangeIcons | YES/NO | Automatické uspořádání ikon |
ResizeDisplay | center, corner, none, floating | Specifikuje pozici která bude použita při změně velikosti okna. Center znamená že výchozí pozice bude ve středu pracovní plochy, Corner znamená že výchozí pozice bude v levém horním rohu pracovní plochy, plovoucí je ve středu okna jehož velikost je měněna. |
MoveDisplay | center, corner, none, floating | Vyběr pozice plochy, při přesunování okna. Hodnoty jsou stejné jako u ResizeDisplay. |
AlignSubmenus | YES/NO (výchozí: NO) | Každé submenu bude vertikálně zarovnáno s výškou jeho rodičovské položky v nadžazeném menu. |
WrapMenus | YES/NO | Umožňuje scrollování menu, jestliže menu otevřete v pozici kdy zasahuje za zobrazitelnou oblast pracovní plochy na displayi. |
ScrollableMenus | YES/NO | Jestliže otevřete menu v takové poloze, kdy určitá část přesahuje obrazovku, mužete jej posouvat kurzorem. |
MenuScrollSpeed | ultraslow, slow, medium, fast, ultrafast | Rychlost scrollování menu |
DontLinkWorkspaces | YES/NO | Automatické přesunutí okna na další plochu jestliže je okno přesunuto na levou nebo pravou hranu obrazovky. |
NoWindowUnderDock | YES/NO | Jestliže maximalizujete okno, jeho velikost může překrývat i Dock. |
NoWindowOverIcons | YES/NO | Jestliže maximalizujete okno, jeho velikost může překrývat ikony. |
StickyIcons | YES/NO | Miniwindow budou zobrazena na všech plochách. |
CycleWorkspaces | | Jestliže je volba povolena, bude z poslední plochy při přesunu na další přesměrováno na první plochu. |
AdvanceToNewWorkspace | YES/NO | Jestliže se při posouvání ploch dostanete na poslední pracovní plochu, bude při přesunu na další pracovní plochu vytvořená nová pracovní plocha. |
DisableAnimations | YES/NO | Vypnutí animací, které jsou prováděny například při minimalizaci okna. |
IconSlideSpeed | ultraslow, slow, medium, fast, ultrafast | Rychlost klouzání ikony |
ShadeSpeed | ultraslow,slow, medium, fast, ultrafast | Rychlost srolování okna do Titlebaru |
DisableSound | YES/NO | Vypnutí zvuku |
*DisableWSMouseActions | YES/NO | Vypnutí akcí proveditelných myší na pracovní ploše – vhodné pro kombinaci s jiným desktopovým prostředím |
| | Nastavení tlačítka myši, které vyvolá aplikační menu |
WorkspaceNameDisplayPosition | none, center, top, bottom, topleft, topright, bottomleft, bottomright | Ve které části obrazovky bude při přepínání plochy zobrazen název plochy (nebude zobrazen, uprostřed, uprostřed nahoře, uprostřed dole, nahoře vlevo, nahoře vpravo, dole vlevo, dole vpravo) |
| | |
OpenTransientOnOwnerWorkspace | | |
EdgeResistance | 0 - 80 | Odolnost hran zajistí, že se okna budou bránit přesunu dál přes ostatní okna, nebo hrany obrazovky |
ResizeIncrement | | Po kolika pixelech se bude měnit velikost okna při použití klávesové zkratky Mod+kolečko myši |
Attraction | YES/NO | Přichytávat okna k sobe a klást mírný odpor při jejich odtržení |
MouseLeftButtonAction | "None","Applications Menu","Window List Menu", "Select Windows" | Akce levého tlačítka myši |
MouseMiddleButtonAction | "None","Applications Menu","Window List Menu", "Select Windows" | Akce prostředního tlačítka myši |
MouseRightButtonAction | "None","Applications Menu","Window List Menu", "Select Windows" | Akce pravého tlačítka myši |
MouseWheelAction | "None", "Switch Workspaces" | Akce kolečka myši |
ModifierKey | Shift/Lock/Control/Mod1/Mod2/Mod3/Mod4/Mod5 | Klávesa představující modifikátor |
IconPosition | t(top)/b(bottom) r(right)/l(left) h(horizontal)/v(vertical) | Umístění ikon aplikací na pracovní ploše |
IconificationStyle | "zoom","twist","flip", "none" | Animace, která bude provedena při ikonifikaci aplikace. |
DisableMiniwindows | YES/NO | Zakáže nebo povolí Miniwindow |
NoXSetStuff | YES/NO | Nenastavovat parametry mimo Window Maker |
DontConfirmKill | YES/NO | Zakáže nebo povolí dialogové okno s dotazem, které se zobrazuje při "zabití" aplikace pomocí volby Kill (Ukončit) v menu Titlebaru |
DisableBlinking | YES/NO | Zakázat animace pro vybrané ikony. |
AntialiasedText | YES/NO | Zakáže nebo povolí vyhlazování textu. |
SingleClickLaunch | YES/NO | Zakáže nebo povolí spuštění aplikace jediným kliknutím na ikonu (není potřeba dvojklik) |
CycleActiveHeadOnly | YES/NO | Přepínání oken jen pro ta okna, která jsou na aktuálním displayi (pokud je použita Xinerama) |
ShowClipTitle | YES/NO | Zobrazování titulku na ikoně Clipu (sponka). |
BounceAppIconsWhenUrgent | YES/NO | Odskočení ikony aplikace, když aplikace žádá o pozornost. |
RaiseAppIconsWhenBouncing | YES/NO | Získání ikony aplikace při odskočení. |
OpaqueMoveResizeKeyboard | YES/NO | Změna polohy a velikosti okna pomocí klávesnice |
SmoothWorkspaceBack | YES/NO | Obrázky na pozadí budou hladší, eliminuje efekt pixelizace. |
DisableDithering | YES/NO | Zakázat jakékoliv ditherování |
Klávesové zkratky
Zkratky využívají speciálních kláves tzv. modifikátorů což jsou klávesy jako Ctrl, Alt (meta), shift a podobně. Základní zápis provádíme v souboru WindowMaker takto:
MaximusKey = "Control+V";
Klávesovou zkratku zapisujeme tímto způsobem:
[(klávesy modifikátoru) + ] (klávesa)
Klávesová zkratka | Popis |
[F10] | Znamená klávesu F10 |
Meta+TAB | Znamená stisknutí modifikátoru Meta (Alt) a klávesy TAB |
Meta+Shift+TAB | Znamená stisknutí modifikátoru Meta (Alt), modifikátoru Shift a klávesy TAB |
Klávesové zkratky, které platí kdekoliv
Volba | Hodnota | Popis |
RootMenuKey | není | Otevře hlavní menu |
WindowListKey | není | Zobrazí menu se seznamem oken |
WindowMenuKey | není | Zobrazí menu Titlebaru aktivního okna |
Klávesové zkratky, které platí pro okna
Volba | Hodnota | Popis |
MiniaturizeKey | není | Miniaturizace aktuálního okna |
MinimalizeAllKey | Minimalizuje všechna okna |
HideKey | není | Schová okno aktuální aplikace |
HideOthersKey | není | Schová ostatní okna kromě aktuálně zaměřeného |
MaximizeKey | není | Maximalizuje aktuální okno |
VMaximizeKey | není | Vertikálně maximalizuje aktuální okno |
HMaximizeKey | není | Vertikálně maximalizuje aktuální okno |
LMaximizeKey | není | Maximalizuje aktuální okno na levou stranu pracovní plochy |
RMaximizeKey | není | Maximalizuje aktuální okno na pravou stranu pracovní plochy |
Maximus | není | Maximalizujete okno tak, aby vyplnilo volný prostor a nepřekrývalo ostatní okna. |
SelectKey | není | Vybere práve zaměřené okno |
RaiseKey | není | Aktuálně zaměřené okno přesune do popředí |
LowerKey | není | Aktuálně zaměřené okno přesune do pozadí |
RaiseLowerKey | není | Přesune okno do popředí, nebo do pozadí jestliže je aktuálně v popředí. |
MoveResizeKey | není | Přesunutí/Změna velikosti |
ShadeKey | není | Aktuálně zaměřené okno sroluje do Titlebaru |
FocusNextKey | není | Zaměří následující okno |
FocusPrevKey | není | Zaměří předchozí okno |
GroupNextKey | není | Následující skupina oken |
GroupPrevKey | není | Předchozí skupina oken |
Klávesové zkratky, které platí pro okna a menu
Volba | Hodnota | Popis |
CloseKey | není | Zavře aktuální okno nebo menu |
Klávesové zkratky, které platí pro Dock
Volba | Hodnota | Popis |
DockRaiseLowerKey | není | Přesunutí Docku do popředí/pozadí |
Klávesové zkratky, které platí pro Clip
Volba | Hodnota | Popis |
ClipRaiseLowerKey | není | Přesunutí Clipu do popředí/pozadí |
Klávesové zkratky, které platí pro pracovní plochy
Volba | Hodnota | Popis |
Workspace1Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace2Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace3Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace4Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace5Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace6Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace7Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace8Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace9Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
Workspace10Key | není | Přepne na ploch č.1 – číslo v rozsahu 1 – 10 udává číslo plochy |
NextWorkspaceKey | není | Přepne na následující plochu |
PrevWorkspaceKey | není | Přepne na předchozí plochu |
NextWSLayerKey | není | Přepne na skupinu následujících 10 ploch |
PrevWSLayerKey | není | Přepne na skupinu předchozích 10 ploch |
Klávesové zkratky oken
Volba | Hodnota | Popis |
Window1Key | není | Přepne na okno č.1 |
Window2Key | není | Přepne na okno č.2 |
Window3Key | není | Přepne na okno č.3 |
Window4Key | není | Přepne na okno č.4 |
Window5Key | není | Přepne na okno č.5 |
Window6Key | není | Přepne na okno č.6 |
Window7Key | není | Přepne na okno č.7 |
Window8Key | není | Přepne na okno č.8 |
Window9Key | není | Přepne na okno č.9 |
Window10Key | není | Přepne na okno č.10 |
Atributy oken
nastavení atributů okna aplikace pomocí menu vyvolaného z titlebaru bylo popsáno v předchozím článku. Pokud chcete experimentovat s nastavením pomocí úpravy parametrů, editujte soubor s názvem WMWindowAttributes.
Následuje krátký příklad jak může vzpadat zápis pro nastavení ikony všech oken na výchozí ikonu, emulátor terminálu xterm a program xconsole:
{
"*" = {
Icon = "defaultAppIcon.xpm";
};
"xterm.XTerm" = {
Icon = "xterm.xpm";
};
xconsole = {
Omnipresent = YES;
NoTitlebar = YES;
KeepOnTop = NO;
};
}
Vidíme, že zápis začíná a končí ve složených závorkách. Jednotlivým prvkům (* zastupuje všechny okna, xterm.XTerm jsou všechny okna xtermu atp.) jsou poté přiřazeny jejich vlastnosti pomocí parametrů (např. Icon, NoTitlebar, KeepOnTop, ...). všechny aplikace mají jako výchozí ikonu nastaveno defaultAppIcon.xpm. Ikona pro všechny instance všech tříd xtermu xterm.XTerm je změněna na xterm.xpm a xconsole je doplněna o speciální parametry omnipresent, NoTitlebar a KeepOnTop. Pro každou položku tedy můžeme rozlišovat tři druhy zápisu:
[název instance okna].[název třídy okna]
[název instance okna]
[název třídy okna]
Popis jednotlivých vlastností, které se dají nastavit najdete v následující tabulce:
Volba | Hodnota | Popis |
Icon | "Název_souboru" | Přiřadí soubor s ikonou příslušné aplikaci |
NoTitleBar | Yes/No | Vypnutí titlebaru |
NoResizeBar | Yes/No | Vypnutí resizebaru |
NoMiniaturizeButton | Yes/No | Odstranění tlačítka pro minimalizaci okna z titlebaru |
NoCloseButton | Yes/No | Odstranění tlačítka pro zavření okna z titlebaru |
NoHideOthers | Yes/No | Do not hide the window, or the application to which the window belongs when a Hide Others command is issued. |
NoMouseBindings | Yes/No | Zakáže akce vyvolávané tlačítky myši pro vybrané okno |
NoKeyBindings | Yes/No | Zakáže akce vyvolávané tlačítky na klávesnici pro vybrané okno |
NoAppIcon | Yes/No | Nebude vytvářet ikonu aplikace po jejím spuštění |
KeepOnTop | Yes/No | Okno bude vždy zobrazeno nad ostatními okny |
KeepOnBottom | Yes/No | Okno bude vždy zobrazeno pod ostatními okny |
Omnipresent | Yes/No | Okno bude „přišpendleno“ na všechny pracovní plochy |
SkipWindowList | Yes/No | Okno nebude zařazeno do seznamu oken |
KeepInsideScreen | Yes/No | Okno bude vždy uchováno na viditelné části plochy |
Unfocusable | Yes/No | Okno nemůže být zaměřeno |
StartWorkspace | "NazevPlochy" | Nastaví na které pracovní ploše bude aplikace startovat. |
StartMaximized | Yes/No | Spustí aplikaci v maximalizovaném okně |
NoBorder | Yes/No | Spustí aplikaci v okně bez okrajů |
StartHidden | Yes/No | Startuje skrytě |
NoLanguageButtton | Yes/No | Zakázat tlačítko jazyka |
DontSaveSession | Yes/No | Neukládat stav sezení |
StartMiniaturized | Yes/No | Spustí aplikaci v minimalizovaném okně |
FullMaximize | Yes/No | Maximalizace přes celou plochu obrazovky |
SharedAppIcon | Yes/No | Sdílení ikony aplikace |
Menu
Nakonec se můžeme pustit do editace menu. Jak jistě tušíte, menu je generováno z konfiguračního souboru WMRootMenu. Celá oblast, která popisuje menu je uzavřena v kulatých závorkách. Jako první záznam je vždy uváděn titulek menu. Ten je oddělen čárkou a každá další položka je uzavřena v samostatné závorce. Tyto jednotlivé položky jsou opět odděleny od sebe čárkou. V menu se mohou nacházet jak příkazy k spuštění jednotlivých aplikací, všetně příslušných parametrů, tak jednotlivé akce WindowMakeru případně samostatná menu uložená v externích souborech.
Syntaxe menu:
(
"Programy",
("Program 1", SHORTCUT, 1),
("Program 2", SHORTCUT, 2, ("Allowed_instant_1", "Allowed_instant_2")),
("Program 3", SHORTCUT, (3,4,5), ("Allowed_instant_1")),
(
"Podmenu",
("Zabit", KILL),
("Schovat", HIDE),
("Schovat ostatni okna", HIDE_OTHERS),
("Clen", MEMBERS),
("Ukoncit", EXIT)
)
)
Za
SHORTCUT můžete akci přiřadit libovolnou klávesovou zkratku.
Seznam příkazů WindowMakeru:
Příkaz | Popis činnosti |
INFO_PANEL | zobrazí Info Panel |
LEGAL_PANEL | zobrazí Copyright panel |
SHUTDOWN [QUICK] | Ukončí X server [bez potvrzení] |
REFRESH | překreslení pracovní plochy |
EXIT [QUICK] | ukončení WindowMakeru [bez potvrzení] |
EXEC <program> | spustí program |
SHEXEC <command> | spustí příkaz v shellu |
WORKSPACE_MENU | places the workspace submenu |
ARRANGE_ICONS | uspořádání ikon |
RESTART [<window manager>] | restartuje window manager |
SHOW_ALL | zobrazí všechna okna na pracovní ploše |
HIDE_OTHERS | skryje všechna okna na pracovní ploše okromě aktuálně zaměřeného okna |
OPEN_MENU soubor | načte menu ze souboru |
OPEN_MENU /some/dir [/some/other/dir ...] [WITH command -options] | Načte menu z vybraných adresářů, případně vykoná příkaz |
OPEN_MENU | command | spustí příkaz a použije jeho standardní výstup pro vytvoření jednotlivých položek menu (výstup programu/skriptu musí být validní menu WindowMakeru) použití || zařídí že výstup nebude uchováván v cache. |
SAVE_SESSION | uloží stav akutálního sezení, včetně všech spuštěných aplikací a jejich vlastností (geometrie oken, pozice na obrazovce, přířazení příslušné pracovní ploše,...) tento stav bude načten při každém spuštění WindowMakeru dokud nebude přepsána aktuální konfigurace sezení dalším spuštením příkazu SAVE_SESSION nebo nebude vymazána příkazem CLEAR_SESSION. |
CLEAR_SESSION | Vymaže uchovávané nastavení sezení, tato volba nemá žádný význam jestliže je povoleno SaveSessionOnExit |
Dle zkušeností z konfigurace předchozích souboru možná tušíte, že jakmile je soubor s menu uložen bude zmena v menu okamžitě načtena. Díky této funkcionalitě je možné generovat dynamická menu. Je možné například do jednotlivých položek menu zobrazit jednotlivé soubory v předem definovaném adresáři a následně je předat předem stanovenému programu, který je zavolán při spuštění vybrané položky menu. Podobná akce probíhá, když v menu Window Makeru vyberete obrázek s pozadím - je zavolán program wbsetbg, který dostane jako parametr vybraný soubor. Obdobným způsobem můžete menu i generovat, není problém zobrazit například podmenu s několika běžícími procesy, nebo aktuální záznamy z Vašeho oblíbeného RSS feedu.
Na následujících řádcích vidíte zápis jedné položky menu generující submenu ze skriptu:
(
"Generovane Submenu",
OPEN_MENU,
"|| /home/david/GNUstep/Defaults/cpufreq"
),
Při otevření tohoto submenu je spuštěn skript cpufreq. Ten generuje textový výstup - položky menu, tak jak jsou uloženy v běžném konfiguračním souboru. Tento a další skripty naleznete na webových stránkách
Josefa Kufnera.
(
Applications,
(
"Moje menu",
(Audio, (Xmms, EXEC, xmms)),
(
"Kancelar",
(Abiword, EXEC, abiword),
(Gnucash, EXEC, gnucash),
(Gnumeric, EXEC, gnumeric),
("Star Office", EXEC, "/usr/storage/staroffice52/soffice")
)
)
Toto menu s názvem "Moje menu" obsahuje pouze dvě submenu Audio, ve kterém se nachází položka Xmms a submenu "Kancelar", ve kterém se nachází položky Abiword, Gnumeric a Gnucash. Příkaz
EXEC slouží pro spuštění programu, následující parametr je název spustitelného programu.
(
Vzhled,
(
Temata,
OPEN_MENU,
"-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library
/WindowMaker/Themes WITH setstyle"
)
)
Položka
Temata po rozkliknutí zobrazuje další submenu, kde jednotlivé položky jsou dány názvem souboru s grafickým tématem v adresáři
/usr/local/share/WindowMaker/Themes nebo v dalším adresáři
$HOME/GNUstep/Library. Pomocí příkazu
WITH je při výběru předán konkrétní název souboru utilitě
setstyle, která změní aktuální grafické téma. Pokud vyměníte utilitu
setstyle za jinou, například
wmsetbg a cestu změníte na adresář s grafickými soubory, můžete jednoduše měnit pozadí pracovní plochy. Takto můžete volat jakýkoliv program, například
mplayer pro přehrávání filmů.
(
Konec,
(Restart, RESTART),
("Start BlackBox", RESTART, blackbox),
)
V menu
Konec můžete restartovat WindowMaker pomocí příkazu RESTART. Jestliže za příkaz RESTART oddělíte čárkou a přidáte název programu bude tento po restartu spuštěn, takto můžete přejít ze správce oken WindowMaker na jiný. Pro práci s dialogovým oknem, můžete použít následující zápis:
(Spustit..., SHEXEC, "%A(Spustit, Napiste prikaz, ktery si prejete spustit:)"),
("Otevrit ve W3M", SHEXEC, "xterm -e w3m "%A(URL, Napiste URL adresu:)"" ),
("Manual", SHEXEC, "xterm -e man "%A(Manualova stranka, Kterou manualovou stranku si prejete otevrit?)"" ),
Konfigurace Docku, Clipu a pracovních ploch
Dále si probereme soubor WMState. Zde můžete nastavit pozici všech ikon v Docku, vlastnosti Clipu a vlastnosti všech pracovních ploch.
Dock = {
Applications = (
{
Command = xterm;
Name = xterm.XTerm;
AutoLaunch = No;
Lock = No;
Position = "0,5";
},
.
.
Příkaz | Popis |
Command | příkaz který bude spuštěn |
Name | název aplikace |
AutoLaunch | YES/NO aplikace může být spuštěna automaticky po startu WindowMakeru |
Lock | YES/NO aplikace nebůže být odstraněna přesunutím z Docku |
Position | pozice v docku (sloupec,řádek) |
DropCommand | Příkaz který dostane jako parametr objekt přesunutý do ikony pomocí Drag and Drop |
PasteCommand | Kliknutím prostředního tlačítka myši je jako parametr vložen obsah schránky |
Konfigurace Clipu může vypadat takto:
Clip = {
Command = "-";
Name = Logo.WMClip;
AutoLaunch = No;
Lock = No;
Forced = No;
BuggyApplication = No;
Position = "0,0";
DropCommand = "wmsetbg -u -t %d";
};
Workspaces = (
{
Name = Main;
Clip = {
Applications = (
{
Command = "wterm -tr -sh -sb -st -wm";
Name = wterm.XTerm;
AutoLaunch = No;
Lock = No;
Forced = No;
BuggyApplication = No;
Position = "1,0";
Omnipresent = No;
DropCommand = "wterm %d";
}
);
Lowered = Yes;
Collapsed = No;
AutoCollapse = No;
AutoRaiseLower = No;
AutoAttractIcons = No;
};
},
{
Name = "Workspace 2";
Clip = {
Applications = ();
Lowered = Yes;
Collapsed = No;
AutoCollapse = No;
AutoRaiseLower = No;
AutoAttractIcons = No;
};
},
Název | Popis |
Name | Název pracovní plochy |
Clip | Začátek definice Clipu pro příslušnou pracovní plochu |
Omnipresent | [YES/NO] Ikony budou zobrazeny na všech plochách |
Lowered | [YES/NO] Přesunut do pozadí |
Collapsed | [YES/NO] Všechny ikony v docku Clipu budou skryty, dvojklikem budou zobrazeny |
AutoCollapse | [YES/NO] Všechny ikony v docku Clipu budou skryty, přesunutím kruzoru myši nad Clip budou zobrazeny |
AutoRaiseLower | [YES/NO] Kliknutím na ikonu reprezentující okno schované pod jiným oknem, bude toto okno přeneseno do popředí |
AutoAttractIcons | [YES/NO] Ikony spuštěných programu budou přilepeny ke Clipu, jakmile dojde k ukončení programu budou ikony odstraněny |
Autostart skript
Jestliže máte zapotřebí spouštět některé aplikace jako například DockApps, conky, nebo jiné ihned po startu WindowMakeru použijte soubor autostart, který se nachází v cestě:
~/GNUstep/Library/WindowMaker/autostart
Jeho obsah může vypadat například takto:
xcompmgr -c -C -t-5 -l-5 -r4.2 -o.95 &
wmcpuload &
wmmemload &
wmclockmon &
wmweather+ &
wmifinfo &
wmacpi &
Exitscript
Do tohoto skriptu můžete napsat akce, které mají být provedeny při ukončení Window Makeru. Standardně se skript nachází v cestě:
~/GNUstep/Library/WindowMaker/exitscript
Pokračování příště...