
***  X F r e e 8 6 C o n f i g  ***
Tool di configurazione per X-Window
===================================
@1999 by Antonio Gallo
@2000 by Antonio Gallo & Stefano XXXXXX



Premessa
========
Il tool di configurazione per X-Window deve fornire, in una maniera simile
a quella (ORRORE) del pannello di controllo di Windows, degli strumenti
pratici ed intuitivi per la configurazione del proprio ambiente X.

La configurazione di X si divide nei punti:
1. tastiera e mouse (configurati in precedenza);
2. scelta della scheda video o del X-server (default vga16);
3. scelta del monitor (default generico 640x480x4);
4. scelta dello schermo (default 640x480x4);
5. opzioni



Configurazione
==============
Il programma deve salvare le impostazioni, oltre che nel file di configurazione
/etc/XF86Config (di cui deve fare sempre un backup con estensione incrementale:
.001, .002, etc.) anche in 1 o + file di configurazione che siano accessibili
in un secondo tempo sia da altre applicazioni che da scripts.



Tastiera e Mouse
================
Per la tastiera ed il mouse si utilizzano i programmi ed i file di 
configurazione pre-esistenti in /etc/sysconfig/.

La tastiera deve recuperare i valori di rate e delay dall'apposito
file di configurazione.



Database delle schede video
===========================
Conserviamo la stessa struttura dell'attuale /usr/X11R6/lib/X11/Cards
ovvero, ogni voce e' nella forma:
    NAME
    CHIPSET
    SERVER (3DLabs,AGX,I128,Mach32,Mach64,Mach8,P9000,S3,S3V,SVGA,TGA,VGA16,W32)
	grep SERVER Cards | sort | uniq
    RAMDAC
    CLOCKCHIP
    DACSPEED
    COMMENT
    NOCLOCKPROBE
    UNSUPPORTED
    LINE
    SEE

Queste opzioni possono apparire in qualsiasi ordine, ovviamente NAME e' sempre
il primo. Ogni voce e' separata da una riga vuota e puo' contenere alla fine
la voce SEE, in questo caso vanno aggiunte anche le proprieta' della scheda
cui si fa riferimento.

Il database effettivo sara' /usr/share/badpenguion/XCards e' sara il cat
del DB di default fornito da X con quello dei server fuori dalla distribuzione
XFree86



Autodetecting
=============
Tramite 'SuperProbe' o 'lspci' e' possibile riconoscere la scheda video
installata sulla macchina ed operare di conseguenza.
ATTENZIONE: potrebbero esserci 2 schede video su una stessa macchina



Database dei monitors
=====================
Si puo' utilizzare il file /usr/X11R6/lib/X11/doc/Monitors.gz per creare
un database simile al precedente nela forma:
    NAME <Identificativo monitor>
    Identifier
    VendorName
    ModelName
    BandWidth
    HorizSynch
    VertRefresh
    Gamma
    Mode o Modeline
    .....
    Mode o Modeline

A questo DB distribuito con XFree si puo' accodare un'altro file prodotto
da noi con i settaggi presi ad esempio dalla pagina sui laptop.



Selezione dello schermo e della risoluzione
===========================================
Questa e' la piu' complicata.
In questa sezione si deve poter scegliere l'ordine di preferenza
dei modi e la profondita' di colore di default (DefaultColorDepth).

I modi (Modes) selezionati per ogni profondita' (Depth) devono essere
scelti dalla lista delle Modeline della scheda grafica selezionata.

Inoltre per ogni depth deve essere possibile assegnare il virtual
screen (Virtual, ViewPort). Ebbene si, io sono uno di quelli che sul
640x480 usa il virtual screen per vedere come vengono le pagine con
le varie risoluzioni dei browser.



Risparmio Energetico
====================
Molti non lo sanno, ma X-Window supporta il DPMS. Le voci sono:
    BlankTime, StandbyTime, SuspendTime, OffTime
adesso non ricordo bene qual'e' quella per attivare il DPMS
ma da qualche parte ho una mail in cui ho come si fa'.



Altre Opzioni
=============
Devono poter essere scelte determinate opzioni:
(Opzioni di X)
- DontZap 		On/Off
- DontZoom		On/Off
- DisableVidMode 	On/Off
- DisableModInDev	On/Off
(Altre)
- Login grafico         On/Off (e' gia' On se e' installato XDM)
- Font True Type        On/Off (e' gia' On se e' installato il server)
(... altre che ho dimenticato ...)



Salvataggio della configurazione
================================
Prima del salvataggio della configurazione, il programma deve testare 
l'esecuzione del X server con un file di configurazione temporaneo.
Se l'X-server non e' presente deve essere installato il pacchetto 
corrispondente.

PROPOSTA (Non applicabile ancora):
    echo "x-server	xserver-$NOMESERVER" >> /var/spool/badpenguin/DEPS
    echo "Dov'e' la distribuzione ?" ; read MOUNTDIR
    setup  --finalize  $MOUNTIDR  /
