]>

# Guida al K Window Manager

The KDE Team
0.11.3, 27 Aprile 1998

Questa documentazione è stata aggiornata al kwm versione 0.11.3. Invia ogni commento e aggiunta all'autore.

KDE Window manager

KDE
window manager

## Introduzione

Questo documento contiene delle informazioni generali su kwm, un sommario delle sue caratteristiche, e informazioni tecniche utili per gli sviluppatori del kwm control module e del system sound module.

Per ulteriori informazioni su come settare kwm a basso livello (interessante soltanto per gli sviluppatori di kwinconfig) controlla il kwmrc appena generato e le sorgenti.

Per tutti i programmatori: controlla `kwm.h` in libkdecore per informazioni su come usare kwm per i tuoi bisogni. Per i moduli, la classe `KWMModuleApplication` è un buon esempio per imparare a scrivere moduli.

### Caratteristiche

kwm è il window manager scelto per KDE. Tra le altre cose, offre:

- Completa integrazione in KDE.

- Completo controllo della tastiera.

- Un look and feel moderno con titoli di finestre unici e con icone che non hanno bisogno di essere definite in criptici file di configurazione.

- Una utilissimafinestra mini command-line con una memoria per un veloce accesso al promt della shell.

- Possibilità di essere riconfigurato a runtime senza riavviarlo.

- Window manager di seconda generazione. KWM usa una moderna libreria GUI per i suoi widgets (tasti, menu, listboxes, etc..) invece di gonfiare il codice con una implementazione proprietaria o Xlib.

- Eccellente uso del focus anche se lavori su differenti desktop virtuali (niente piú cambia-desktop-e-perdi-il-focus come succede con altri window managers).

- Include una gestione delle sessioni e un funzionale proxy per la gestione delle sessioni per applicazioni che lo richiedono. Questo proxy è capace di far ripartire le tue applicazioni al loro stato precedente, insieme alle proprietà delle finestre (ingrandito, appiccicato, iconificato, etc..) e sul giusto desktop virtuale.

- Un moderno concetto dei moduli che usa l'X Server dove possibile. I moduli KWM sono anche molto indipendenti: possono essere fatti partire prima o dopo kwm. KWM può essere fatto ripartire mentre i moduli stanno girando e li riconnetterrà automaticamente.

- Offre alcune estensioni all'X Server in `kwm.h`: Ora le applicazioni possono anche ingrandirsi (o appiccicarsi, o decorarsi/sdecorarsi o cos'altro) e definire mini icone. Tutto ciò funziona anche per le finestre mappate (visibili).

## Usare kwm

### Opzioni linea di comando

kwm ha le seguenti opzioni alla linea di comando:

-version

  Visualizza il numero della versione compresa la patchlevel; non avvia kwm

-nosession

  Avvia kwm senza ripristinare la precedente sessione

### Scorciatoie

Alt-Esc or Control-Esc

  Gestore della "Sessione Attiva" con tasto di fine sessione

Alt-Tab and Alt-Shift-Tab

  Attraversa le finestre del desktop attivo

Ctrl-Tab and Ctrl-Shift-Tab

  Attraversa i desktop virtuali (può essere disabilitato in kwmrc)

Alt-F2

  Apre una mini finestra di linea di comando

Alt-F3

  Menu Operazioni sulle Finestre

Alt-F4

  Chiudi Finestra

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

  Cambia il desktop virtuale

Ctrl-Alt-Esc

  Distrugge la finestra (il cursore diventa unpirata)

### Controllo Mouse

Clicca sul bordo o sulla barra titoli

- tasto sinistro del mouse attiva e alza la finestra

- tasto centrale del mouse attiva e abbassa la finestra

- tasto destro del mouse visualizza il menu delle operazioni sulle finestre se la finestra è attiva, altrimenti la attiva senza sollevarla

Doppio-click sulla barra titoli cambia ingrandisci Spostamento della barra titoli

- tasto sinistro del mouse muove la finestra e la solleva

- tasto centrale del mouse muove la finestra senza sollevarla

Spostamento degli angoli o dei bordi

- tasto sinistro del mouse ridimensiona la finestra e la solleva

- tasto centrale del mouse ridimensiona la finestra senza sollevarla

The entire window

- Alt-tasto sinistro del mouse muove la finestra

- Alt-tasto centrale del mouse solleva la finestra

- Alt-tasto destro del mouse ridimensiona la finestra

Tasti della Barra Titoli (configurabile)

- Menu visualizza una lista delle operazioni sulle finestre

- Appiccicato cambia la modalità appiccicato on/off (la finestra rimane a schermo mentre ti muovi tra un desktop e l'altro)

- Iconifica iconifica la finestra

- Ingrandisce

  - tasto sinistro del mouse ingranisce

  - tasto centrale del mouse ingrandisce verticalmente

  - tasto destro del mouse ingrandisce orizzontalmente

- Chiudi chiude la finestra (le applicazioni possono chiedere se hanno qualcosa da salvare)

### Mini Command-line Window

Premi `Alt-F2` per visualizzare una mini finestra di linea di comnado. Inserisci un comando di Shell Unix (la variabile di ambiente SHELL viene utilizzata per determinare quale shell eseguirà il comando), o una delle seguenti:

- Inserisci una URL per aprire una finestra kfm con l'URL specificata. Puoi omettere http:// o ftp:// se il nome del server inizia con www. o con ftp., rispettivamente.

- Digita `man: comando` per aprire una finestra kfm visualizzando la pagina di manuale Unix per il comando.

Puoi usare il tasto freccia-sú per richiamare un comando precendentemente inserito. Inoltre, puoi usare il tasto TAB per completare parzialmente i nomi di file inseriti, come in molte shell.

### Comandi

Puoi mandare dei comandi a kwm con uno dei due:

`KWM::sendKWMCommand(QString)` (in applicationi KDE) oppure il `kwmcom comando` (dalla linea di comando)

Questo è di speciale interesse per gli sviluppatori di kglobalshortcut.

Al momento kwm riconosce i seguenti comandi:

- refreshScreen pulisce lo schermo

- darkenScreen scurisce lo schermo. Attento: questo rende il desktop inutilizzabile dall'input di tastiera/mouse

- fine sessione visualizza la maschera di fine sessione.

- Linea di comando apre la mini finestra di linea di comando

- taskManager visualizza il gestore della "Sessione Attiva".

- configura ricarica la configurazione dal kwmrc

- winMovewinResizewinRestorewinIconifywinClosewinShadewinStickywinOperationsQuesti comandi si applicano alla finestra correntemente attiva e fanno molto di piú di ciò che ti aspetteresti. (`winOperations` visualizza il menu delle operazioni sulle finestre.)

- deskUnclutterdeskCascadeQuesti comandi riorganizzano le finestre sul desktop

- desktop &lsqb;1-8&rsqb; cambia al desktop specificato

- desktop+1desktop+2desktop-1desktop-2desktop&percnt;2Questi comandi girano tra i desktops. `desktop&percnt;2`cambia fra un desktop dispari e il prossimo numero pari piú alto. Ciò significa fra 1 e 2 e fra 3 e 4. Questo è utile per emulare "Sú" e "Giú" un una matrice virtuale n*2, la quale viene usata dal pager di KDE Similarmente, `desktop+2` significa "Destra"; `desktop-1`significa "Sinistra".

## Configurazione

kwm può essere configurato usando il Centro di Controllo KDE can be configured using the KDE Control Center (avvio applicationi >Centro di Controllo KDE). Apri l'albero delle Finestre per lavorare con le varie opzioni di configurazione. Per configurare i desktop virtuali, apri l'albero delle Applicazioni e scegli Panello.

Per coloro che preferiscono editare un file di configurazione, questa sezione spiega le opzioni nel file `kwmrc`, localizzato in /.kde/share/config.

### kwmrc

Il file di configurazione kwmrc è diviso nelle seguenti sessioni:

- Tasti

- Generale

- Sessione

- Desktop

#### &lsqb;Tasti&rsqb;

Questa sezione controlla il dislocamento dei tasti di controllo finestre nella barra del titolo. Essa contiene linea nella formaTasto X=nome-tastodove X è una lettera A-F, e nome-tasto è uno fra `Menu, Appiccicato, Iconifica, Ingrandisci, Chiudi, Spento`. I Tasti A, B, e C stanno sulla parte sinistra della barra del titoli, e D, E, e F stanno sulla parte destra.

#### &lsqb;Generale&rsqb;

Questa sezione definisce una serie di svariati comandi di configurazione:

- AutoRaise=valore (in millisecondi) Se la `FocusPolicy` è settata come `FocusFollowMouse`, questo comando determina il ritardo tra il tempo nel quale una finestra acquista il focus quando il mouse vi entra dentro e il tempo nel quale una finestra viene sollevata in primo piano.

- BorderSnapZone=valore (in pixels) Quando l'utente sta posizionando la finestra, e quando uno dei bordi della finestra si avvicina al bordo del desktop, la finestra scatterà verso il bordo. Il valore determina la vicininza che la finestra deve avere verso il bordo del desktop in modo che essa si adatti al bordo.

- Button3Grab=`on&verbar;off`Quando è `off`, le "window operations" che riguardano il tasto destro del mouse sono disabilitate di modo che le finestre di applicazione possano ricevere eventi dal tasto destro del mouse.

- ControlTab=`on&verbar;off` Quando è `on`, permette di premere `Ctrl+Tab` per girare tra i desktop virtuali.

- ElectricBorder=valore (in millisecondi)Quando hai piú di un desktop, l'opzione ElectricBorder ti permette di muoverti fra loro muovendo il mouse sul bordo dello schermo. Il valore specifica la lunghezza di tempo durante la quale devi tenere il puntatore del mouse posizionato sul bordo prima che il desktop cambi. Un valore di -1 disabilita questa caratteristica.

- ElectricBorderMovePointer=`off&verbar;on` Se l'opzione `ElectricBorder` è `on`, cambiala su `on` in modo che il mouse venga posizionato nel centro dello schermo quando cambia desktop.

- FocusPolicy=`ClickToFocus&verbar;FocusFollowMouse` `ClickToFocus` richiede che l'utente clicci con il mouse in una finestra per ottenere la window focus. `FocusFollowMouse` da sempre il focus alla finestra sotto il mouse.

- MaximizeOnlyVertically=`off&verbar;on` Quando è `on`, questo settaggio ridimensiona l'ingrandimento della finestra alla sola direzione verticale.

- ResizeAnimation=`on&verbar;off` Quando è `on`, l'ingrandimento e il ridimensionamento delle finestre richiede un'animazione grafica.

- RstartProtocol=`...` (il default è"`rstart -v`")

- ShapeMode=`off&verbar;on` Quando ShapeMode è `on`, kwm usa delle pixmaps definite dall'utente per i bordi della finestra invece del default (guarda sotto).

- ShapePixmapTop=pixmap ShapePixmapBottom=pixmap ShapePixmapLeft=pixmap ShapePixmapRight=pixmap ShapePixmapTopLeft=pixmap ShapePixmapTopRight=pixmap ShapePixmapBottomLeft=pixmap ShapePixmapBottomRight=pixmap Queste opzioni specificano quali immagini vengono visualizzate sulle ripettive parti/angoli delle finestre quando `ShapeMode` è`on`. pixmap dovrebbe essere il nome di un file pixmap (.xpm) che deve esser situato in share/apps/kwm/pics.

  Le sorgenti del kwm includono la sottodirectory "images", la qualecontiene un esempio per le estensioni shape.

- TitlebarLook=`shaded&verbar;plain&verbar;pixmap` Questo settaggio determina l'apparenza della barra titoli della finestra. Scegli `pixmap` per far si che kwm visualizzi nella barra titoli un immagini definita dall'utente, come specificato dai seguenti comandi.

- TitlebarPixmapActive=pixmap TitlebarPixmapInactive=pixmapQueste opzioni specificano quali immagini vengono visualizzate nelle barre titoli delle finestre attive e inattive, rispettivamente, quando TitleBarLook è`pixmap`.

- TitleAnimation=valore (in millisecondi) Abilitando TitleAnimation dice a kwm di far si che titoli lunghi nelle finestre (troppo lunghi per stare nell'area colorata della barra titoli) di muoversi indietro e avanti in modo da essere visibile. Il valore specifica la velocità dell'animazione. Settandola a 0 si disabilita l'animazione.

- TitlebarDoubleClickCommand=`winMaximize&verbar;winShade&verbar;winMove&verbar; winResize&verbar;winRestore&verbar;winIconify&verbar;winClose&verbar;winSticky&verbar;winOperations` Questa opzione ti permette di specificare quale modalità di utilizzo delle finestre dovrebbe essere usata quando l'utente clicca due volte sulla barra titoli.

- TraverseAll=`on&verbar;off` Quando è `on`, l'operazione `Alt-tab` passa attraverso tutte le finestre in tutti i desktops. Quando è `off`, `Alt-tab` passa soltanto attravero le finestre del desktop attivo.

- WindowMoveType=`Opaque&verbar;Transparent` Questa opzione controlla il feedback virtuale che avviene mentre l'utente muove una finestra da un posto all'altro del desktop. `Transparent` visualizza soltanto il bordo della finestra durante lo spostamento, mentre `Opaque` visualizza la finestra intera.

- WindowsPlacement=`cascade&verbar;interactive&verbar;manual&verbar;random&verbar;smart` Questa opzione determina il modo nel quale kwm posiziona le finestre nel desktop quando sono aperte per la prima volta. `manual` permette l'utente di posizionare le finestre. `interactive` ha bisogno di un ulteriore valore di percentuale come questo:`WindowsPlacement=interactive,25`Con l'`interactive` placement, kwm usa l'algoritmo `smart` placement per posizionare la finestra a meno che il posizionamento sovrapponga altre finestre piú della percentuale specificata, nel qual caso il `manual` placement viene usato per permettere all'utente di posizionare la finestra. La percentuale può essere maggiore di 100. Le altre opzioni permettono a kwm di posizionare la finestra.

- WindowSnapZone=valore (in pixels) Quando l'utente posiziona una finestra, e quando uno dei bordi della finestra si avvicina al bordo di un'altra finestra, il bordo della finestra che viene posizionata si attaccherà al bordo dell'altra finestra. valore determina quanto deve essere vicina la finestra per attaccarsi al bordo dell'altra finestra.

#### <&lsqb;Session&rsqb;

- proxyignore=`xemacs,xterm,...,` Lista delimitata da virgole di applicazioni (non-KDE) delle quali lo stato dell'applicazioni (window properties) non dovrebbe essere salvato quando l'utente termina la sessione. Lista il nome delle applicazioni con qualsiasi argomento di linea di comando.

#### &lsqb;Desktop&rsqb;

Questa sezione definisce il numero di desktop virtuali, i loro nomi, e le posizioni. Contiene le seguenti righe:

- NumberOfDesktops=valore Specifica il numero dei desktop virtuali. Al momento,kwm supporta fino a 8 desktop.

- Desktop&num;&lsqb;C&rsqb;=nome Specifica il nome del Desktop &num;, per esempio,`Desktop1&lsqb;C&rsqb;=Uno`I Desktop sono numerati 1-8.

- Desktop&num;Region=geometria Specifica la geometria del Desktop &num;; per esempio,`Desktop1Region=101+0+923+722`

## Sound Events

KWM abilita una coppia di eventi sonori, i quali possono essere usati in un modulo del sistema sonoro. Al momento sono implementati i seguenti eventi sonori:

- 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

## Frequently Asked Questions

### Perché dovrei usare kwm?

Ho passato parecchi giorni ad imparare a configurare 10 differenti window mangers. Ora che ho 678 linee di file di configurazione che fanno esattamente ciò che voglio, siete arrivati voi e volete buttare via il mio window manager!

Risposta: Non dovresti, è soltanto una liberaofferta. KDE supporta tutti i correnti window managers, ma per avere pieni benefici sarebbe meglio che tu usassi kwm. Dai un'occhiata alla lista delle Caratteristiche

### Perché non posso definire nuove scorciatoie per lanciare le applicazioni?

Risposta: Perché questo non è lo scopo del window manager. Usa `KGlobalShortcut` per farlo.

### Perché kwm somiglia cosí tanto a Windows 95?

Risposta: Ooops, davvero? Fammi vedere.... (Matthias sta cercando di trovare qualcuno che abbia Windows 95 perché lui non ha Windows 95 su nessuno dei suoi computer, ummmm nessuno qui ha Windows 95. Bene, Allora prendiamo una vecchia distribuzione di Linux e installiamo fvwm95-2.....) No, non mi sembra sia proprio cosí. KWM appare molto piú grazioso e offre molta piú funzionalità di base nella gestione delle finestre.

### E` possibile aggiungere estensioni KDE ad altri window managers?

Risposta: Si, si può. Devi soltanto guardare dentro `kwm.h` e `kwm.C` da `libkdecore` ed estendere il tuo preferito window manager per rispondere correttamente a queste richieste. E` anche possibile implementare un "object request broker" in assembler x86. E` solo una questione di rapporto "lavoro necessario/risultati"

### kwm supporta windows ombreggiate come su OpenStep?

Risposta: Si.

## Epilogo

### Autori

`Matthias Ettrich` - Designer e autore

`Stephen Schaub` - Editore

`Kalle Dalheimer` - Copy editor

`Robert Williams` - SGML editor

Traduzione in italiano a cura di `Francesco Lotti`