Per chi non lo conoscesse già, dwm (Dynamic Window Manager) è un WM (Window Manager, cioè un gestore di finestre) minimalissimo, standalone (è scritto tutto su un unico file) e scritto interamente in C.
dwm lo troviamo anche nei repository di Debian, ma è una versione vecchia e non aggiornata.
Come ben sapete Debian sceglie una determinata versione di un programma e non la cambia, ne effettua solo gli aggiornamenti di sicurezza, infatti non è una rolling release come Arch Linux, e questo a mio parere è un bene. Quindi se vogliamo la versione aggiornata di un determinato programma dobbiamo compilarcelo da sorgente. Niente di più semplice se non fosse per il fatto che su Debian Jessie (versione
a differenza di Wheezy (versione 7) abbiamo dei problemi con una dipendenza fondamentale, cioè suckless-tools.
Molti di voi staranno già pensando di installare il pacchetto deb di Wheezy su Jessie, e fidatevi non c'è niente di più sbagliato. O meglio, installiamo si tale pacchetto, ma non con la procedura convenzionale. Per prima cosa conviene installare il pacchetto p7zip in modo da poter estrarre il contenuto del file deb. Dopo l'estrazione ci ritroveremo un file chiamato data.tar ed è il contenuto di suckless-tools completo di eseguibili, man pages e tutto il resto, e dobbiamo copiarlo così com'è nella root del sistema, in modo che APT non rileva la sua presenza e non ci ritroviamo davanti un conflitto di dipendenze che non risolveremo mai.
Per prima cosa installiamo le dipendenze di DWM digitando da root i seguenti comandi:
# apt-get install gcc make dbus-x11 git git-core xorg libxinerama-dev libx11-dev libxft-dev
Come avete notato non ho installato suckless-tools, proprio perchè quello contenuto in Debian Jessie da dei problemi, ed abbiamo bisogno della versione 38 del pacchetto. In base alla vostra architettura scaricate il file suckless-tools qui sotto.
Download per amd64: You are not allowed to view links.
Register or
LoginDownload per armel: You are not allowed to view links.
Register or
LoginDownload per armhf: You are not allowed to view links.
Register or
LoginDownload per i386: You are not allowed to view links.
Register or
LoginDownload per ia64: You are not allowed to view links.
Register or
LoginDownload per kfreebsd-amd64: You are not allowed to view links.
Register or
LoginDownload per kfreebsd-i386: You are not allowed to view links.
Register or
LoginDownload per mips: You are not allowed to view links.
Register or
LoginDownload per mipsel: You are not allowed to view links.
Register or
LoginDownload per powerpc: You are not allowed to view links.
Register or
LoginDownload per s390: You are not allowed to view links.
Register or
LoginDownload per s390x: You are not allowed to view links.
Register or
LoginDownload per sparc: You are not allowed to view links.
Register or
LoginNella home del vostro utente create una cartella chiamata suckless-tools, e scaricate al suo interno il file deb dell'architettura interessata.
Sempre da utente scompattiamo il file deb con p7zip digitando:
$ 7z x nomefile.deb
Dove al posto di nomefile.deb inseriremo il nome del pacchetto deb da scompattare. Dopo l'estrazione ci ritroveremo davanti un archivio chiamato data.tar . Scompattiamolo (sempre con i privilegi di utente) con il comando:
$ tar -xvf data.tar
Dopo la scompattazione di data.tar ci ritroveremo una cartella chiamata "usr" con svariate sottocartelle al suo interno. Così com'è, con i permessi di root (magari con sudo) copiamola nella root con il seguente comando:
# cp -r usr /
Adesso che abbiamo copiato la vecchia versione di suckless-tools senza creare conflitti di dipendenze, posiamo procedere al download del sorgente di dwm tramite git. Usciamo quindi dall'utente root digitando
# exit
e spostiamoci nella home dell'utente, digitando
$ cd
Procediamo quindi al download del sorgente di dwm, digitando quindi:
$ git clone git://suckless.org/dwm
Dopo aver impartito questo comando ci ritroveremo nella home la cartella dwm con all'interno il suo codice sorgente.
Tra i vari file che compongono il codice sorgente ce ne sta uno in particolare, chiamato config.def.h .
Questo file contiene la configurazione di dwm, compresi gli hotheys da utilizzare, i tab, ecc...
Dobbiamo effettuare una copia di quel file digitando da utente
$ cp config.def.h config.h
Dopo aver effettuato la copia del file di configurazione, possiamo procedere a fare una prova di compilazione, per vedere se l'installazione andrà a buon fine, digitando quindi il comando
$ make
Se make non ci restituisce errori, possiamo procedere all'installazione di dwm digitando da root (o da sudo)
# make clean install
Finalmente abbiamo installato dwm, ma adesso che facciamo per eseguirlo? Dobbiamo dire al file
.xinitrc
quale WM lanciare nel caso venga digitato il comando
$ startx
Da utente digitiamo quindi questo comando
$ cd ; echo "exec dwm" > .xinitrc
In questo modo la shell si sposterà nella home dell'utente in uso e permetterà l'esecuzione di dwm dopo la digitazione del comando
$ startx
E se volessimo disabilitare il fastidiosissimo screensaver scuro che compare in caso di inattività del PC? Niente di più semplice!!!
Ricorriamo sempre al nostro amato file <code>.xinitrc</code> presente nella nostra home, e modifichiamolo in questo modo:
xset s off &
xset -dpms &
exec dwm
Et voilà, il nostro screensaver è sparito.
Un'altra funzione comoda potrebbe essere quella di impostare uno shortcut (scorciatoia da tastiera) per chiudere xorg al momento del bisogno, magari quando dobbiamo aggiornare dwm.
Per fare questo con i permessi di root dobbiamo editare il file
/etc/default/keyboard
Il contenuto del file sarà simile se non proprio uguale a questo:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="it"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
L'unica cosa che dovete fare è modificare la riga <code>XKBOPTIONS</code> in questo modo:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="it"
XKBVARIANT=""
XKBOPTIONS="terminate:ctrl_alt_bksp"
BACKSPACE="guess"
Adesso per chiudere xorg e tornare alla tty basta digitare contemporaneamente lo shortcut
[CTRL]+[ALT]+[BACKSPACE]
(Per chi non lo sapesse il BACKSPACE è il tasto per cancellare le parole digitate, per intenderci è quello sopra il tasto INVIO, o ENTER)
Anche se in realtà esiste uno shortcut interno di dwm per killare il WM, ed è appunto:
[SHIFT]+[ALT]+[Q]
Adesso mettiamo di voler aggiornare dwm alla sua ultima versione. Per prima cosa chiudiamo xorg con lo shortcut appena creato, quindi digitiamo
[CTRL]+[ALT]+[BACKSPACE]
poi entriamo nella cartella del sorgente di dwm che in precedenza abbiamo posizionato nella home dell'utente. Non l'avete eliminata vero? In caso contrario potete riscaricare il sorgente aggiornato sempre con il comando
$ git clone git://suckless.org/dwm
Se non avete eliminato la cartella dwm, posizioniamoci al suo interno e digitiamo con i permessi di utente:
$ git pull origin
Se il comando ci restituisce il messaggio
Already up-to-date
vuol dire che il repository è aggiornato, in caso contrario dobbiamo ripetere la procedura di compilazione precedentemente trattata, effettuando nuovamente la copia del file
config.def.h
Passiamo adesso alle funzionalità ed all'uso di dwm.
Per prima cosa possiamo notare in alto dei numeri che vanno da 1 a 9, e sono dei desktop virtuali chiamati TAG, dove possiamo eeguire dei programmi (grafici e non) al suo inteno. Per spostarci all'interno dei tag possiamo utilizzare il tasto sinistro del mouse o utilizzando la tastiera digitando:
[ALT]+[1]
[ALT]+[2]
[ALT]+[3]
[ALT]+[4]
[ALT]+[5]
[ALT]+[6]
[ALT]+[7]
[ALT]+[8]
[ALT]+[9]
Tutto questo in base al TAG dove ci vogliamo spostare.
Ricordiamoci che dwm è nato proprio per essere utilizzato esclusivamente da tastiera, limitando quindi l'uso del mouse, e personalmente lo trovo molto comodo. Tra l'altro consuma pochissimo rispetto a tutti gli altri WM, e soprattutto è utilizzabile.
Ha tre modalità di visualizzazione:
- Tiled, a mattonelle, ci permette di eseguire più programmi sulla stessa finestra, dividendo anche il TAG in quattro parti. Utilissimo nel caso in cui dobbiamo programmare, controllare i processi in corso, il consumo di batteria, tutto contemporaneamente.
- Monocle, possiamo visualizzare a tutto schermo il programma che più ci interessa.
- Floating, ci permette di impostare manualmente la grandezza delle finestre.
Il terminale predefinito si chiama "st" e lo possiamo lanciare con il comando
[SHIFT]+[ALT]+[ENTER]
Lo so, è orribile come terminale, infatti personalmente installo <code>roxterm</code>, digitiamo quindi da root
# apt-get install roxterm
L'unico difetto di roxterm è che non è possibile utilizzare gli shortcut per il taglia, copia ed incolla. Bisogna farlo per forza con il mouse.
Per lanciare un'applicazione con dwm ci viene in soccorso dmenu, un lanciatore di programmi presente in svariati WM minimali. Lo richiamiamo quindi con il comando
[ALT]+[P]
Una volta richiamato dmenu ci basta scrivere il nome del programma da lanciare (appariranno dei suggerimenti sulla barra di ricerca di dmenu) e premere ENTER.
Il tutorial di dwm ci propone un disegno abbastanza chiaro di come è composta una finestra tipo, quindi ve la riporto e la commento:
+------+----------------------------------+--------+
| tags | title | status +
+------+---------------------+------------+--------+
| | |
| | |
| | |
| | |
| master | stack |
| | |
| | |
| | |
| | |
+----------------------------+---------------------+
In alto a sinistra troviamo i TAGS che abbiamo trattato in precedenza, TITLE invece corrisponde al nome del programma lanciato. STATUS invece presenza generalmente la dicitura dwm con la relativa versione.
Analizziamo invece cosa sono MASTER e STACK.
MASTER è il programma lanciato in primo piano, infatti su TITLE troveremo il titolo di tale programma. STACK invece è il secondo programma lanciato sullo stesso TAG. Noi lavoreremo sempre ed esclusivamente sul programma MASTER.
Per switchare da MASTER a STACK basta digitare lo shortcut
[ALT]+[INVIO]
Ritorniamo alle visualizzazioni TILED, MONOCLE e FLOATING.
Il disegno sopra riportato è un esempio lampante della visualizzazione TILED con due programmi in esecuzione.
Per la visualizzazione TILED utilizzeremo lo shortcut:
[ALT]+[T]
Per la visualizzazione MONOCLE utilizzeremo lo shortcut:
[ALT]+[M]
Ed infine per la visualizzazione FLOATING utilizzeremo lo shortcut:
[ALT]+[F]
Mettiamo di voler spostare un programma da un TAG ad un altro, ad esempio dal TAG 1 al TAG 9. Posizioniamoci quindi sul TAG 1 (miraccomando il programma deve essere in MASTER e non in STACK] e digitiamo lo shortcut:
[SHIFT]+[ALT]+[9]
Se siamo invece nella modalità FLOATING e vogliamo ridimensionare la grandezza di un programma dobbiamo posizionarci sul lato del programma stesso e digitare:
[ALT]+[SX]
SX è il tasto sinistro del mouse, mentre DX è quello destro.
Con quest altro shortcut possiamo spostare la finestra del programma che vogliamo:
[ALT]+[DX]
E se volessimo chiudere un programma in esecuzione? Esiste uno shortcut anche per questo, ed è:
[SHIFT]+[ALT]+[C]
Nella modalità tiled possiamo visualizzare le finestre sia orizzontalmente che verticalmente, e lo facciamo con questi due comandi:
[ALT]+[I]
ed
[ALT]+[D]
Niente di più semplice, sembrava più complicato no?
Ah dimenticavo, per non avere errori con tutte le applicazioni grafiche che andrete ad installare, dobbiamo mettere il pacchetto dbus-X11 (la X è maiuscola) quindi diamo il comando:
# apt-get install dbus-X11
Per informazioni in più su questo fantastico Window Manager vi riporto al sito ufficiale ed al tutorial completo presente sul sito stesso.
Sito Ufficiale di DWM: You are not allowed to view links.
Register or
LoginTutorial Ufficiale: You are not allowed to view links.
Register or
LoginFilosofia del progetto suckless, più che condivisibile: You are not allowed to view links.
Register or
LoginFonte: You are not allowed to view links.
Register or
Login