============
autocfg-xorg
============

:Author: Jonás Melián García
:Contact: jonasmg --AT-- SoftHome --DOT-- net
:Web: https://savannah.nongnu.org/projects/autocfg-xorg/
:License: `GNU GPL-2`_


Hardware detection and auto-configuration for X.org window system.

.. contents::

.. _GNU GPL-2: http://www.gnu.org/copyleft/gpl.html

Features
========

Fonts
-----
It configures X core and Xft/fontconfig fonts system.

It looks for the fonts directories in */usr/share/fonts/*, check that they have 
fonts, and place them according to:
    
    1. The first path on our list is */usr/share/fonts/misc* because is where 
all-important fixed and cursor fonts are kept. These are crucial for the proper 
operation of X Window.
    2. It must place the fonts with better quality, beginning with outline 
fonts, and those that more prefers.
    3. If it uses a greater resolution than 1024x768, it must place 100dpi 
fonts before of 75dpi.
    4. No longer it is necessary to use *:unscaled*.

Modules
-------

It adds basic modules.
If 3D is supported by card driver then adds 3d modules too, and 3D sections.

Input
-----

If touchpad is detected then checks to exist a specialized driver for to have 
advanced features of it. Although that driver isn't necessary for using it.

It has full support for localization. It looks for the variables about language 
in configuration files, and it gets the X key map of a locale.

Card graphic
------------

It detects the graphic card driver and it checks if it exists.

It also checks if the free driver has an owner alternative, and if it is 
installed then it is added but commented out. So the free driver is used by 
default but the user can change it for using the owner.

If does not exist any of detected drivers then it checks the basic drivers -- 
vesa, fbdev, vga --.

The driver options are added from its manual, if it exists.

Monitor
-------

In EDID monitors (plug'n'play) it gets data correctly. It also checks if DPMS 
is supported to enable it.

In non-EDID monitors (old monitors), it adds HorizSync,VertRefresh options with 
a values by default and show a warning about that.

In laptops monitors, the HorizSync,VertRefresh options aren't added because 
they are not necessary.

Screen
------

It chooses the better modes and depth bits.

In non-EDID monitor and laptops, it selects the vesa video modes supported by 
graphic card.

The modes are sorted according the "higher hz is better" method for each depth.

It chooses a good depth as default, searching a depth that supports 1024x768 as 
minimum else 800x600.


Dependencies
============

* Linux kernel > 2.6 with /proc,/sys file systems enabled.

* The Linux PCI ID Repository.
    http://pciids.sourceforge.net/pci.ids.gz

* 'ddcxinfo-knoppix' tool for get information about EDID monitors.

    Although this last dependency could be deleted if I make a python module 
for access to X.org libraries that get that information::

    /usr/lib/modules/libvbe.a
    /usr/lib/modules/linux/libint10.a
    /usr/lib/modules/libddc.a


To do
=====

* Module to X.org libraries.
* To configure 2 monitors with their graphic cards.
