View previous topic :: View next topic |
Author |
Message |
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Tue Aug 08, 2006 2:05 pm Post subject: [HOW-TO] DWM -- Dynamic Window Manager |
|
|
Salve, sono nuovo del forum e uso linux da circa 1 anno. Ho avuto grandi soddisfazioni da questo SO come server, ma pochissime come desktop. Ho notato che gentoo ha sviluppato un X modulare Xorg 7... quali sono le sue peculiarita'? E' piu' leggero del server X delle altre distribuzioni?
Inoltre sono rimasto davvero molto deluso per quanto riguarda i wm. Ne ho testati parecchi (gnome,kde, fluxbox, xfce) ma non sono riuscito fino a poco tempo fa a trovare uno davvero adatto a me. Qualcosa di molto personalizzabile, semplice, veloce, pulito e leggero. Ho conosciuto da poco tempo il wm dwm, che sembra addirittura piu' leggero di wmii.
Putroppo pero' sono un po' ignorante per quanto riguarda il C++ , e non so come modificare i sorgenti del winodw manager.
Mi chiedo: c'e' qualcuno che usa questo wm e che mi puo' aiutare?
grazie
ciao
ho editato il titolo visto che ho spostato il thread nel forum di documentazione
-- lavish |
|
Back to top |
|
|
silvius Guru
Joined: 16 May 2006 Posts: 364
|
Posted: Tue Aug 08, 2006 2:11 pm Post subject: Re: Xorg e dwm |
|
|
neurolepsia wrote: | Salve, sono nuovo del forum e uso linux da circa 1 anno. Ho avuto grandi soddisfazioni da questo SO come server, ma pochissime come desktop. Ho notato che gentoo ha sviluppato un X modulare Xorg 7... quali sono le sue peculiarita'? E' piu' leggero del server X delle altre distribuzioni?
Inoltre sono rimasto davvero molto deluso per quanto riguarda i wm. Ne ho testati parecchi (gnome,kde, fluxbox, xfce) ma non sono riuscito fino a poco tempo fa a trovare uno davvero adatto a me. Qualcosa di molto personalizzabile, semplice, veloce, pulito e leggero. Ho conosciuto da poco tempo il wm dwm, che sembra addirittura piu' leggero di wmii.
Putroppo pero' sono un po' ignorante per quanto riguarda il C++ , e non so come modificare i sorgenti del winodw manager.
Mi chiedo: c'e' qualcuno che usa questo wm e che mi puo' aiutare?
grazie
ciao |
Da quello che ho capito io è stato fatto più che altro per una miglior leggibilità e facilità di sviluppo per chi deve lavorarci sopra, dopo chiaro che anche gli utenti avranno qualcosa di più funzionale nel tempo.
Per il wm, non ho provato dwm, ma tra i diversi che ho provato, anche su hw datato, è fluxbox il quale soddisfa le tue richieste: molto personalizzabile, semplice, veloce, pulito e leggero.
Il primo approccio non è il massimo, ma poi va tutto per il meglio.
Saluto |
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Tue Aug 08, 2006 2:34 pm Post subject: Re: Xorg e dwm |
|
|
neurolepsia wrote: | Ho notato che gentoo ha sviluppato un X modulare Xorg 7... quali sono le sue peculiarita'? E' piu' leggero del server X delle altre distribuzioni? |
Gentoo non ha sviluppato Xorg 7 modulare, ma il team di sviluppo di Xorg.
Xorg 7 è uguale su tutte le distribuzioni linux, e gentoo non ha nessuna peculiarità in più, il server X11 a parità di major/minor release è uguale per tutte le distro (ci mancherebbe altro).
@lavish è un evangelista di dwm e WMII, credo sia l'utente del forum maggiormente indicato per questi 2 wm _________________ Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe
all my contents are released under the Creative Commons Licence by-nc-nd 2.5 |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Tue Aug 08, 2006 2:43 pm Post subject: Re: Xorg e dwm |
|
|
neurolepsia wrote: | Ho conosciuto da poco tempo il wm dwm, che sembra addirittura piu' leggero di wmii.
Putroppo pero' sono un po' ignorante per quanto riguarda il C++ , e non so come modificare i sorgenti del winodw manager.
Mi chiedo: c'e' qualcuno che usa questo wm e che mi puo' aiutare? |
In un recente sondaggio é emerso che ben il 20% dei gentoo italian moderators é passato da wmii a dwm. Ma domani va in ferie.
Comunque mi state incuriosendo, se oggi riesco a uscire dal lavoro a un ora normale lo provo....
Quanto a xorg modulare, la scelta é stata fatta dal team di sviluppo (come hanno già detto), la motivazione alla base é che così é piàu mantenibile e dovrebbe incutere meno timore ai nuovi sviluppatori che vogliono collaborare al progetto. _________________ Ciao da me! |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 08, 2006 3:22 pm Post subject: |
|
|
Oddio leggendo il titolo del thread mi sono venute le palpitazioni!
Io uso dwm dal giorno 0. Concordo con te nel dire che sia leggero e pulito (sono 1800 righe di C).. posso farti una piccola introduzione esaustiva (piccola e esaustiva, perchè il WM è minimale ).
2011/07/31: dopo una segnalazione di un utente, tengo a precisare che il thread in questione e' totalmente outdated, non fate riferimento ad esso
.AGGIORNAMENTI
- 2007/01/26 - config.h e scripts vari *non* mantenuti.
- 2006/09/05 - dwm-1.3, dmenu-0.7:
aggiornamento versioni
- 2006/09/03 - dwm-1.2, dmenu-0.6:
aggiornamento versioni
riscrittura dei commenti in config.h
formattazione migliore
- 2006/08/22 - dwm-0.9, dmenu-0.4:
aggiornamento versioni
sistemati errori vari
.INTRO
dwm[1] è nato come il WM personale di Anselm Garbeam ( main devel di wmi(i)[2] ). Utilizza parte di codice di wmii ma a differenza di questo ha molte meno features ed è decisamente più piccolo, pur mantenendo un layout dinamico[3]
Si edita da sorgente in modo da essere estremamente sicuro e per mantenere la base degli utenti "ristretta" (wmii era diventato troppo complesso a causa delle richieste di ulteriori features o layouts da parte della comunità).
Una volta compilato, dwm è composto da un singolo file binario.
Ecco per i curiosi uno screenshot:
http://www.minimalblue.com/ftp/public/images/screenshots/dwm-20060827-1.png
.DOWNLOAD
i sorgenti sono disponibili qui:
http://10kloc.org/download/
oppure è possibile scaricare direttamente il repository HG (emerge mercurial)
La prima volta che fate il fetch basterà eseguire: Code: | hg clone http://10kloc.org/cgi-bin/hgwebdir.cgi/dwm |
Successivamente, per mantenere aggiornata la dir dei sorgenti, basterà dare (all'interno della dir): Code: | hg pull && hg update |
.CONFIGURAZIONE
mentre con le prime versioni di dwm era necessario editare ogni singolo file sorgente, ora c'è un unico file di header per la configurazione globale.
Una volta entrati nella dir dei sorgenti, vedremo:
config.arg.h è il file di configurazione usato da Anselm (arg è il suo nick)
config.default.h è, come si evince facilmente, un file di configurazione standard
Come si può capire dal makefile (config.mk), il file che verrà usato per la compilazione sarà config.h, quindi, possiamo partire ad editare la nostra configurazione in questo modo: Code: | cp config.default.h config.h |
Mostro qui di seguito il mio file di configurazione, prima in versione "vanilla" e poi commentato:
- config.h vanilla:
Code: |
/*
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
* See LICENSE file for license details.
*/
#define TAGS \
const char *tags[] = { "trm", "web", "grp", "snd", "msc", NULL };
#define DEFMODE dotile /* dofloat */
#define FONT "-*-snap-*-*-*-*-*-*-*-*-*-*-*-*"
#define SELBGCOLOR "#668bca"
#define SELFGCOLOR "#ffffff"
#define NORMBGCOLOR "#ffffff" /* "#c5d2e7" */
#define NORMFGCOLOR "#668bca"
#define STATUSBGCOLOR "#ffffff"
#define STATUSFGCOLOR "#668bca"
#define FLOATSYMBOL "><"
#define TILESYMBOL "<>"
#define MODKEY Mod4Mask
#define MASTERW 60 /* percent */
#define KEYS \
static Key key[] = { \
/* modifier key function arguments */ \
{ MODKEY|ShiftMask, XK_Return, spawn, { .cmd = "exec urxvtc" } }, \
{ MODKEY, XK_Tab, focusnext, { 0 } }, \
{ MODKEY|ShiftMask, XK_Tab, focusprev, { 0 } }, \
{ MODKEY, XK_Return, zoom, { 0 } }, \
{ MODKEY, XK_m, togglemax, { 0 } }, \
{ MODKEY|ShiftMask, XK_1, tag, { .i = 0 } }, \
{ MODKEY|ShiftMask, XK_2, tag, { .i = 1 } }, \
{ MODKEY|ShiftMask, XK_3, tag, { .i = 2 } }, \
{ MODKEY|ShiftMask, XK_4, tag, { .i = 3 } }, \
{ MODKEY|ShiftMask, XK_5, tag, { .i = 4 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 0 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 1 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 2 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, { .i = 3 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \
{ MODKEY, XK_0, viewall, { 0 } }, \
{ MODKEY, XK_space, togglemode, { 0 } }, \
{ MODKEY, XK_1, view, { .i = 0 } }, \
{ MODKEY, XK_2, view, { .i = 1 } }, \
{ MODKEY, XK_3, view, { .i = 2 } }, \
{ MODKEY, XK_4, view, { .i = 3 } }, \
{ MODKEY, XK_5, view, { .i = 4 } }, \
{ MODKEY|ControlMask, XK_1, toggleview, { .i = 0 } }, \
{ MODKEY|ControlMask, XK_2, toggleview, { .i = 1 } }, \
{ MODKEY|ControlMask, XK_3, toggleview, { .i = 2 } }, \
{ MODKEY|ControlMask, XK_4, toggleview, { .i = 3 } }, \
{ MODKEY|ControlMask, XK_5, toggleview, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_q, quit, { 0 } }, \
{ MODKEY, XK_p, spawn, { .cmd = "exec `dmenu </tmp/.proglist`" } }, \
};
/* Query class:instance:title for regex matching info with following command:
* xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/{ printf("%s\n",$2) }' */
#define RULES \
static Rule rule[] = { \
/* class:instance:title regex tags regex isfloat */ \
{ "Firefox.*", "web", False }, \
{ "Gimp.*", "grp", True}, \
{ "MPlayer.*", NULL, True }, \
{ "aumix.*", NULL, True }, \
{ "xboard.*", "msc", True }, \
{ "Muse.*", "snd", True }, \
};
|
- config.h commentato:
Code: |
/*
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
* See LICENSE file for license details.
*/
/* le tags sono i nomi delle varie views.
* una views può essere paragonata ad un workspace.
* si possono usare numeri, ma anche stringhe
*/
#define TAGS \
const char *tags[] = { "trm", "web", "grp", "snd", "msc", NULL };
/* definisce la modalità di partenza del WM:
* dotile è la modalità "managed
* dofloat è la modalità a finestre float a cui siamo abituati
*/
#define DEFMODE dotile /* dofloat */
/* definisce il font usato */
#define FONT "-*-snap-*-*-*-*-*-*-*-*-*-*-*-*"
/* definisce i colori:
*
* SELBGCOLOR : background selezione
* SELFGCOLOR : foreground selezione
* NORMBGCOLOR : background area non selezionata
* NORMFGCOLOR : foreground area non selezionata
* STATUSBGCOLOR: background della status bar
* STATUSFGCOLOR: foreground della status bar
*/
#define SELBGCOLOR "#668bca"
#define SELFGCOLOR "#ffffff"
#define NORMBGCOLOR "#ffffff" /* "#c5d2e7" */
#define NORMFGCOLOR "#668bca"
#define STATUSBGCOLOR "#ffffff"
#define STATUSFGCOLOR "#668bca"
/* definisce i simboli grafici che rappresentano
* la modalita' float e la modalita' tiled
*/
#define FLOATSYMBOL "><"
#define TILESYMBOL "<>"
/* definisce il tasto usato come MODKEY.
* Mod4Mask = Mod4 (usualmente il tasto di windows)
* Mod1Mask = Mod1 (Alt)
*/
#define MODKEY Mod4Mask
/* definisce la dimensione in percentuale della
* master coloumn di sinistra
*/
#define MASTERW 60 /* percent */
/* configurazione dei keybindings.
* ogni keybind deve evere questi campi:
* modifier : tasto/i che deve/ono venire premuto/i
* necessariamente
* key : tasto specifico per quella funzione
* function : funzione da eseguire
* arguments: argomento/i della funzione
*/
#define KEYS \
static Key key[] = { \
/* modifier key function arguments */ \
{ MODKEY|ShiftMask, XK_Return, spawn, { .cmd = "exec urxvtc" } }, \
{ MODKEY, XK_Tab, focusnext, { 0 } }, \
{ MODKEY|ShiftMask, XK_Tab, focusprev, { 0 } }, \
{ MODKEY, XK_Return, zoom, { 0 } }, \
{ MODKEY, XK_m, togglemax, { 0 } }, \
{ MODKEY|ShiftMask, XK_1, tag, { .i = 0 } }, \
{ MODKEY|ShiftMask, XK_2, tag, { .i = 1 } }, \
{ MODKEY|ShiftMask, XK_3, tag, { .i = 2 } }, \
{ MODKEY|ShiftMask, XK_4, tag, { .i = 3 } }, \
{ MODKEY|ShiftMask, XK_5, tag, { .i = 4 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 0 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 1 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 2 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, { .i = 3 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \
{ MODKEY, XK_0, viewall, { 0 } }, \
{ MODKEY, XK_space, togglemode, { 0 } }, \
{ MODKEY, XK_1, view, { .i = 0 } }, \
{ MODKEY, XK_2, view, { .i = 1 } }, \
{ MODKEY, XK_3, view, { .i = 2 } }, \
{ MODKEY, XK_4, view, { .i = 3 } }, \
{ MODKEY, XK_5, view, { .i = 4 } }, \
{ MODKEY|ControlMask, XK_1, toggleview, { .i = 0 } }, \
{ MODKEY|ControlMask, XK_2, toggleview, { .i = 1 } }, \
{ MODKEY|ControlMask, XK_3, toggleview, { .i = 2 } }, \
{ MODKEY|ControlMask, XK_4, toggleview, { .i = 3 } }, \
{ MODKEY|ControlMask, XK_5, toggleview, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_q, quit, { 0 } }, \
{ MODKEY, XK_p, spawn, { .cmd = "exec `dmenu </tmp/.proglist`" } }, \
};
/* Query class:instance:title for regex matching info with following command:
* xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/{ printf("%s\n",$2) }' */
/* configurazione delle regole per le classi di client:
* ci sono applicazioni (gimp, mplayer, xfontsel e altri)
* che non possono lavorare correttamentenel tiled layout.
* E' possibile quindi definire quali classi di applicazioni
* verranno lanciate in modalità float e a quale views
* riservarle.
*
* La lista che segue definisce queste regole:
* Firefox: i clients della classe Firefox.* verranno "taggati"
* (cioè verranno eseguiti) nella view "web" in
* modalità non float (cioè il client sarà "managed"
* normalmente secondo il tiled layout)
* Gimp : i clients della classe Gimp.* verranno taggati
* secondo la view attuale (cioè possono essere eseguiti
* in qualsiasi view) e in modalità float
*
* Le restanti regole sono simili alle precedenti.
*/
#define RULES \
static Rule rule[] = { \
/* class:instance:title regex tags regex isfloat */ \
{ "Firefox.*", "web", False }, \
{ "Gimp.*", "grp", True}, \
{ "MPlayer.*", NULL, True }, \
{ "aumix.*", NULL, True }, \
{ "xboard.*", "msc", True }, \
{ "Muse.*", "snd", True }, \
};
|
.COMPILAZIONE E INSTALLAZIONE
se volete a questo punto modificare le CFLAGS, o la PREFIX PATH, basterà editare il makefile config.mk. Ha una sintassi semplicissima e alla portata di tutti, quindi non mi dilungo.
Una volta adattato al nostro gusto, loggatevi come root (o come volete se il prefix è nella vostra home) e date un
Ora dwm è installato nel vostro sistema, enjoy
.EXTRAS
.status script
come avreste sicuramente letto dalla pagina di man di dwm, questo WM visualizza nella status bar, testo dallo standard input.
Io ho creato uno script molto semplice in ~/.dwm/status che visualizza varie informazioni sul mio sistema; in ordine:
- stato di carica
- percentuale di batteria rimanente
- data
- ora
- carico del sistema
Ecco qui lo script:
Code: | #!/bin/sh
# battery's design capacity (mWh)
BATT_DES_CAP=`cat /proc/acpi/battery/BAT0/info |awk '/design\ capacity:/ { print $3 }'`
battery()
{
# remaining capacity (mWh)
batt_rem_cap=`cat /proc/acpi/battery/BAT0/state |awk '/remaining\ capacity/ { print $3 }'`
if [ $batt_rem_cap ] ; then
charge=$((${batt_rem_cap}*100/${BATT_DES_CAP}))
else
echo "NO BATT"
exit
fi
# state
case `sed -n 's/charging state: *\(.*\)$/\1/p' /proc/acpi/battery/BAT0/state` in
charged)
charge_type="=";;
charging)
charge_type="+";;
discharging)
charge_type="-";;
esac
echo "${charge_type}${charge}%"
}
temp()
{
echo `cat /proc/acpi/thermal_zone/THM0/temperature | awk '{ print $2 }'`
}
while true
do
echo `battery` `temp`^C `date '+%x %H:%M'` `uptime | sed 's/.*://; s/,//g'`
sleep 3
done | dwm |
Per farlo funzionare correttamente, in ~/.xinitrc:
Code: | #!/bin/sh
exec $HOME/.dwm/status |
Un altro modo per visualizzare informazioni sulla barra è utilizzare conky
In questo modo, lo ~/.xinitrc diventa:
.dmenu
una splendida cosa che c'era in wmii e che mi è mancata passando a dwm, era un menu per lanciare applicazioni. Ero costretto inizialmente a farle partire da terminale o creare dei keybindings per ogni app (M-S-w per firefox, M-S-g per gimp, etc).
Poi mi è venuta l'illuminazione di usare wmiimenu da wmii che è pur sempre un'applicazione indipendente, anche se utilizza delle librerie per il rendering, condivise in wmii. Anselm ha ben pensato di rendere completamente indipendente il menu di wmii, anche per quanto riguarda le librerie di rendering. E' nato quindi dmenu
Per scaricarlo, configurarlo e compilarlo basta procedere nello stesso modo fatto per dwm, quindi:
Code: | hg clone http://10kloc.org/cgi-bin/hgwebdir.cgi/dmenu
cd dmenu
make clean install |
dmenu legge una lista di oggetti (uno per riga) dallo stdin e con questi crea un menu.
Per farla breve, un utilizzo sensato può essere quello di avere uno script che genera una lista degli eseguibili nel nostro sistema e passare questa lista a dmenu.
A me piace avere questo script in ~/.dwm/generate_menu.sh , farlo avviare una sola volta in .xinitrc e creare questa lista in /tmp/.proglist
Ecco lo script Code: | #!/bin/sh
proglist() {
ls -lL "$@" 2>/dev/null | awk 'NF>2 && $1 ~ /^[^d].*x/ {print $NF}' | sort | uniq
}
proglist `echo "$PATH" | tr : ' '` >/tmp/.proglist & |
Ora riporto un punto che dovrebbe essere chiarito rispetto a prima, riguardo al mio config.h per dwm:
Code: |
/* funzione aggiunta rispetto al file config.default.h
* il significato è:
* alla pressione di "MODKEY (quindi Mod4) + p", dovrà essere eseguito
* il comando "exec `dmenu </tmp/.proglist`"
* in sostanza, questa combinazione lancia dmenu passandogli una lista di oggetti dallo stdin
*/
{ MODKEY, XK_p, spawn, { .cmd = "exec `dmenu </tmp/.proglist`" } }, \ |
Chiaro a cosa serviva, no?
Lo script generate_menu.sh è comunque opzionale, uno potrebbe anche decidere di creare la lista dei binari ad ogni invocazione di dmenu invece di avere una lista statica... anche perchè si fa presto dopotutto:
Code: | blackhole ~ $ time .dwm/generate_menu.sh
real 0m0.031s
user 0m0.004s
sys 0m0.004s |
Io preferisco tenermi la lista in /tmp ... poi fate voi
[1] dwm: http://10kloc.org/dwm/
[2] wmii: http://10kloc.org/wmii/
[3] dynamic layout: http://wmii.de/taggi.php?page=dynamic
Spero che l'how-to vi sia piaciuto! Ricordatevi che esistono comunque le pagine di man
Ciao! _________________ minimalblue.com | secgroup.github.io/
Last edited by lavish on Sat Jul 30, 2011 11:59 pm; edited 14 times in total |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 08, 2006 4:24 pm Post subject: |
|
|
Spostato da Forum di discussione italiano a Risorse italiane (documentazione e tools) _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Tue Aug 08, 2006 11:23 pm Post subject: |
|
|
Non so davvero come ringraziarti, mi sembra una cosa fenomenale. Domani lo metto. Viva il minimalismo esaustivo
Domanda probabilmente da idiota: le apps sono indipendenti dal wm, nel senso posso fare tutto quello che facevo con altri wm tipo lanciare app 3d come glxgears ecc ecc(sempre da linea di comando)
bye |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 08, 2006 11:35 pm Post subject: |
|
|
neurolepsia wrote: | le apps sono indipendenti dal wm, nel senso posso fare tutto quello che facevo con altri wm tipo lanciare app 3d come glxgears ecc ecc(sempre da linea di comando) |
Certo! Le applicazioni che non si comportano bene nel tiled layout puoi taggarle come float in base alla classe del client [1] e inserirle in config.h, altrimenti usare temporaneamente il float layout per l'intero WM.
Tieni comunque in considerazione l'utilizzo di dmenu, è comodissimo!
Ciao!
[1] per vederla, ti basta dare un: Code: | xprop |grep WM_CLASS | Devi considerare il secondo campo _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Wed Aug 09, 2006 7:06 pm Post subject: |
|
|
Cioe' devo dire che e' davvero fenomenale. Non mi sono mai trovato cosi' bene con un wm. Anche linux come desktop sta iniziando a darmi delle grandissime soddisfazioni. Sono alla ricerca di programmi da linea di comando
Uso irssi per IRC e va benone, cplay per la musica ma non mi soddisfa, tsmnc per msn ma non e' il massimo, inoltre cercavo qualche programma che da linea di comando potesse gestire vari protocolli (una specie di gaim per bash), e un discreto file manager.
Qualche consiglio?
Inoltre: Plan9 mi sembra un progetto davvero interessante soprattutto se posso inserirlo nel mio sistema. Vale lo stesso discorso che vale per wmii, e posso seguire l'howto del mitico lavish?
Comunque, grazie ancora lavish. |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Wed Aug 09, 2006 7:42 pm Post subject: |
|
|
neurolepsia wrote: | Uso irssi per IRC e va benone, cplay per la musica ma non mi soddisfa, tsmnc per msn ma non e' il massimo, inoltre cercavo qualche programma che da linea di comando potesse gestire vari protocolli (una specie di gaim per bash), e un discreto file manager.
Qualche consiglio? |
Leggere il topic due righe piú sotto: questo, si parla di centericq. Il file manager per la console (a parte, ovviamente la bash che trovo sia il miglior filemanager del pianeta) penso sia il midnight commander (comando 'mc').
Quote: | Inoltre: Plan9 mi sembra un progetto davvero interessante soprattutto se posso inserirlo nel mio sistema. Vale lo stesso discorso che vale per wmii, e posso seguire l'howto del mitico lavish? |
In che senso "puoi seguire"? Se vuoi seguilo... se non ricordo male risale a un tot. di tempo fa ma suppongo non ci siano particolari evoluzioni. Se hai qualcosa da far notare per quell'howto ovviamente fai un reply in quel thread _________________ Ciao da me! |
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
|
Back to top |
|
|
drizztbsd Retired Dev
Joined: 21 Nov 2004 Posts: 278 Location: Cesano Maderno
|
Posted: Sat Aug 12, 2006 3:32 pm Post subject: |
|
|
lavish wrote: |
A me piace avere questo script in ~/.dwm/generate_menu.sh , farlo avviare una sola volta in .xinitrc e creare questa lista in /tmp/.proglist
Ecco lo script Code: | #!/bin/sh
proglist() {
ls -lL "$@" 2>/dev/null | awk 'NF>2 && $1 ~ /^[^d].*x/ {print $NF}' | sort | uniq
}
proglist `echo "$PATH" | tr : ' '` >/tmp/.proglist & |
|
Va bene essere grezzi, ma cosi' si esagera
find `echo $PATH | tr : ' '` -maxdepth 1 -perm -1 -xtype f -printf '%f\n' | sort | uniq > /tmp/.proglist
Ci mette la meta' del tempo _________________ Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor |
|
Back to top |
|
|
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Sun Aug 20, 2006 5:33 pm Post subject: |
|
|
E' piu' veloce lo script di Drizzt, lavish ti conviene correggere il topic quando ritorni.Quando torni fatti sentire che volevo farti qualche domanda
Inoltre
cercavo un terminale velocissimo(il piu' veloce possibile) ora uso aterm, che si possa magari rendere trasparente.
SAluti |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 22, 2006 12:41 pm Post subject: |
|
|
-- ho aggiornato l'how-to ad oggi, 22/08/2006
neurolepsia wrote: | Uso irssi per IRC e va benone |
idem
neurolepsia wrote: | cplay per la musica ma non mi soddisfa |
infatti è un frontend in python lentissimo e scomodo. Prova cmus, secondo me è favoloso
neurolepsia wrote: | tsmnc per msn ma non e' il massimo, inoltre cercavo qualche programma che da linea di comando potesse gestire vari protocolli (una specie di gaim per bash) |
In un'unica parola: bitlbee
neurolepsia wrote: | e un discreto file manager |
Stessa risposta che ti ha dato randomaze
neurolepsia wrote: | cercavo un terminale velocissimo(il piu' veloce possibile) ora uso aterm, che si possa magari rendere trasparente. |
Attualmente, terminali veramente sani non ne esistono... se vuoi qualcosa che supporti la fake trasparency e sia veloce e leggero, prova urxvt in modalità client - server Code: | emerge urxvt-unicode |
Ciao! _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 22, 2006 12:49 pm Post subject: |
|
|
Drizzt Do` Urden wrote: | find `echo $PATH | tr : ' '` -maxdepth 1 -perm -1 -xtype f -printf '%f\n' | sort | uniq > /tmp/.proglist
Ci mette la meta' del tempo |
E' decisamente più elegante, ma sul mio sistema impiega più tempo della versione che ho presentato nell'how-to (usando time <comando>). Inoltre questo script si perde alcuni eseguibili, tipo /usr/games/bin/*
In ogni caso, sarebbe meglio così: Code: | find `echo $PATH | tr : ' '` -maxdepth 1 -perm -1 -xtype f -printf '%f\n' 2>/dev/null | sort | uniq > /tmp/.proglist |
_________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Tue Aug 22, 2006 1:53 pm Post subject: |
|
|
Code: | /*
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
* See LICENSE file for license details.
*/
#define TAGS \
const char *tags[] = { "0", "1", "2", "3", "4", NULL };
#define DEFMODE dotile /* dofloat */
#define DEFTAG 1 /* index */
#define FONT "-*-snap-*-*-*-*-*-*-*-*-*-*-*-*"
#define BGCOLOR "#668bca"
#define FGCOLOR "#e8e8e8"
#define BORDERCOLOR "#92abd4"
#define MODKEY Mod4Mask
#define NUMLOCKMASK Mod2Mask
#define MASTERW 50 /* percent */
#define KEYS \
static Key key[] = { \
/* modifier key function arguments */ \
{ MODKEY|ShiftMask, XK_Return, spawn, { .cmd = "exec urxvt +sb -tr -sh 60 -fg black" } }, \
{ MODKEY, XK_Tab, focusnext, { 0 } }, \
{ MODKEY|ShiftMask, XK_Tab, focusprev, { 0 } }, \
{ MODKEY, XK_Return, zoom, { 0 } }, \
{ MODKEY, XK_m, togglemax, { 0 } }, \
{ MODKEY|ShiftMask, XK_0, tag, { .i = 0 } }, \
{ MODKEY|ShiftMask, XK_1, tag, { .i = 1 } }, \
{ MODKEY|ShiftMask, XK_2, tag, { .i = 2 } }, \
{ MODKEY|ShiftMask, XK_3, tag, { .i = 3 } }, \
{ MODKEY|ShiftMask, XK_4, tag, { .i = 4 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_0, toggletag, { .i = 0 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 1 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 2 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 3 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \
{ MODKEY, XK_space, togglemode, { 0 } }, \
{ MODKEY, XK_0, view, { .i = 0 } }, \
{ MODKEY, XK_1, view, { .i = 1 } }, \
{ MODKEY, XK_2, view, { .i = 2 } }, \
{ MODKEY, XK_3, view, { .i = 3 } }, \
{ MODKEY, XK_4, view, { .i = 4 } }, \
{ MODKEY|ControlMask, XK_0, toggleview, { .i = 0 } }, \
{ MODKEY|ControlMask, XK_1, toggleview, { .i = 1 } }, \
{ MODKEY|ControlMask, XK_2, toggleview, { .i = 2 } }, \
{ MODKEY|ControlMask, XK_3, toggleview, { .i = 3 } }, \
{ MODKEY|ControlMask, XK_4, toggleview, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_q, quit, { 0 } }, \
{ MODKEY, XK_p, spawn, { .cmd = "exec `dmenu </tmp/.proglist`" } }, \
};
#define RULES \
static Rule rule[] = { \
/* class:instance regex tags regex isfloat */ \
{ "Firefox.*", "2", True }, \
{ "Gimp.*", NULL, True }, \
{ "MPlayer.*", NULL, True }, \
{ "Thunderbird.*", NULL, True }, \
{ "xboard.*", NULL, True }, \
{ "Muse.*", NULL, True }, \
}; |
Questo e' il mio config.h, non vanno bene due cose... Thunderbird non parte in modalita' true cioe' nel senso che non riesco a spostare o ridurre la finestra....
inoltre, quando premo Mod4+Shift+q dwm non si chiude,ma scompare la barra in alto e rimane bloccato... e' normale e per uscire da X devo premere ctrl+alt+backspace oppure devo preoccuparmi?
Lavish, l'ho quasi interamente copiato dal tuo, e nonostante tutto quella poche cose che ho modificato mi sembrano sbagliate... potresti correggermelo?
Inoltre, potreste consigliarmi qualche font carino per la shell? ho provato snap ma non mi piace. C'e' un modo per modificare le impostazioni della shell, magari da un file, senza doverle settare come ho fatto io nel config.h ? Come faccio a "muovere" le finestre? Sempre se e' possibile...
grazie e ciao |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Aug 22, 2006 4:19 pm Post subject: |
|
|
neurolepsia wrote: | Questo e' il mio config.h, non vanno bene due cose... |
Il config che stai usando è "vecchio". Fai riferimento a quello che ho postato oggi
Quote: | Thunderbird non parte in modalita' true cioe' nel senso che non riesco a spostare o ridurre la finestra.... |
Devi prestare attenzione alla WM_CLASS. Per visualizzare la classe di un determinato sw, basta dare il comando Code: | xprop | awk -F'"' '/^WM_CLASS/ { printf "%s:%s\n", $4, $2 }' | e cliccare sulla finestra del software. Nel caso di thunderbird, mi dicono gentilmente dalla regia che è Thunderbird-bin, quindi dovrai inserire una riga del genere: Code: | "Thunderbird-bin.*", NULL, True }, \ |
Quote: | inoltre, quando premo Mod4+Shift+q dwm non si chiude,ma scompare la barra in alto e rimane bloccato... e' normale e per uscire da X devo premere ctrl+alt+backspace oppure devo preoccuparmi? |
No è normale, perchè tu così killi lo script di status. Ti basta ripremere M-q per uscire dal WM.
Quote: | Inoltre, potreste consigliarmi qualche font carino per la shell? ho provato snap ma non mi piace. C'e' un modo per modificare le impostazioni della shell, magari da un file, senza doverle settare come ho fatto io nel config.h ? |
Certo, snap non è un font fatto per essere in una shell Personalmente uso proggy-clean ( http://www.proggyfonts.com/index.php?menu=download) , ma altri fonts molto buoni sono fixed e terminus ( emerge media-fonts/terminus-font )
Per avere un unico file dove settare le impostazioni in modo coerente, puoi usare ~/.Xdefaults
Ti posto il mio, in modo che tu possa fartene un'idea: Code: |
URxvt*background: white
URxvt*foreground: black
URxvt*scrollBar: false
URxvt*font: -*-proggyclean-*-*-*-*-*-*-*-*-*-*-*-*
XBoard*lightSquareColor: #d3d4d5
XBoard*darkSquareColor: #858585
XBoard*font: snap
Xcursor.theme: Jimmac |
Quote: | Come faccio a "muovere" le finestre? Sempre se e' possibile... | Puoi spostare le finestre in modalità float. Quindi se sei in tiled layout, premi M-space e poi tenendo premuto Modkey, trascina la finestra con il tasto sinistro del mouse. Con il destro fai un resize. E' tutto documentato nel man comunque..
Ciao! _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
neurolepsia n00b
Joined: 08 Aug 2006 Posts: 42
|
Posted: Sun Sep 03, 2006 1:46 am Post subject: |
|
|
lavish, se non ti e' troppo di peso, potresti aggiornare periodicamente il config.h ?
Cosi' gli "ignoranti" come me possono prendere spunto...
grazie mille
ciao |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Sun Sep 03, 2006 7:23 am Post subject: |
|
|
neurolepsia wrote: | lavish, se non ti e' troppo di peso, potresti aggiornare periodicamente il config.h ? |
Done
- 2006/09/03 - dwm-1.2, dmenu-0.6:
aggiornamento versioni
riscrittura dei commenti in config.h
formattazione migliore
_________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
|
Back to top |
|
|
curson n00b
Joined: 23 Sep 2006 Posts: 11 Location: London, UK
|
Posted: Mon Jan 08, 2007 6:31 pm Post subject: |
|
|
Scopro solo ora dwm, e questo topic è stato utilissimo per iniziare.
Al momento un quasi vergine dwm mi osserva dal mio Thinkpad, così a naso sembra più adatto a me di quanto non sia wmii-3
Grazie mille Lavish! _________________ curson
"There are those who worship it. There are those who fear it.
And there are those who have vowed to destroy it.
In the Valley of the Time Tombs the Shrike waits for them all." |
|
Back to top |
|
|
!ico Apprentice
Joined: 26 Oct 2005 Posts: 199 Location: Bassano del Grappa (VI)
|
Posted: Sun Jan 14, 2007 10:36 am Post subject: |
|
|
curson wrote: | cos`i a naso sembra piu adatto a me di quanto non sia wmii-3 |
scusate, ma che ha di diverso dwm da wmii? ammetto di doverlo ancora provare, ma sinceramente non ho capito dove stanno le grosse differenze (intendo in positivo per dwm..)
ola _________________ " I tasti iniziano. I tasti finiscono. Tu sai che sono 88; su questo nessuno può fregarti. Non sono infiniti loro. Tu, tu sei infinito, e dentro quei tasti, infinita è la musica che puoi fare. Loro sono 88. Tu sei infinito".
Novecento (Baricco) |
|
Back to top |
|
|
lucapost Veteran
Joined: 24 Nov 2005 Posts: 1419 Location: <ud|me|ts> - Italy
|
Posted: Thu Jan 25, 2007 3:56 pm Post subject: |
|
|
Sto cercando di personalizzare il config.h di dwm, in particolare la configurazione delle scorciatoie da tastiera.
Trovo difficoltà a riempire la colonna keys " XK_* ", per i tasti alfanumerci nessun problema, ma che nome hanno le frecce, pag su/giù, ecc?
Esiste qualche software che mi restituisce il nome da mettere al posto del "*"?
Ho provato a cercare, ma trovo soluzioni soluzioni solamente che richiedono altro software (xbindkeys...)
Grazie a tutti. _________________ LP |
|
Back to top |
|
|
zolar czakl Apprentice
Joined: 25 Sep 2004 Posts: 162 Location: UMRK
|
Posted: Fri Jan 26, 2007 12:07 am Post subject: |
|
|
Esempio: PageUp (Prior)
Code: | KeyRelease event, serial 32, synthetic NO, window 0x800001,
root 0x187, subw 0x0, time 1538925399, (869,737), root:(874,817),
state 0x0, keycode 99 (keysym 0xff55, Prior), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False |
Non sarebbero comodi i colori all'interno del "code"? |
|
Back to top |
|
|
lavish Bodhisattva
Joined: 13 Sep 2004 Posts: 4296
|
Posted: Fri Jan 26, 2007 7:46 am Post subject: |
|
|
Salve a tutti!
Scusatemi per la lunga assenza, ma sono in un periodo abbastanza incasinato per quanto riguarda esami/musica
Ad ogni modo, vediamo di rispondere a tutti
curson wrote: | Scopro solo ora dwm, e questo topic è stato utilissimo per iniziare.
Al momento un quasi vergine dwm mi osserva dal mio Thinkpad, così a naso sembra più adatto a me di quanto non sia wmii-3 |
Si', come modello di sviluppo, non ci si e' basati su filosofie particolari (a differenza di wmii, dove lo scopo era quello di creare un WM il piu' dinamico possibile), ma si e' guardato esclusivamente all'usabilita'
!ico wrote: | scusate, ma che ha di diverso dwm da wmii? ammetto di doverlo ancora provare, ma sinceramente non ho capito dove stanno le grosse differenze (intendo in positivo per dwm..) |
E' tutto scritto sul sito http://dwm.suckless.org/ . Faccio comunque un breve riassunto:
- configurazione da sorgente:
dwm viene configurato tramite un file di header C. Questo semplifica di molto il codice (non serve un parser) e rende piu' sicuro e veloce il programma (non possono essere passati valori che non siano noti a tempo di compilazione). La sintassi del file inoltre - assunto che si conosca il C - e' standard per tutti.
- assenza del supporto a 9P:
L'fs virtuale di wmii, e' possibile montarlo come un vero fs tramite il filesystem 9P, presente nel kernel sotto questa voce Code: | < > Plan 9 Resource Sharing Support (9P2000) (Experimental) | .
Molto interessante, ma di dubbia utilita'...
In dwm, semplicemente, non c'e' alcun fs virtuale. Segue la mancanza di supporto a 9P.
assenza di "controllo remoto":
Proprio a causa dell'assenza dell'fs virtuale di wmii in dwm, non e' possibile impartire azioni al WM da riga di comando. Di conseguenza, non si possono usare script per la configurazione a runtime del WM.
assenza delle tagbars:
In dwm le tagbars sono state semplicemente rimosse. L'output di ogni finestra compare direttamente nella barra in alto, quando il client viene focalizzato.
semplicita':
dwm e' composto da un singolo file binario, quindi e' comodo in ogni tipo di ambiente/installazione.
I sorgenti sono molto puliti e inferiori alle 2000 righe di ansi C.
Tutto cio' puo' far sembrare wmi >> dwm. In realta' e' stato rimosso da wmii tutto quello che - secondo l'autore e la userbase - era superfluo, migliorando l'usabilita' e l'efficacia del WM.
Per far chiarezza, vorrei aggiungere un'altra cosa riguardo allo sviluppo di wmii e dwm: questi due software non sono sviluppati dalla stessa persona (Anselm R. Garbe).
dwm e' sviluppato da lui, mentre wmii lo *era* prima che si dedicasse a dwm.
wmii era stato affidato a Kris Maglione, uno sviluppatore eccezzionale che stava impostando il cammino verso wmii-4, con un wmiifs riscritto completamente, tagbars editabili e altro. Purtroppo, Kris e' letteralmente scomparso e di lui, da mesi, non si sa piu' nulla. La speranza e' che non gli sia successo nulla di grave a livello personale
wmii era e' stato affidato a Denis G. , ma se devo essere franco, si nota l'abisso che sussiste fra lui e i 2 mantainers precedenti
Non vedo un grande futuro per wmii.
lucapost wrote: | Sto cercando di personalizzare il config.h di dwm, in particolare la configurazione delle scorciatoie da tastiera.
Trovo difficoltà a riempire la colonna keys " XK_* ", per i tasti alfanumerci nessun problema, ma che nome hanno le frecce, pag su/giù, ecc?
Esiste qualche software che mi restituisce il nome da mettere al posto del "*"? |
Esattamente grazie al software indicato da zolar czakl. Il token che ti serve e' il secondo campo fra parentesi nella terza riga
zolar czakl wrote: | Non sarebbero comodi i colori all'interno del "code"? |
Qui non ho capito cosa intendi, se ti riferisci a dwm o se stavi pensando ai colori del campo [code] in phpBB
Ciao!
// edit: nel how-to ho aggiunto la seguente nota
Per una questione di comodita', il mio config.h e i vari scripts non sono aggiornati qui sul forum. Li potete trovare aggiornati e riveduti, qui: http://www.minimalblue.com/projects/dwm.php _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|