# Manual pentru K Window Manager (mangerul de ferestre)

Echipa
KDE
0.11.3, 27 aprilie 1998

Această documentatie a fost schimbată ultima dată pentru versiunea 0.11.3 a programuliu kwm. Vă rog, trimiteti-i orice comentare sau adaosuri autorului.

KDE Romanian

KDE
Romanian

## Introducere

Acest document contine informatii generale despre kwm, o referenză a trăsăturilor pe care le are, si informatii tehnice folositoare programatorilor modulelor de control kwm si al modulului pentru sistemul de sunete.

Pentru alte informatii despre setarea kwm la nivel jos (low-level, doar interesant pentru programatorii kwinconfig) aruncati o privire la textul generat kwmrc si la codul sursă.

Pentru toti programatorii: uitati-vă la `kwm.h` in libkdecore pentru informatii despre utlizarea kwm-ului pentru scopurile dumneavoastră. în caz că doriti să programati module vă stă clasa `KWMModuleApplication` la dispositie ca exemplu bun.

### Trăsături

kwm este managerul de ferestre pentru KDE. Printre altele el oferă:

- Integrare totală in KDE.

- Control complet asupra tastaturii.

- Look and feel (înfătisare) modern cu titluri de ferstre si iconite unice, care nu trebuie definite în fisiere resursă criptice.

- O fereastra mini pentru linii de comandă cu istorie pentru acces rapid la comenzile shell.

- Abilitatea de a fi configurat in timp ce merge fără a necesita vreo repornire.

- Este un manager de ferestre al generatiei a doua. KWM foloseste unelte moderne pentru construirea suprafetei si elementelor sale de control (butoane, meniuri, cutii de listare etc) in loc de a umfla codul cu implementări proprietare sau cu Xlib.

- Rezolvare excelentă a focusului chiar dacă lucrati pe ecrane virtuale diferite (nu se mai pierde focusul la schimbarea ecranului ca la alte managere de ferestre).

- Include menajare de sesiune si dispositiv de restaurare a meduilui de lucru pentru aplicatii proprii. Acest mecanism restaurează aplicatiile în sesiunile viitoare si setează chiar si proprietătile ferestrelor (mărită(maximizată), lipicioasă, iconită etc) pe ecranul virtual corect.

- Un concept modern pe bază de module care foloseste serverul X oriunde este posibil. Modulele KWM sunt foarte independente: pot fi pornite înainte sau după kwm. KWM poate fi pornit în timp ce modulele merg si le va reconecta automat.

- Oferă extensii ale serverului X in `kwm.h`: Acum aplicatiile se pot maxima singure (sau minima sau declara lipicioase...) si pot defini mini-iconite. Functionează si cu ferestrele visible.

## Cum se foloseste kwm

### Optiuni pentru linia de comandă

kwm pune la dispozitie următoarele optiuni pentru linia de comandă:

-version

  Arată versiunea si patchlevel-ul; nu porneste kwm

-nosession

  Porneste kwm fără a restaura sesiunea trecută

### Acceleratori

Alt-Esc sau Control-Esc

  Manager "Sesiunea curentă" cu buton de logout

Alt-Tab si Alt-Shift-Tab

  Trece de la o fereastră la alta pe ecraul curent

Ctrl-Tab si Ctrl-Shift-Tab

  Trece de la un ecran virtual la altul (poate fi oprit în kwmrc)

Alt-F2

  Arată fereastra mini de linie de comandă

Alt-F3

  Meniul de operare al ferestrei (coltul din stânga sus)

Alt-F4

  închide fereastra

Ctrl-F&lsqb;1..8&rsqb;

  Trece la alt ecran virtual

Ctrl-Alt-Esc

  Intră in modul de distrugere al ferestrelor (cursorul mouse devine un cap de mort)

### Controlul cu ajutorul mouse-ului

Clic pe bara de titlu sau pe marginea ferestrei

- butonul stâng activează si ridică fereastra

- butonul din mijloc activează si scufundă fereastra

- butonul din dreapta arată meniul de operare al ferestrei dacă fereastra este activă, dacă nu, o activează fără să o ridice

Dublu clic pe bara de titlu măreste fereastra sau o readuce la dimensiunea originală

Trasul (apăsatul butonului urmat de o miscare al mouse-ului în timp ce butonul rămâne apăsat) pe bara de titlu

- butonul stâng miscă fereastra si o ridică

- butonul din mijloc miscă fereastra fără să o ridice

Trasul colturilor sau al marginilor

- butonul stâng schimbă dimensiunile ferestrei si o ridică

- butonul din mijloc schimbă dimensiunile ferestrei fără să o ridice

întreaga fereastră

- Alt-butonul stâng miscă fereastra

- Alt-butonul din mijloc ridică fereastra

- Alt-butonul drept schimbă dimensiunile ferestrei

Butoanele de pe bara de titlu (configurabile)

- Meniu/iconită arată o listă cu operatii privind fereastra

- Lipicios porneste sau opreste modul lipicios pentru fereastra respectivă (dacă ferestra este în modul lipicios, ea rămâne pe ecran cînd vă miscati de la ecran la ecran)

- Micsorează (iconifică) reduce fereastra la mărimea de iconită

- Măreste

  - butonul stâng măreste fereastra (încît să cuprindă tot ecranul)

  - butonul din mijloc măreste fereastra vertical (peste tot ecranul)

  - butonul drept măreste fereastra orizontal (peste tot ecranul)

- închide închide fereastra (unele aplicatii s-ar putea să vă întrebe, dacă aveti ceva de salvat)

### Fereastra mini pentru linii de comandă

Apăsati `Alt-F2` pentru aparitia unei mici ferestre pentru linii de comandă. Introduceti o comandă de shell/Unix (variabila de mediu SHELL va fi folosită pentru a determina care shell execută comanda), sau ceva din următoarele:

- Un URL pentru a deschide o fereastră kfm cu URL-ul cutare. Puteti omite http:// sau ftp:// dacă numele serverului începe cu www. respectiv ftp.

- Introduceti `man:comandă` pentru a deschide o fereastră kfm care să arate pagina de manual Unix pentru commanda respectivă.

Puteti folosi tasta săgeată-sus pentru a executa comenzi tipărite in prealabil si tasta tab pentru a completa nume de fisiere tipărite doar partial, ca în multe shell-uri.

### Comenzi

Puteti trimite comenzi kwm-ului cu:

`KWM::sendKWMCommand(QString)` (în aplicatii KDE) sau `kwmcom comandă` (de la linia de comandă)

Acestea sunt în special interesante pentru programatori ai kglobalshortcut.

în present kwm întelege următoarele comenzi:

- refreshScreen reâmprospătează ecranul

- darkenScreen întunecă ecranul. Atentie: această comandă face suprafata să nu mai răspundă la intrări de la mouse sau de la tastatură.

- logout arată un dialog de iesire din KDE.

- commandLine deschide fereastra mini pentru linia de comandă

- taskManager arată managerul "Current Session" (al sesiunii actuale)

- configure reîncarcă configurarea din kwmrc.

- winMove winResize winRestore winIconify winClose winShade winSticky winOperations Aceste comenzi afectează fereastra activă la ora actuală si se comportă cam cum vă asteptati.(`winOperations` arată meniul de operare al ferestrei.)

- deskUnclutter deskCascade Aceste comenzi reorganizează ferestrele de pe ecran

- desktop&lsqb;1-8&rsqb; trece la ecranul dorit

- desktop+1 desktop+2 desktop-1 desktop-2 desktop&percnt;2 Aceste comenzi trec de la ecran la ecran. `desktop&percnt;2` trece de la un ecran impar la următorul par, deci de la 1 la 2 si de la 3 la 4. Este folositor pentru a emula "sus" si "jos" într-o matrice vituală n*2, care este folosită si de pager-ul KDE. `desktop+2` înseamnă "dreapta"; `desktop-1` înseamnă "stânga".

## Configurare

kwm poate fi configurat folosind Centrul de Control KDE (application starter > KDE Control Center). Deschideti ramura ferestrelor (Windows) pentru a lucra cu diferite opriuni de configurare. Dacă doriti să configurati ecranele virtuale, deschideti ramura aplicatiilor (Applications) si alegeti Panou (Panel).

Cei care preferă să editeze un fisier de configurare, pot găsi în această sectiune explicatii despre optiunile din fisierul `kwmrc` situat în ˜/.kde/share/config.

### kwmrc

Fisierul kwmrc de configurare este împărtit în următoarele sectiuni:

- Buttons

- General

- Session

- Desktop

#### &lsqb;Buttons&rsqb;

Această sectiune controlează plasarea butoanelor de control ale ferestrei pe bara de titlu. Contine linii de forma ButtonX=nume-buton unde X este o literă A-F, si nume-buton este unul dintre `Menu, Sticky, Iconify, Maximize, Close, Off`. Butoanele A, B, si C apar pe partea stângă a barei de titlu iar D, E, si F pe partea dreaptă.

#### &lsqb;General&rsqb;

Această sectiune defineste o serie de puncte de configurare:

- AutoRaise=valoare (în milisecunde) Dacă `FocusPolicy` este `FocusFollowMouse`, acest punct determină timpul de asteptare a unei ferestre, care după ce a primit focusul în urma cursorului de mouse fiind deasupra ei, va fi ridicată acoperind eventual alte ferestre.

- BorderSnapZone=valoare (în pixeli) Dacă utilizatorul tocmai positionează o fereastră si una dintre marginile ferestrei sunt aproape de marginile ecranului, fereastra sare la marginea ecranului. Valoarea determină cât de aproape trebuie să fie fereastra de marginea ecranului ca să sară.

- Button3Grab=`on&verbar;off` Dacă este setat pe `off`, operatiile de fereastră care implică butonul drept al mouse-ului sunt deactivate pentru ca ferestrele aplicatiilor să primească mesaje în legătură cu acest buton.

- ControlTab=`on&verbar;off` Dacă este `on`, permite utilizatorului să apese `Ctrl+Tab` pentru a se muta de la un ecran la altul.

- ElectricBorder=valoare (în milisecunde) Dacă aveti mai mult decât un ecran, însusirea ElectricBorder vă permite să vă miscati printre ele miscând mouse-ul către marginea ecranului. Valoarea specifică durata de timp pe care trebuie să păstrati cursorul positionat la marginea ferestrei înainte ca ecranul să fie schimbat. O valoare de -1 opreste această însusire.

- ElectricBorderMovePointer=`off&verbar;on` Dacă optiunea de la `ElectricBorder` este `on`, atunci puneti-o pe aceasta pe `on` pentru ca mouse-ul să fie automat pus în mijlocul ecranului după schimbare.

- FocusPolicy=`ClickToFocus&verbar;FocusFollowMouse` `ClickToFocus` are ca urmare că utilizatorul trebuie să efectueze un clic cu mouse-ul pentru a-i da focusul unei ferestre. `FocusFollowMouse` dă focusul tot timpul ferestrei deasupra căreia se găseste mouse-ul.

- MaximizeOnlyVertically=`off&verbar;on` Dacă este `on`, această sectiune restrictează mărirea (la maximum) a ferestrei doar la o maximizare verticală.

- ResizeAnimation=`on&verbar;off` Dacă este `on`, minimarea si maximizarea unei ferestre implică o animatie grafică.

- RstartProtocol=`... (de obicei "`rstart -v`")`

- ShapeMode=`off&verbar;on` Dacă ShapeMode este `on`, kwm va folosi pixmap-uri definite de utilizator pentru a desena marginile ferestrelor în locul metodelor obisnuite (uitati-vă mai jos).

- ShapePixmapTop=pixmap-sus ShapePixmapBottom=pixmap-jos ShapePixmapLeft=pixmap-stânga ShapePixmapRight=pixmap-dreapta ShapePixmapTopLeft=pixmap-stânga-sus ShapePixmapTopRight=pixmap-dreapta-sus ShapePixmapBottomLeft=pixmap-stânga-jos ShapePixmapBottomRight=pixmap-dreapta-jos Aceste optiuni specifică ce imagini sunt folosite pentru a desena respectivele bare laterale/colturi ale ferestrelor dacă `ShapeMode` este `on`. Pixmap-xxxx trebuie să fie numele unui fisier de tip pixmap (.xpm) care să se găsească în share/apps/kwm/pics.

  Sursele kwm includ un subdirector "images", care contine um exemplu de extensii a formei ferestrei.

- TitlebarLook=`shaded&verbar;plain&verbar;pixmap` Această optiune determină felul în care apar barele de titlu ale ferestrelor. Alegeti `pixmap` pentru ca kwm să pună o imagine definită de utilizator în bara de titlu, după cum este specificat în urmăroatele puncte.

- TitlebarPixmapActive=pixmap-feastră-focusată TitlebarPixmapInactive=pixmap-fereastră-nefocusată Aceste optiuni specifică ce imagini vor fi arătate în barele de titlu ale ferestrelor focusate/nefocusate, dacă TitleBarLook este `pixmap`.

- TitleAnimation=valoare (în milisecunde) Permitând TitleAnimation face kwm să miste titlurile lungi de fereastră (prea lungi ca să încapă în portiunea colorată a titlului) înainte si înapoi ca să devină visibile. Valoarea specifică viteza animatiei. 0 (zero) opreste animatia.

- TitlebarDoubleClickCommand=`winMaximize&verbar;winShade&verbar;winMove&verbar; winResize&verbar;winRestore&verbar;winIconify&verbar;winClose&verbar;winSticky&verbar; winOperations` Această optiune vă permite să specificati cum se comportă fereasrtra când utilizatorul efectuează un dublu-clic pe bara de titlu.

- TraverseAll=`on&verbar;off` Dacă este `on`, operatia `Alt-tab` ia toate ferestrele de pe toate ecranele la rând. Dacă este `off`, `Alt-tab` arată doar ferestrele de pe ecranul pe care vă aflati.

- WindowMoveType=`Opaque&verbar;Transparent` Această optiune controlează efectul visual care apare cînd utilizatorul miscă o fereastră. Dacă este `Transparent`, nu va apărea devcât conturul ferestrei în timpul miscări. `Opaque` arată întreaga fereastră.

- WindowsPlacement=`cascade&verbar;interactive&verbar;manual&verbar;random&verbar;smart` Această optiune determină cum va plasa kwm ferestrele pe ecran când sunt deschise pentru prima dată (de exemplu la startul unei aplicatii). `manual` permite utilizatorului să aleagă singur locul de a-si plasa fereasrta. `interactive` ia o valoare aditională procentuală, de exemplu: `WindowsPlacement=interactive,25` Cu plasament `interactive`, kwm foloseste algoritmul de plasament `smart` (destept) pentru a determina locul ferestrei în asa fel ca fereastra să nu acopere nici o altă fereastră mai mult decât procentajul specificat, în caz contratiu `manual` fiind folosit pentru a plasa fereastra. Procentajul poate fi mai mare de 100. Celelalte optiuni lasă kwm să plaseze ferestrele.

- WindowSnapZone=Valoare (în pixeli) Dacă utilizatorul positionează o fereastră si una dintre margini se apropie de marginile altor ferestre, fereastra care tocmai este positionată va sări lângă cealaltă fereastră. Valoarea spune cât de aproape trebuie să fie fereastra pentru a sări.

#### &lsqb;Session&rsqb;

- proxyignore=`xemacs,xterm,...,` Listă delimitată cu virgulă de aplicatii (non-KDE) ale cărora conditii (însusirile ferestrei) nu vor fi salvate când utilizatorul iese din KDE. Listati aplicatia cu orice argumente pentru linia de comandă.

#### &lsqb;Desktop&rsqb;

Această sectiume defineste numărul de ecrane virtuale precum si numele si positiile lor. Contine linii ca si urmăroarele:

- NumberOfDesktops=Valoare Specificä numărul de ecrane virtuale. La ora la care s-a scris această documentatie kwm suporta până la 8 ecrane.

- Desktop&num;&lsqb;C&rsqb;=nume Specifică numele ecranului &num;, de exemplu, `Desktop1[C]=One` Ecranele sunt numerotate 1-8.

- Desktop&num;Region=geometrie Specifică geometria (positia si mătrimea) ecranului &num;; de exemplu, `Desktop1Region=101+0+923+722`

## Efecte sonore

KWM are câteva evenimente sonore, care pot fi folosite într-un modul sistem de sunet. La ora actuală sunt implementate următoarele evenimente:

- Window Iconify

- Window DeIconify

- Window Maximize

- Window UnMaximize

- Window Sticky

- Window UnSticky

- Window New

- Window Delete

- Window New Trans

- Window Delete Trans

- Window Shade Up

- Window Shade Down

- Logout

- Logout Message

## întrebări frecvente

### De ce să folosesc kwm?

Am pierdut o grămadă de zile învătând cum să configurez 10 managere de ferestre diferite. Acum, când am 678 de linii de fisier resursă care fac ce vrau eu, veniti voi si-mi luati managerul!

Răspuns: Nu trebuie, este doar o fertă liberă. KDE suportă toate managerele de ferestre existente la ora actuală, dar dacă vreti să beficiati complet de el, este recomandat să folositi kwm. Uitati-vă la lista de trăsături.

### De ce nu-mi pot defini acceleratori noi pentru lansarea aplicatiilor?

Răspuns: Pentru că aceasta nu este treaba unui manager de ferestre. Folositi `KGlobalShortcut` pentru acest scop.

### De ce seamănă kwm asa de mul cu Windows 95?

Răspuns: Hopa, chiar asa-i? Stai să văd.... (Matthias încearcă să găsească pe cineva cu Windows 95 pntu că el nu are Windows 95 pe nici unul dinte calculatoarele sale, ăăă ... nimeni nu are Windows 95 pe vre-un calculator de pe-aici. Păi hai să luăm o distributie Linux mai veche si să instalăm fvwm95-2 ...) Nu, nu prea cred asta. KWM arată mult mai frumos si oferă mult mai mare functionalitate pe domeniul menajamentului de ferestre.

### Este posibil să adaug extensii KDE la alte managere de ferestre?

Răspuns: Da, e posibil. Trebuie doar să vă uitati la `kwm.h` si `kwm.C` din `libkdecore` si să extindeti managerul d-voastă preferat asa încât să răspundă corect la cerererile respective. Este de asemenea posibil să implementati un object request broker în limbaj de asamblare x86. Este doar o chestiune de proportie investitie/rezultat.

### Poate kwm desena ferestre cu bara de titlu colorată ca la OpenStep?

Răspuns: Da.

## Epilog

### Autori

`Matthias Ettrich` - Designer si autor

`Stephen Schaub` - Editor

`Kalle Dalheimer` - Copy editor

`Robert Williams` - Editor SGML

`Florin Boariu` - Traducerea