Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 7ce9f5a38ba3a7d20482e74d18086033 > files > 97

howto-text-it-2006-5mdv2010.0.noarch.rpm

  L'HOWTO sul sistema a finestre MGR
  Vincent Broman
  Bozza, 30 Maggio 1996
  ____________________________________________________________

  Indice Generale


  1. Questo HOWTO
     1.1 Dove trovare questo HOWTO
     1.2 Autenticazione
     1.3 Ringraziamenti per l'HOWTO

  2. Cos'e l'MGR Window System?
     2.1 Funzionalità
     2.2 Requisiti
     2.3 Come comparare MGR, X11 e 8.5?

  3. Installazione di MGR
  4. Usare MGR
     4.1 Applicazioni che supportano MGR in modo trasparente
     4.2 Applicazioni MGR (client) distribuite con il server
     4.3 client predisposti per MGR distribuiti a parte, vedi il file             "SUPPORT"

  5. Programmazione in MGR
  6. Documentazione ulteriore
  7. Ringraziamenti per MGR


  ______________________________________________________________________

  11..  QQuueessttoo HHOOWWTTOO


    Per motivi di origine legale, io Francesco Tapparo (cesco@goldnet.it),
    traduttore di questo HOWTO preferisco lasciare non tradotto il copyright
    originale dell'autore:

                           Copyright Vincent Broman 1995.
          Permission granted to make and distribute copies of this HOWTO
             under the conditions of the GNU General Public License.



  11..11..  DDoovvee ttrroovvaarree qquueessttoo HHOOWWTTOO

  Questo HOWTO si può reperire in ftp://archimedes.nosc.mil/pub/Mgr/MGR-
  HOWTO.sgml, oltre a trovarsi in
  ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/MGR-HOWTO.  In directory
  vicine potrebbero comparire gli stessi documenti in formati
  alternativi, come MGR-HOWTO.txt.

  11..22..  AAuutteennttiiccaazziioonnee

  Le copie della distribuzione di MGR dovuta a Broman dovrebbero essere
  accompagnate da file di firma PGP, firmati da "Vincent Broman
  <broman@nosc.mil>".



  11..33..  RRiinnggrraazziiaammeennttii ppeerr ll''HHOOWWTTOO

  Nonostante Vincent Broman abbia per primo composto questo HOWTO, molte
  delle informazioni e del testo è stato ottenuto da FAQ, README, etc.
  scritti da Stephen Uhler, Michael Haardt, e altri generosi utenti
  della Rete.  Correzioni Email e suggerimenti di modifiche devono
  essere spedite a broman@nosc.mil.

  Uhler è stato il principale artefice di  MMGGRR -- vedi la sezione
  Ringraziamenti più avanti.


  22..  CCooss''ee ll''MMGGRR WWiinnddooww SSyysstteemm??


  22..11..  FFuunnzziioonnaalliittàà

  MMGGRR (ManaGeR) è un sistema grafico a finestre.  Il server MMGGRR fornisce
  nativamente un window manager e l'emulazione di terminali grafici a
  finestra su schermi a pixel, siano essi a colori o monocromatici.  MMGGRR
  è controllato selezionando dei menu a scomparsa con il mouse,
  interagendo con la tastiera, e attraverso sequenze di escape scritte
  su pseudo-terminali dal software client.

  MMGGRR fornisce ogni client di: funzioni di controllo terminale alla
  termcap;  primitive grafiche come disegno di linee e cerchi; utility
  per manipolare bitmap, font, icone, e menu a scomparsa; comandi per il
  ridisegno e il posizionamento delle finestre; e una facility di
  inoltro messaggi che abilita i client a ritornare e scambiare
  messaggi.  I programmi possono chiedere di venire informati quando
  avviene un cambiamento nel window system, come la modifica delle
  dimensioni di una finestra, la pressione di un tasto del mouse, o
  l'arrivo di un messaggio da parte di un altro client.  Questi
  cambiamenti vengono detti eventi.  MMGGRR notifica un evento a un client
  inviandogli una stringa di caratteri ASCII in un formato da questi
  specificato. Le applicazioni preesistenti si possono facilmente
  integrare nell'ambiente window senza modifiche poiché MMGGRR imita la
  pressione di tasti in risposta a selezioni da menu definiti
  dall'utente o altri eventi.


  22..22..  RReeqquuiissiittii

  Allo stato attuale, MMGGRR gira su Linux,  FreeBSD, sulle workstation Sun
  3/4 con SunOS, e su Coherent.  Varie versioni precedenti di MMGGRR girano
  su Macintosh, Atari ST MiNT, Xenix, 386-Minix, DEC 3100, e 3b1 Unix-
  pc.  Molti piccoli sistemi industriali real-time sotto OS9 o Lynx in
  Europa usano (un altra variante di) MGR per la loro interfaccia
  utente.  L'interfaccia di programmazione è scritta in C e in ELisp,
  quantunque sia abbastanza facile supportare client scritti in altri
  linguaggi.  MMGGRR richiede molte meno risorse di X, o addirittura di
  gcc.  Non ha la base utenti, il repertorio software o le librerie di
  alto livello di X o MS-Windows, ad esempio, ma è abbastanza elegante
  ed accessibile.

  È stato detto che MMGGRR sta ad X come Unix sta a Multics.


  22..33..  CCoommee ccoommppaarraarree MMGGRR,, XX1111 ee 88..55??

  MMGGRR consiste di un server con window manager ed emulatore di terminale
  nativi, client che girano in questo emulatore usandolo per comunicare
  con il server. Non viene eseguito alcun multiplexing delle risorse.

  X11 consiste di un server e di client, che usualmente si connettono al
  server usando un socket. Tutti i servizi visibili all'utente, come
  emulatori di terminale, window manager etc. sono forniti da client.
  Non viene eseguito alcun multiplexing delle risorse.

  8.5, il sistema a finestre Plan 9, è un multiplexer di risorse, in
  quanto ogni processo in una finestra può accedere a /dev/bitblt,
  /dev/mouse e /dev/kbd nel proprio namespace.  Questi sono multiplexati
  ai /dev/bitblit, /dev/mouse e /dev/kbd nel namespace di 8.5.  Questo
  approccio permette di girare 8.5 in una finestra di 8.5, un design
  molto pulito.  8.5 inoltre ha un window manager e un emulatore di
  terminale integrati.


  33..  IInnssttaallllaazziioonnee ddii MMGGRR

  L'ultima distribuzione dei sorgenti può essere prelevata tramite FTP
  da ftp://bugs.nosc.mil/pub/Mgr/69 o tramite Mosaic da
  http://archimedes.nosc.mil/Mgr/69.  Essa si può trovare anche presso
  ftp://sunsite.unc.edu/pub/Linux/apps/MGR ed i suoi mirrors.  Versioni
  precedenti di questa distribuzione, curate da Haardt, si possono
  trovare in tsx-11.mit.edu, e probabilmente altrove.  Versioni di MMGGRR
  precedenti al port per Linux, di Uhler ed altri si trovavano in
  ftp://bellcore.com/pub/mgr, ma penso che ora non vi siano più.  Io ho
  salvato una copia di ogni cosa riguardante MMGGRR vista su Internet, ma
  non sono a conoscenza di nulla di una certa importanza che manchi da
  questa distribuzione per Linux e Sun.  MMGGRR è passato attraverso un bel
  po' di versioni e releases, ma la corrente versione *per Linux* è la
  0.69. Essa passerà a 1.0 quando vi sarà del codice stabile per
  supportare la VGA a 256 colori sotto Linux (per più di una scheda
  grafica).  I numeri di versione RCS sono saliti dal 4.3 della Bellcore
  al 4.13 attuale.

  Per costruire questa distribuzione di MMGGRR sono necessari i seguenti
  tools: m4 (GNU, o forse anche altri dotati dell'opzione -D), make
  (GNU, o forse anche altri che supportino gli include) e *roff per la
  documentazione. Ed anche sh e POSIX install. Le distribuzioni binarie
  spesso non vengono assemblate, cosicché è necessario un compilatore
  ANSI C, come per esempio gcc.

  Una installazione Linux richiede Linux 0.99.10 o meglio (quello che io
  uso attualmente per il testing è la versione 1.2.13), una scheda
  grafica HGC, EGA, VGA o SVGA, e un mouse.  Sono supportati i seguenti
  mouse: mouse seriale Microsoft, mouse seriale MouseSystems a 3 e 5
  byte mouse seriale MMSeries, mouse seriale Logitech, mouse PS/2,
  oppure un bus mouse. Con le combinazioni Buckey (Meta) da tastiera,
  anche un sistema senza mouse potrebbe fare un po' di utile lavoro
  sotto MMGGRR. Il modo grafico monocromatico VGA 640x480 è supportato
  senza bisogno di alcun intervento particolare, ed egualmente quello
  640x350 e 640x200.  Per supportare la modalità 800x600, o altre che il
  tuo BIOS può inizializzare e che non richiedono bank-switching, è
  necessario far girare sotto DOS, o un emulatore, un piccolo programma
  (src/vgamisc/regs.exe) per leggere i registri VGA e scrivere un file
  header da piazzarsi nella directory src/libbitblit/linux, cosicché
  possa venire #incluso dal file lì presente vga.c. Sono forniti anche
  degli esempi di tali file, ma per favore creati quelli specifici della
  tua particolare scheda.  Alcune schede VGA possono usare modalità
  grafiche che richiedono 128k di RAM, e queste potrebbero supportare
  risoluzioni monocromatiche più elevate.

  Il codice per la modalità a colori in Linux funziona senza problemi
  anche nella modalità policromatica VGA 320x200x256, poiché essa non
  richiede alcun bank-switching. Se pensi quanto pochi siano 64000
  pixel, capirai che questa modalità è assai limitata.  Nella versione
  0.65 è stato aggiunto del codice per il bank-switching, non molto
  veloce, ma semplice: funziona con una scheda grafica Tseng ET4000
  nelle modalità 640x480x256 e 800x600x256. Il codice per la S3 non
  funziona ancora nelle risoluzioni super VGA.  Supportare nuove schede
  super VGA richiede la scrittura di una  funzione per switchare i
  banchi, e quindi assicurare che la modalità desiderata possa venire
  inizializzata da un register dump, magari lavorandoci un po' sopra a
  mano. I servers a colori per Linux generalmente corrompono i font
  dello schermo, rendendo necessario l'uso di restorefont come in runx.

  Sono supportati anche i Sun con SunOS 4.1.2+ e i frame buffer bwtwo,
  cgthree, o cgsix. La loro velocità lavorando nelle modalità a colori è
  buona. Le installazioni Coherent dovrebbero riferirsi al file
  README.Coh nella distribuzione dei sorgenti.  Il porting della
  versione più recente di MGR ad un altro sistema POSIX-like, che
  supporti  select, i pty e l'accesso diretto ad un frame-buffer a mappa
  di bit dovrebbe essere immediato, richiedendo solo l'implementazione
  della libreria libbitblt basandosi, per esempio, sul codice sunmono o
  colorport.

  Per una installazione completa, occorrono 7 Mb di spazio su disco per
  i file binari, i font, le man-page etc. I file sorgente occupano circa
  4.5 Mb, cui vanno aggiunti i file oggetto durante la compilazione.

  Normalmente, la directory dove installare i file che MMGGRR usa a runtime
  dovrebbe essere /usr/mgr, o almeno dovrebbe venire linkata ad essa.
  Scrivendo:


       cd /usr/mgr; tar xvfz dovelohaimesso/mgrusr-0.69.tgz



  e facoltativamente


       cd /usr/mgr; tar xvfz dovelohaimesso/morefonts-0.69.tgz



  si scomprimeranno questi file.  I sorgenti possono venire installati
  ovunque, ad esempio scrivendo


       cd /usr/src/local/mgr; tar xvfz dovelohaimesso/mgrsrc-06.9.tgz



  per scomprimere i sorgenti prelevati da archimedes.nosc.mil.

  L'albero dei sorgenti può venire compilato da un unico Makefile nella
  directory principale che chiama quelli nelle secondarie, ognuno dei
  quali "include" il file "Configfile" nella directory base. Configfile
  è creato dallo shell script interattivo Configure, che, tenendo conto
  delle tue risposte ad alcune sue domande, fa processare Configfile.m4
  ad m4.  Quindi si deve scrivere qualcosa di simile a questo:



       chdir /usr/src/local/mgr
       sh ./Configure
       make first
       make depend
       make install
       make clean



  Potrebbe essere saggio, prima di far partire make, dare uno sguardo al
  Configfile generato dallo script Configure, controllando che sembri
  ragionevole.  (Come minimo un m4 (il /usr/bin/m4 dei Sun) si ferma
  subito creando un Configfile cortissimo.  Se accade questo, bisogna
  editare a mano una copia di Configfile.sun o Configfile.lx) Si può
  anche editare make all in ogni directory in cui sia stato creato un
  Makefile, non appena siano state compilate ed installate le librerie.
  Il server, le librerie, e alcuni client sono stati lintati, ma molti
  client sono scritti in K&R C, e fanno generare molti warning al
  compilatore.

  Si possono aggiungere od omettere molti flag nella variabile MGRFGLAGS
  in Configfile per modificare alcune caratteristiche opzionali del
  server, ossia:

     --DDWWHHOO
        modifica il file utmp così da permettere il funzionamento di
        "who"

     --DDVVII
        inserisce del codice che permette di muovere il cursore con il
        mouse in vi

     --DDDDEEBBUUGG
        abilita la possibilità di selezionare con l'opzione -d un output
        di debug

     --DDFFAASSTTMMOOUUSSEE
        utilizza l'operazione XOR nel tracciamento del mouse

     --DDBBUUCCKKEEYY
        abilita i comandi da tastiera, senza l'utilizzo del mouse

     --DDPPRRIIOORRIITTYY
        usa uno scheduling diverso dal round-robin standard, dando una
        priorità più alta alla finestra attiva

     --DDCCUUTT
        abilita il supporto per il copia/incolla fra le finestre.

     --DDMMGGRR__AALLIIGGNN
        forza l'allineamento della finestra sul confine del byte, per
        una maggiore velocità di scrolling ( solo nelle modalità
        monocromatiche)

     --DDKKIILLLL
        uccide le finestre nel caso che la tty riporti un errore di i/o

     --DDSSHHRRIINNKK
        usa solo parte dello schermo ( pari al valore della variabile di
        ambiente $MGRSIZE)

     --DDNNOOSSTTAACCKK
        non permette lo stacking degli eventi

     --DDBBEELLLL
        attiva il beep

     --DDKKBBDD
        nei Sun legge l'input di MGR dalla tastiera, invece che da
        stdin. Questo permette la redirezione a una finestra dei
        messaggi della console.

     --DDFFRRAACCCCHHAARR
        abilita il supporto per il movimento frazionale dei caratteri
        permettendo così l'uso di font proporzionali

     --DDXXMMEENNUU
        supporto esteso per i menu ( sperimentale )

     --DDMMOOVVIIEE
        estensione per fare moviole: tutte le operazioni vengono salvate
        su di un file per un successivo replay -- non del tutto
        funzionante su Linux

     --DDEEMMUUMMIIDDMMSSBBUUTT
        nei mouse a due tasti, emula il bottone di mezzo premendo
        insieme gli altri 2.

  Non tutte le combinazioni di queste opzioni sono state testate su
  tutti i sistemi.

  La macro BITBLITFLAGS deve contenere -DBANKED se si sta provando il
  supporto per la SVGA a colori.

  Un convertitore genera il codice C per le variabili statiche
  contenenti le icone e i font dai file corrispondenti.

  Non tutti i client vengono compilati ed installati dai Makefile.  I
  client che si trovano sotto src/clients e che hanno i nomi
  capitalizzati, o che non vengono compilati dai Makefile forniti
  possono presentare problemi durante la compilazione o l'esecuzione, ma
  può essere interessante farci un po' di hacking.  Molti dei driver
  video nella directory libbitblit sono di interesse soprattutto
  archeologico. Qualche volta rovistando nelle tombe può saltare fuori
  qualcosa di interessante.


  A un certo punto controlla che i tuoi file /etc/termcap e/o terminfo
  contengano le entrate per i terminali MMGGRR come quelli che si trovano
  nella directory misc. Se tutto il tuo software controlla $TERMCAP
  nell'ambiente , questo non è più necessario, finché fai partire eval
  `set_termcap` in ogni finestra.

  MMGGRR funziona meglio se gira setuid root, poiché cerca di cambiare le
  proprietà dei pty e scrivere nel file utmp. Questo aiuta il gestore di
  icone ify a lavorare meglio e il meccanismo di trasmissione degli
  eventi ad essere più sicuro.  Su Linux sono _n_e_c_e_s_s_a_r_i_e le permissioni
  del root per l'input/output sullo schermo. D'altra parte, tu decidi se
  fidarti o no.


  Nelle versioni intorno alla 0.62 c'erano problemi sul Sun usando la
  csh come shell di default. I programmi sembravano girare in un gruppo
  di processi diverso da quello del gruppo di processi di primo piano
  del pty della finestra, in contrasto alle man-page e alle specifiche
  POSIX.  Non c'era nessun problema con bash, sh o rc. Qualcuno ha un
  idea del perché ?


  44..  UUssaarree MMGGRR

  Il solo file _r_i_c_h_i_e_s_t_o in una installazione MMGGRR è il server stesso.
  Questo ti darà finestre ad emulatore di terminale con shell giranti in
  esse e la possibilità di effettuare il cut/paste con il mouse ma,
  nessun bell'orologio, nessun font extra, nessun capriccio grafico,
  etc. A seconda delle opzioni, un server monocromatico necessita di
  circa 200K di RAM, oltre allo spazio allocato dinamicamente per
  window, bitmap, etc.

  Se /usr/mgr/bin è nel tuo PATH, digita semplicemente "mgr" per
  partire.  Dopo esserti goduto l'animazione di avvio, premi un tasto.
  Quando compaiono lo sfondo tratteggiato e il puntatore del mouse,
  mantieni premuto il pulsante sinistro del mouse, seleziona la voce
  "new window" dal menu, e rilascia il pulsante. Quindi definisci la
  finestra trascinando i suoi angoli con il mouse. Nella finestra girerà
  la tua shell di default. Tieni premuto il pulsante sinistro del mouse
  sopra un finestra per vedere un altro menu con il quale eseguire
  azioni su quella finestra. Premendolo sopra una finestra parzialmente
  coperta, essa viene riportata in primo piano.  Il menu che hai visto
  generarsi sullo sfondo vuoto comprende il comando quit. Per le persone
  con un mouse a due pulsanti: premete entrambi i pulsanti insieme per
  emulare il pulsante di mezzo mancante, usato da alcuni programmi.


  Il sottomenu quit comprende l'opzione "really quit", un'opzione di
  sospensione che sarà usata solo se stai facendo girare una shell
  supportante il job-control, ed una opzione per uno screen-saver/locker
  che aspetta che tu batta la password quando ritorni alla tua macchina.

  Se ,provando a far partire MMGGRR, ottieni:

     ccaann''tt ffiinndd tthhee ssccrreeeenn
        accertati di avere un file /dev per il tuo display, per esempio
        /dev/bwtwo0 su un Sun. Se non lo hai, va come root nella
        directory /dev, e digita "MAKEDEV bwtwo0".  Altrimenti, potresti
        aver bisogno nella riga di comando dell'opzione -S/dev/bwtwo0 o
        (su Linux) della opzione -S640x480 quando fai partire MGR.  Su
        Linux dovresti anche assicurarti che /usr/mgr/bin/mgr sia stato
        installato setuid root.


     ccaann''tt ffiinndd tthhee mmoouussee
        accertati che esista /dev/mouse , usualmente un link simbolico
        al vero file di periferica del tuo mouse. Se non hai le
        permissioni per scrivere in /dev, puoi dare un'opzione come
        -m/dev/cua0 quando fai partire MGR. Inoltre sii sicuro di aver
        fornito il giusto protocollo del mouse quando hai configurato
        MGR. Il mouse può può utilizzare quello Microsoft, anche se
        questo non è il nome della marca.


     ccaann''tt ggeett aa ppttyy
        accertati che tutti i /dev/[tp]ty[pq]? siano posseduti da root,
        con modo 666, e che tutti i programmi indicati con l'opzione
        "shell" nel tuo file di avvio .mgrc (se c'è) esistano e siano
        eseguibili.


     nnoonnee bbuutt tthhee ddeeffaauulltt ffoonntt
        accertati che MMGGRR stia cercando i font nella directory giusta.
        Controlla Configfile nei sorgenti o vedi se dare una opzione
        -f/usr/mgr/font a mgr risolve il problema.


     ccoommpplleettaammeennttee bbllooccccaattoo ((nnoonn ssii mmuuoovvee nneemmmmeennoo iill ccuurrssoorree ddeell mmoouussee))
        loginati alla tua macchina da un altro terminale (o usa rlogin)
        e uccidi MGR.  Se la tastiera funziona ancora, un tasto Buckey-Q
        può farti uscire da MMGGRR.


  44..11..  AApppplliiccaazziioonnii cchhee ssuuppppoorrttaannoo MMGGRR iinn mmooddoo ttrraassppaarreennttee

  Ogni applicazione che giri in modalità tty può essere fatta partire in
  una finestra MMGGRR senza ulteriore pena. Le applicazioni che girano in
  modalità testo usando termcap o curses possono ottenere da sole il
  numero corretto di linee e colonne della finestra usando shape(1) per
  ridisegnare la finestra o set_termcap(1) per ottenere l'entrata
  termcap corretta.



  44..22..  AApppplliiccaazziioonnii MMGGRR ((cclliieenntt)) ddiissttrriibbuuiittee ccoonn iill sseerrvveerr


     bbddffttoommggrr
        converte dei font .bdf in font MGR

     bbrroowwssee
        un browser di icone

     bbuurryy
        nasconde questa finestra

     cc__mmeennuu
        costruisce menu dagli errori del compilatore C

     cclloocckk
        orologio digitale

     cclloocckk22
        orologio analogico

     cclloossee
        chiude la finestra e la iconifica

     ccoolloorr
        setta i colori di primo piano e di sfondo del testo nella
        finestra.

     ccoolloorrmmaapp
        legge o modifica la palette

     ccuurrssoorr
        cambia l'aspetto del cursore

     ccuutt
        ritaglia del testo dalla finestra e lo ricopia nel cut buffer

     ccyyccllee
        visualizza una serie di icone

     ddmmggrr
        primitivo previewer di file ditroff

     ffaaddee
        fa sfumare uno script home movie da una scena all'altra

     ffoonntt
        passa ad usare un nuovo font nella finestra

     ggrrooppbbmm
        un driver che traduce dal formato roff al formato PBM, usando i
        font Hershey.

     hhppmmggrr
        emulatore di terminale hp 2621

     iiccoo
        disegna un icosaedro, o altro poliedro, animato

     iiccoonnmmaaiill
        notifica l'arrivo della posta

     iiccoonnmmssggss
        notifica l'arrivo dei messaggi


     iiffyy
        iconifica e deiconifica le finestre

     llooaaddffoonntt
        carica un font dal disco

     mmaazzee
        un gioco di labirinto

     mmcclloocckk
        orologio micky mouse

     mmeennuu
        crea o seleziona un menu a scomparsa

     mmggrr
        server e window manager del window system della Bellcore

     mmggrrbbdd
        il gioco boulder-dash

     mmggrrbbiiffff
        guarda se è arrivata posta nella mailbox e la notifica

     mmggrrllooaadd
        disegna un grafico del load average del sistema

     mmggrrlloocckk
        blocca la console

     mmggrrllooggiinn
        manager grafico di login

     mmggrrmmaagg
        ingrandisce una parte dello schermo, salvandolo su file se si
        vuole

     mmggrrmmaaiill
        notifica l'arrivo della posta

     mmggrrmmooddee
        attiva o disattiva i modi delle finestre

     mmggrrmmssggss
        notifica l'arrivo dei messaggi

     mmggrrpplloott
        filtro grafico per Unix "plot"

     mmggrrsscclloocckk
        clessidra

     mmggrrsshhoowwffoonntt
        esamina i font MGR

     mmggrrsskkeettcchh
        un programma per fare schizzi/disegni

     mmggrrvviieeww
        visore per i bitmap MGR

     mmlleessss
        fa partire less o more in una finestra separata, con un menu
        aggiunto nel caso di less.


     mmnneeww
        fa partire un qualunque programma in un finestra separata e
        indipendente.

     mmpphhoooonn
        visualizza la corrente fase lunare

     mmvvii
        fa partire vi in una finestra separata, con puntamento del mouse

     oocclloossee
        (obsoleto) chiude una finestra

     oommggrrmmaaiill
        (obsoleto) notifica l'arrivo della posta

     ppbbmmrraawwttoommggrr,, ppggmmrraawwttoommggrr,, ppppmmrraawwttoommggrr
        convertono i file di immagini in formato raw PBM, PGM, PPM.

     ppbbmmssttrreeaamm
        legge un flusso di bitmap e fa partire un programma per ognuno
        di essi

     ppbbmmttoopprrtt
        produce output per stampante da un PBM

     ppggss
        front-end per ghostscript (un visore postscript), con la patch
        necessaria per poterlo utilizzare.

     ppiilloott
        un bitmap browser o visore di immagini.

     rreesseettwwiinn
        risistema lo stato di una finestra dopo che il crash di un
        client lo ha rovinato

     rroottaattee
        ruota un bitmap di 90 gradi

     ssccrreeeenndduummpp
        scrive una copia dello schermo grafico ad un file bitmap

     sseett__ccoonnssoollee
        ridirige alla finestra i messaggi destinati alla console

     sseett__tteerrmmccaapp
        visualizza un appropriato settaggio di TERM e TERMCAP per la
        finestra attuale

     sseettnnaammee
        da un nome ad una finestra, cosa utile per i messaggi e
        l'iconificazione

     sshhaappee
        cambia le dimensioni di una finestra

     ssqquuaarree
        quadra questa finestra

     ssqquueeeezzee
        comprime un bitmap MGR usando l'algoritmo di compressione run-
        length encoding.

     ssttaarrttuupp
        produce lo scheletro di un file di startup che produca il
        corrente layout di finestra

     tteexxmmggrr
        visore di file TeX dvi

     tteexxtt22ffoonntt,, ffoonntt22tteexxtt
        per passare dal formato dei font per MGR al formato testo e
        viceversa

     uunnssqquueeeezzee
        decomprime un bitmap MGR compresso con l'algoritmo run-length
        encoding

     vvggaaffoonntt22mmggrr,, mmggrrffoonntt22vvggaa
        convertono i font dal formato VGA al formato MGR, e viceversa.

     wwiinnddooww__pprriinntt
        stampa un'immagine di una finestra

     zzoooomm
        un editor di icone

     bboouunnccee,, ggrraavv,, ggrriidd,, hhiillbbeerrtt,, mmggrreeyyeess,, ssttrriinnggaarrtt,, wwaallkk
        demo grafici


  44..33..  cclliieenntt pprreeddiissppoossttii ppeerr MMGGRR ddiissttrriibbuuiittii aa ppaarrttee,, vveeddii iill ffiillee
  ""SSUUPPPPOORRTT""


     ccaallccttooooll
        calcolatrice su schermo

     cchheessss
        frontend a /usr/games/chess

     ggnnuu eemmaaccss
        editor con lisp/term/mgr.el e supporto per mouse & menu

     ggnnuupplloott
        programma universale per la rappresentazione di dati scientifici

     mmeettaaffoonntt
        programma per il progetto e la creazione di font

     oorriiggaammii
        l'editor pieghevole

     ppbbmmpplluuss
        conversioni e manipolazioni per il formato pbm

     ppllpplloott
        programma per la veloce rappresentazione di dati scientifici

  Il supporto Emacs in misc/mgr.el e misc/mailcap include un supporto
  MIME molto funzionale, attraverso Rmail e metamail.

  Utilizzando pilot e i filtri netPBM, si potrebbe costruire un visore
  di immagini che sappia interpretare molti formati diversi, ma non ho
  avuto il tempo per farlo.


  55..  PPrrooggrraammmmaazziioonnee iinn MMGGRR

  Il manuale del programmatore di MMGGRR, con l'interfaccia in linguaggio C
  alle applicazioni, si trova nella directory doc in formato
  troof/nroff. Esso copre i concetti generali, le chiamate alle
  funzioni/macro che controllano il server, una semplice applicazione,
  un indice e un glossario.

  Il porting di programma client usato con versioni precedenti di MMGGRR
  richiede qualche volta la sostituzione di


           #include <mgr/mgr.h>



  con


           #include <term.h>
           #include <dump.h>



  e i client che usano le vecchio stile b_XOR, B_CLEAR, e simili invece
  di BIT_XOR, BIT_CLR e simili possono venire sistemati scrivendo


           #define OLDMGRBITOPS
           #include <mgr/mgr.h>



  Compilare codice per client richiede in genere opzioni di compilazione
  di questo tipo:


           -I/usr/mgr/include   -L/usr/mgr/lib -lmgr



  Si può fare un po' di esperienza con le funzioni del server MMGGRR in
  modo interattivo leggendo e sperimentando con il driver di terminale
  per GNU Emacs mgr.el che implementa la libreria di interfaccia a MMGGRR
  in ELisp.

  Il metodo usuale di procurarsi lo stato dal server può portare a dei
  problemi se il client si aspetta anche un grande volume di notifiche
  di eventi. Il problema sorge se una notifica (asincrona) arriva quando
  si aspetta la risposta ad una richiesta (sincrona). Se questo accade
  effettivamente (cosa inusuale) le funzioni di MMGGRR per procurarsi lo
  stato dovranno essere integrate con il tuo loop per la gestione degli
  eventi.

  Il solo servizio fondamentale di disegno mancante nel protocollo MMGGRR
  sembra essere la colorazione di un area per aree diverse da rettangoli
  orizzontali.  C'è del nuovo codice per la manipolazione della mappa
  globale dei colori, come per l'allocazione (suggerita) e deallocazione
  degli indici dei colori posseduti dalle finestre.

  Se pensi di effettuare dell'hacking su server, puoi trovare il driver
  del mouse in mouse.* e mouse_get.*, le parti grotty dell'interfaccia
  alla tastiera in kbd.c, e l'interfaccia al display nelle directory
  src/libbitblit/*. La procedura main, la maggior parte delle
  inizializzazioni, e la parte di alto livello del loop di input si
  trovano in mgr.c, mentre l'interpretazione delle sequenze di escape è
  in put_window.c.


  66..  DDooccuummeennttaazziioonnee uulltteerriioorree

  Il manuale del programmatore è indispensabile per i concetti generali.

  Quasi tutti i client forniti sono dotati di una man page installata in
  /usr/mgr/man/man1 o man6.  Altre utili man page sono bitblit.3,
  font.5, e bitmap.5.  C'è un po' di ambiguità nella documentazione nel
  distinguere il formato bitmap interno nel tuo frame-buffer e il
  formato bitmap nei file, come per esempio le icone.

  La man page mgr.1 copre le opzioni nella riga di comando, i comandi
  nel file di startup ~/.mgrc, l'interazione del mouse e dei menu con il
  server,  e i comandi da tastiera disponibili sui sistemi con i tasti
  necessari.

  Molti dei font in /usr/mgr/font/* sono descritti almeno parzialmente
  in /usr/mgr/font/*.txt, ad esempio /usr/mgr/font/FONTDIR.txt da una
  descrizione analoga a quella fornita per X-Windows per i font in
  formato .bdf.  I nomi dei font finiscono in WxH, dove W e H sono la
  larghezza e l'altezza in pixel(espresse in base 10) di ogni carattere.


  77..  RRiinnggrraazziiaammeennttii ppeerr MMGGRR

  Stephen Uhler, con altri che lavoravano alla Bellcore, è stato
  l'originale designer ed implementatore di MMGGRR, cosicché la Bellcore ha
  protetto da copyright molto del codice e della documentazione di MMGGRR
  ponendolo sotto i seguenti termini d'uso.


  ( N.d.T.: per motivi legali ho deciso di non tradurre il seguente copyright )

      * Permission is granted to copy or use this program, EXCEPT that it
      * may not be sold for profit, the copyright notice must be reproduced
      * on copies, and credit should be given to Bellcore where it is due.



  Si richiede di mostrare l'avviso di copyright nello schermo di
  startup.

  Altri ringraziamenti a:

  ·  Stephen Hawley per le sue stupende icone.

  ·  Tommy Frandsen per la libreria VGA per Linux.

  ·  Tom Heller per la sua libreria Gasblit.

  ·  Andrew Haylett per il driver del mouse.

  ·  Dan McCrackin per le sue patch Gasblit->Linux.

  ·  Dave Gymer, dgymer@gdcarc.co.uk, per il fix dell'effetto Startrek.

  ·  Alex Liu per aver rilasciato per primo una versione funzionante di
     MMGGRR per Linux.

  ·  Lars Aronsson (aronsson@lysator.liu.se) per text2font e un font
     ISO8859-1 a 8 bit.

  ·  Harry Pulley (hcpiv@grumpy.cis.uoguelph.ca,
     hcpiv@snowhite.cis.uoguelph.ca) per il port a Coherent.
  ·  Vance Petree & Grant Edwards & Udo Munk per il loro lavoro sulla
     Hercules.

  ·  Udo Munk per il suo lavoro sulla inizializzazione del mouse seriale
     & select.

  ·  Norman Bartek & Hal Snyder e Mark Williams Co. per il loro aiuto
     con alcuni bug & con i device driver per Coherent.

  ·  Ringraziamenti ulteriori a Zeyd Ben Halim per le molte utilissime
     patch, in particolare l'adattamento della selezione.

  ·  a Bradley Bosch, brad@lachman.com, per molte patch del suo port per
     3b1, che fissano errori ed implementano nuove e desiderabili
     caratteristiche.

  ·  Andrew Morton, applix@runxtsa.runx.oz.au, che ha per primo scritto
     il codice cut-word.

  ·  Kapil Paranjape, kapil@motive.math.tifr.res.in, per il supporto
     alla EGA.

  ·  Michael Haardt per i fix al supporto MOVIE, le correzioni dei bug,
     la separazione del codice della libbitblt nei driver di output,
     l'espansione della libmgr, e la formattazione del codice per la
     navigazione con origami.

  ·  a Yossi Gil per i molti font.

  ·  a Carsten Emde, carsten@thlmak.pr.net.ch, per mphoon.

  ·  a Vincent Broman per l'emulazione del bottone di mezzo del mouse,
     l'opera di linting, il supporto per il cgsix Sun, l'accesso alla
     tavola dei colori VGA, l'integrazione del codice per il port a Sun
     nella struttura software a strati disegnata da Haardt, la raccolta
     dei font, il salva schermo, e la manutenzione continua.

  Tutti i font bitmap di qualunque provenienza sono rigorosamente di
  pubblico dominio negli USA. I 583 font a larghezza fissa forniti con
  MMGGRR sono stati resi disponibili grazie a Uhler, la distribuzione X,
  YossiGil, e altri.  I font vettoriali Hershey e il codice per
  disegnarli sono probabilmente liberamente ridistribuibili.