Dynamic window manager

Versione del 24 feb 2010 alle 13:17 di Clamiax (discussione | contributi) (Correggo, estendo e sposto il paragrafo Caratteristiche.)

Template:Infobox Software

DWM (Dynamic Window Manager) è un window manager dinamico, leggero ed efficiente scritto in C per il sistema grafico X Window System. É generalmente considerato il fratello più piccolo di wmii sebbene non implementi gran parte delle sue funzionalità.

dwm, a differenza di wmii, non è basato su nulla che abbia a che fare con Plan 9. Una volta compilato, dwm è composto da un singolo file binario di dimensione generalmente inferiore ai 30K.

A partire da Marzo 2009 è stato avviato un progetto parallelo che si pone l'obiettivo di portare dwm su piattaforma win32.

Caratteristiche

Le caratteristiche principali sono le seguenti:

  • Supporto per i tag; meccanismo efficiente e molto più flessibile dei comuni desktop
  • Disposizione automatica dei client di X (finestre), in layout diversi da floating
  • Estrema velocità e affidabilita grazie al meccanismo config.h, che lo rende anche molto sicuro
  • Barra di stato dinamica e aggiornabile a runtime
  • Basato aggressivamente su combinazioni da tastiera (ma anche in buona parte sul mouse)
  • Estensibile attraverso una significativa quantità di patch messe a punto dalla comunità e disponibili sul sito ufficiale del progetto
  • Il codice scritto secondo la filosofia Suckless lo rende un WM estremamente portabile

Queste e molti altri fattori più e meno tecnici lo rendono un WM di qualità.

Tag

Dwm utilizza, al posto dei classici desktop, un concetto molto più flessibile ed efficiente chiamato tag. Nelle prime implementazioni questi erano mantenuti attraverso una lista di stringhe ognuna avente il nome di ogni tag (ad esempio www, work, dev). Successivamente è stato scelto di utilizzare un'apposita tagmask, un intero di 32 bit, in cui ogni bit rappresenta appunto un tag semplificando e rendendo molto più efficiente il sistema. A tutt'oggi resta questo il meccanismo di gestione dei tag in uso.

Barra di stato

Qualora questa non sia stata disabilitata in fase di configurazione, dwm fornisce una barra (posta in alto di default) in cui vengono mostrate alcune informazioni tra cui:

  • Nome del tag corrente
  • Numero di client aperti nel tag corrente
  • Layout in uso
  • Nome e layout del client attivo
  • Informazioni aggiuntive

Le informazioni aggiuntive rappresentano l'unica parte modificabile in fase di esecuzione in quanto queste vengono lette attraverso a runtime. Nelle prime versioni queste erano lette direttamente dallo standard input; oggi sono ottenute attraverso il nome della finestra root di X. Modificando tali dati la barra viene immediatamente aggiornata con le nuove informazioni, le quali possono essere generate come si preferisce (generalmente attraverso uno script o direttamente in uno dei file di inizializzazione di X11, come ~/.xinitrc). Spesso si utilizzano dati come l'ora, la data, il livello di carico medio e altre informazioni utili. La barra ha l'abilità di essere nascosta in fase di esecuzione attraverso una combinazione di tasti (di default meta-b, dove meta spesso corrisponde al tasto Alt) e allo stesso modo può essere ripristinata.

Configurazione

La configurazione si effettua esclusivamente attraverso la modifica diretta del codice sorgente, cosa che lo rende molto più efficiente e sicuro. Un apposito file "di configurazione" chiamato config.h consente di personalizzare alcune caratteristiche come le combinazioni di tasti, font, colori, tag, e così via. Una qualsiasi modifica alla configurazione richiede necessariamente la ricompilazione di dwm. Questo ed altri fattori fanno in modo che il WM, non avendo codice di supporto per file di configurazione a runtime e altre caratteristiche tipiche di alcuni wm, non ecceda i 30K di codice. Inoltre la classe di utenti è ristretta ai programmatori e utenti avanzati, prevenendo così domande banali da utenti inesperti sulla lista del progetto Suckless.

Curiosità

  • È il window manager personale di Anselm R. Garbe (sviluppatore di wmii e inventore di dwm).

Collegamenti esterni