Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

La politica ? il governo dell'opinione.

Carlo Bini 

Sondaggio:

Quale sistema operativo preferite?

Linux
Windows
DOS
MacOs
UNIX

visualizza risultati


 

Configurazione di Twm e di Fvwm

Il file .twmrc non è uno script di shell, credetelo o no, è scritto in un linguaggio fatto proprio per twm! Questa è una delle caratteristiche negative dei file di inizializzazione: hanno generalmente il loro proprio linguaggio caratteristico; ciò significa che gli utenti diventano bravissimi ad imparare velocemente i linguaggi. Suppongo che sarebbe bello se i primi programmatori di Unix si fossero messi d'accordo su un formato standard per i file di inizializzazione, in modo che non dovessimo imparare nuove sintassi ogni volta, ma ad essere realisti è difficile predire di quali informazioni avranno bisogno i programmi. La cosa con cui la gente ama giocherellare nel file .twmrc è lo stile delle finestre (i colori e cose di questo genere), e i menù, quindi ecco un file .twmrc di esempio che configura queste caratteristiche:

# Imposta i colori per le varie parti delle finestre. Fa
# molto effetto sulla personalizzazione dell'ambiente.
Color
{
BorderColor "OrangeRed"
BorderTileForeground "Black"
BorderTileBackground "Black"
TitleForeground "black"
TitleBackground "gold"
MenuForeground "black"
MenuBackground "LightGrey"
MenuTitleForeground "LightGrey"
MenuTitleBackground "LightSlateGrey"
MenuShadowColor "black"
IconForeground "DimGray"
IconBackground "Gold"
IconBorderColor "OrangeRed"
IconManagerForeground "black"
IconManagerBackground "honeydew"
}

# Spero che non abbiate un sistema in bianco e nero, ma se
# e' cosi'...
Monochrome
{
BorderColor "black"
BorderTileForeground "black"
BorderTileBackground "white"
TitleForeground "black"
TitleBackground "white"
}

# Ho creato beifnag.bmp con il programma "bitmap". Qui dico
# a twm di usarlo come disegno di default per le barre del
# titolo delle finestre.
Pixmaps
{
TitleHighlight "/home/larry/x/beifang.bmp"
}

# Non vi preoccupate di queste cose, sono solo per i
# fissati :-)
BorderWidth 2
TitleFont "-adobe-new century schoolbook-bold-r-normal--14-140-75-75-p-87-iso8859-1"
MenuFont "6x13"
IconFont "lucidasans-italic-14"
ResizeFont "fixed"
Zoom 50
RandomPlacement

# Questi programmi non avranno una barra del titolo per
# default:
NoTitle
{
"stamp"
"xload"
"xclock"
"xlogo"
"xbiff"
"xeyes"
"oclock"
"xoid"
}

# "AutoRaise" significa che la finestra viene messa in
# primo piano ogni volta che il puntatore del mouse ci
# passa sopra. Io lo trovo scomodo, quindi l'ho
# disabilitato. Come potete vedere, ho ereditato
# il mio file .twmrc da persone che avevano la mia stessa
# idea.
AutoRaise
{
"nothing" # Non mi piace autoraise # A me neanche # Nemmeno a me
}

# Qui vengono definite le funzioni dei pulsanti del mouse.
# Notate lo schema: un pulsante premuto sulla finestra di
# sfondo, senza premerci insieme nessun tasto modificatore,
# apre sempre un menu'.
# Premere un pulsante su altre zone porta ad una qualche
# manipolazione della finestra, ed i tasti modificatori
# vengono usati insieme ai pulsanti del mouse per avere le
# manipolazioni piu' sofisticate.
#
# Non c'e' bisogno che seguiate questo schema nel vostro
# .twmrc --
# la configurazione dell'ambiente e' completamente a vostro
# piacere.
# Pulsante = TASTI : CONTESTO : FUNZIONE
# ----------------------------------
Button1 = : root : f.menu "main"
Button1 = : title : f.raise
Button1 = : frame : f.raise
Button1 = : icon : f.iconify
Button1 = m : window : f.iconify
Button2 = : root : f.menu "stuff"
Button2 = : icon : f.move
Button2 = m : window : f.move
Button2 = : title : f.move
Button2 = : frame : f.move
Button2 = s : frame : f.zoom
Button2 = s : window : f.zoom
Button3 = : root : f.menu "x"
Button3 = : title : f.lower
Button3 = : frame : f.lower
Button3 = : icon : f.raiselower

# Potete scrivere delle funzioni personalizzate; questa
# viene usata nel menu' "windowops" quasi alla fine di
# questo file:
Function "raise-n-focus"
{
f.raise
f.focus
}

# Okay, qui sotto ci sono i menu' a cui ci si riferisce
# nella sezione dei pulsanti del mouse. Notate che molte
# delle voci richiamano a loro volta dei sottomenu'. Potete
# avere quanti livelli di menu' volete, ma state attenti a
# non farli ricorsivi: non funzionano, ci ho provato.
menu "main"
{
"Vanilla" f.title
"Emacs" f.menu "emacs"
"Logins" f.menu "logins"
"Xlock" f.menu "xlock"
"Misc" f.menu "misc"
}

# Questo mi permette di invocare Emacs su macchine diverse.
# Date un'occhiata alla sezione sui file .rhosts per altre
# informazioni su come fare:
menu "emacs"
{
"Emacs" f.title
"here" !"/usr/bin/emacs &"
"" f.nop
"phylo" !"rsh phylo \"emacs -d floss:0\" &"
"geta" !"rsh geta \"emacs -d floss:0\" &"
"darwin" !"rsh darwin \"emacs -d floss:0\" &"
"ninja" !"rsh ninja \"emacs -d floss:0\" &"
"indy" !"rsh indy \"emacs -d floss:0\" &"
"oberlin" !"rsh cs.oberlin.edu \"emacs -d floss.life.uiuc.edu:0\" &"
"gnu" !"rsh gate-1.gnu.ai.mit.edu \"emacs -d floss.life.uiuc.edu:0\" &"
}

# Mi fa aprire degli xterm su parecchie altre macchine.
# Guardate la sezione sui file .rhosts per altre
# informazioni.
menu "logins"
{
"Logins" f.title
"here" !"/usr/bin/X11/xterm -ls -T `hostname` -n `hostname` &"
"phylo" !"rsh phylo \"xterm -ls -display floss:0 -T phylo\" &"
"geta" !"rsh geta \"xterm -ls -display floss:0 -T geta\" &"
"darwin" !"rsh darwin \"xterm -ls -display floss:0 -T darwin\" &"
"ninja" !"rsh ninja \"xterm -ls -display floss:0 -T ninja\" &"
"indy" !"rsh indy \"xterm -ls -display floss:0 -T indy\" &"
}

# I salvaschermo di xlock, richiamati con varie opzioni
# (ognuna delle quali da' un'immagine diversa):
menu "xlock"
{
"Hop" !"xlock -mode hop &"
"Qix" !"xlock -mode qix &"
"Flame" !"xlock -mode flame &"
"Worm" !"xlock -mode worm &"
"Swarm" !"xlock -mode swarm &"
"Hop NL" !"xlock -mode hop -nolock &"
"Qix NL" !"xlock -mode qix -nolock &"
"Flame NL" !"xlock -mode flame -nolock &"
"Worm NL" !"xlock -mode worm -nolock &"
"Swarm NL" !"xlock -mode swarm -nolock &"
}

# Programmi vari che uso ogni tanto:
menu "misc"
{
"Xload" !"/usr/bin/X11/xload &"
"XV" !"/usr/bin/X11/xv &"
"Bitmap" !"/usr/bin/X11/bitmap &"
"Tetris" !"/usr/bin/X11/xtetris &"
"Hextris" !"/usr/bin/X11/xhextris &"
"XRoach" !"/usr/bin/X11/xroach &"
"Analog Clock" !"/usr/bin/X11/xclock -analog &"
"Digital Clock" !"/usr/bin/X11/xclock -digital &"
}

# Questo e' il menu' che ho collegato al pulsante centrale
# del mouse:
menu "stuff"
{
"Chores" f.title
"Sync" !"/bin/sync"
"Who" !"who | xmessage -file - -columns 80 -lines 24 &"
"Xhost +" !"/usr/bin/X11/xhost + &"
"Rootclear" !"/home/larry/bin/rootclear &"
}

# Funzioni di X che talvolta sono comode:
menu "x"
{
"X Stuff" f.title
"Xhost +" !"xhost + &"
"Refresh" f.refresh
"Source .twmrc" f.twmrc
"(De)Iconify" f.iconify
"Move Window" f.move
"Resize Window" f.resize
"Destroy Window" f.destroy
"Window Ops" f.menu "windowops"
"" f.nop
"Kill twm" f.quit
}

# Un sottomenu' del precedente:
menu "windowops"
{
"Window Ops" f.title
"Show Icon Mgr" f.showiconmgr
"Hide Icon Mgr" f.hideiconmgr
"Refresh" f.refresh
"Refresh Window" f.winrefresh
"twm version" f.version
"Focus on Root" f.unfocus
"Source .twmrc" f.twmrc
"Cut File" f.cutfile
"(De)Iconify" f.iconify
"DeIconify" f.deiconify
"Move Window" f.move
"ForceMove Window" f.forcemove
"Resize Window" f.resize
"Raise Window" f.raise
"Lower Window" f.lower
"Raise or Lower" f.raiselower
"Focus on Window" f.focus
"Raise-n-Focus" f.function "raise-n-focus"
"Destroy Window" f.destroy
"Kill twm" f.quit
}

Phew! Credetemi, non è nemmeno il file .twmrc più complicato che abbia mai visto. Probabilmente avrete un esempio decente di .twmrc con la vostra versione di X. Guardate nella directory /usr/lib/X11/twm/ o in /usr/X11/lib/X11/twm e vedete com'è.

Un bug a cui bisogna fare attenzione in .twmrc è scordarsi di mettere l'& dopo un comando da menù. Se notate che X si congela quando gli date determinati comandi, è probabile che sia questa la causa. Uscite da X con + + , modificate .twmrc e riprovate.

Se state usando fvwm ci sono dei buoni file di esempio nella directory /usr/lib/X11/fvwm/ (o /usr/X11/lib/X11/fvwm/).

[Gente: non so niente di fvwm, anche se credo di poter capire qualcosa dai file di configurazione di esempio. Comunque, lo stesso può fare il lettore :-). Inoltre, dato che esiste il file system.twmrc nella directory menzionata, mi chiedo se vale la pena di dare il lungo esempio di .twmrc qui sopra. Per ora ce lo lascio, ma non so se va bene o no. -Karl]

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso