Pesquisar este blog

sábado, 5 de junho de 2010

Multiterminal ou Multiseat - arquivos de configuração

Pessoal abaixo os arquivos para a configuração de ambiente Multiseat no Linux Ubuntu.

Retirei estes arquivos de um LiveCd entregue ontem pela aluna Fernanda Gabriela da Fatec Carapicuíba - SP .

O Livecd no momento do boot reconhece os monitores, teclados e mouses conectados na máquina e pede para voce digitar F1, F2, F3 para conectar mouse e teclado com os monitores.

Estou certo que os arquivos abaixo irão ajudá-los

==========================================
ARQUIVO /etc/gdm/gdm.conf
==========================================
# GDM Configuration Customization file.
#
# This file is the appropriate place for specifying your customizations to the
# GDM configuration.   If you run gdmsetup, it will automatically edit this
# file for you and will cause the daemon and any running GDM GUI programs to
# automatically update with the new configuration.  Not all configuration
# options are supported by gdmsetup, so to modify some values it may be
# necessary to modify this file directly by hand.
#
# Older versions of GDM used the "gdm.conf" file for configuration.  If your
# system has an old gdm.conf file on the system, it will be used instead of
# this file - so changes made to this file will not take effect.  Consider
# migrating your configuration to this file and removing the gdm.conf file.
#
# To hand-edit this file, simply add or modify the key=value combination in
# the appropriate section in the template below.  Refer to the comments in the
# /usr/share/gdm/defaults.conf file for information about each option.  Also
# refer to the reference documentation.
#
# If you hand edit a GDM configuration file, you should run the following
# command to get the GDM daemon to notice the change.  Any running GDM GUI
# programs will also be notified to update with the new configuration.
#
# gdmflexiserver --command="UPDATE_CONFIG "
#
# e.g, the "Enable" key in the "[debug]" section would be "debug/Enable".
#
# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
# re-read the new configuration settings.  You can also restart GDM by sending
# a HUP or USR1 signal to the daemon.  HUP behaves like gdm-restart and causes
# any user session started by GDM to exit immediately while USR1 behaves like
# gdm-safe-restart and will wait until all users log out before restarting GDM.
#
# For full reference documentation see the gnome help browser under
# GNOME|System category.  You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Lines that begin with "#" are considered comments.
#
# Have fun!

[daemon]
DynamicXServers=true
FlexibleXServers=0

#Greeter=/usr/lib/gdm/gdmgreeter

[security]

[xdmcp]

[gui]
GtkTheme=Clearlooks

[greeter]
BackgroundColor=#dab082
GraphicalThemedColor=#dab082
GraphicalTheme=Clearlooks

[chooser]

[debug]

[servers]
0=inactive

[server-XNotHandled]
command=/usr/bin/X -config /etc/mdm/xorg.conf.mdm -noreset
flexible=false
handled=false

[server-XHandled]
command=/usr/bin/X -config /etc/mdm/xorg.conf.mdm
flexible=false
handled=true

********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /etc/gdm/gdm.conf.real
==========================================
# GDM System Defaults Configuration file.
#
# This file should not be updated by hand.  Since GDM 2.13.0.4, configuration
# choices in the GDM System Configuration file (/etc/gdm/gdm.conf) will
# override the default values specified in this file.
#
# If you were using an older version of GDM, your system may have the the older
# gdm.conf configuration file on the system.  If so, then this file is used
# instead of the GDM Custom Configuration file for backwards support.  If you
# make changes to the GDM Custom Configuration file and they seem to not be
# taking effect, this is likely the problem.  Consider migrating your
# configuration to the new configuration file and removing the gdm.conf file.
#
# You can use the gdmsetup program to graphically edit the gdm.conf-custom
# file.  Note that gdmsetup does not support every option in this file, just
# the most common ones that users want to change.  If you feel that gdmsetup
# should support additional configuration options, please file a bug report at
# http://bugzilla.gnome.org/.
#
# If you hand-edit the GDM configuration, you should run the following command
# to get the GDM daemon to recognize the change.  Any running GDM GUI programs
# will also be notified to update with the new configuration.
#
# gdmflexiserver --command="UPDATE_CONFIG "
#
# e.g, the "Enable" key in the "[debug]" section would be "debug/Enable".
#
# You can also run invoke-rc.d gdm reload or invoke-rc.d gdm restart
# to cause GDM to restart and re-read the new configuration settings.
# You can also restart GDM by sending a HUP or USR1 signal to the
# daemon.  HUP behaves like restart and causes any user session
# started by GDM to exit immediately while USR1 behaves like
# reload and will wait until all users log out before
# restarting GDM.
#
# For full reference documentation see the GNOME help browser under
# GNOME|System category.  You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Some values are commented out, but show their default values.  Lines
# that begin with "#" are considered comments.
#
# Have fun!

[daemon]
# Automatic login, if true the first attached screen will automatically logged
# in as user as set with AutomaticLogin key.
AutomaticLoginEnable=false
AutomaticLogin=

# Timed login, useful for kiosks.  Log in a certain user after a certain amount
# of time.
TimedLoginEnable=false
TimedLogin=
TimedLoginDelay=30

# The GDM configuration program that is run from the login screen, you should
# probably leave this alone.
#Configurator=/usr/sbin/gdmsetup --disable-sound --disable-crash-dialog

# The chooser program.  Must output the chosen host on stdout, probably you
# should leave this alone.
#Chooser=/usr/lib/gdm/gdmchooser

# The greeter for attached (non-xdmcp) logins.  Change gdmlogin to gdmgreeter
# to get the new graphical greeter.
Greeter=/usr/lib/gdm/gdmgreeter

# The greeter for xdmcp logins, usually you want a less graphically intensive
# greeter here so it's better to leave this with gdmlogin
#RemoteGreeter=/usr/lib/gdm/gdmlogin

# Launch the greeter with an additional list of colon separated GTK+ modules.
# This is useful for enabling additional feature support e.g. GNOME
# accessibility framework. Only "trusted" modules should be allowed to minimize
# security holes
#AddGtkModules=false
# By default, these are the accessibility modules.
#GtkModulesList=gail:atk-bridge:/usr/lib/gtk-2.0/modules/libdwellmouselistener:/usr/lib/gtk-2.0/modules/libkeymouselistener

# Default path to set.  The profile scripts will likely override this value.
DefaultPath=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
# Default path for root.  The profile scripts will likely override this value.
RootPath=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games

# If you are having trouble with using a single server for a long time and want
# GDM to kill/restart the server, turn this on.  On Solaris, this value is
# always true and this configuration setting is ignored.
#AlwaysRestartServer=

# User and group used for running GDM GUI applications.  By default this is set
# to user "gdm" and group "gdm".  This user/group should have very limited
# permissions and access to only the gdm directories and files.
User=gdm
Group=gdm

# To try to kill all clients started at greeter time or in the Init script.
# does not always work, only if those clients have a window of their own.
#KillInitClients=true
LogDir=/var/log/gdm

# Note that a post login script is run before a PreSession script.  It is run
# after the login is successful and before any setup is run on behalf of the
# user.
PostLoginScriptDir=/etc/gdm/PostLogin/
PreSessionScriptDir=/etc/gdm/PreSession/
PostSessionScriptDir=/etc/gdm/PostSession/
DisplayInitDir=/etc/gdm/Init
# Distributions:  If you have some script that runs an X server in say VGA
# mode, allowing a login, could you please send it to me?
FailsafeXServer=/etc/gdm/failsafeXServer
# if X keeps crashing on us we run this script.  The default one does a bunch
# of cool stuff to figure out what to tell the user and such and can run an X
# configuration program.
XKeepsCrashing=/etc/gdm/XKeepsCrashing

# System command support.
#
# Reboot, Halt and suspend commands, you can add different commands separated
# by a semicolon.  GDM will use the first one it can find.
RebootCommand=/sbin/shutdown -r now "Rebooted via gdm."
HaltCommand=/sbin/shutdown -h now "Shut Down via gdm."
SuspendCommand=/usr/sbin/pm-suspend
HibernateCommand=/usr/sbin/pm-hibernate

# The following options specify how GDM system commands are supported.
#
# Specify which actions are displayed in the greeter.  Valid values are HALT,
# REBOOT, HIBERNATE, SUSPEND, and CUSTOM_CMD separated by semicolons.
SystemCommandsInMenu=HALT;REBOOT;HIBERNATE;SUSPEND;CUSTOM_CMD

# Specify which actions are supported by QUERY_LOGOUT_ACTION, SET_LOGOUT_ACTION
# and SET_SAFE_LOGOUT_ACTION.  Valid values are HALT, REBOOT, HIBERNATE, SUSPEND, and
# CUSTOM_CMD separated by semicolons.
AllowLogoutActions=HALT;REBOOT;HIBERNATE;SUSPEND;CUSTOM_CMD

# This feature is only functional if GDM is compiled with RBAC (Role Based
# Access Control) support.
# Specify the RBAC key used to determine if the user has permission to use
# the action via QUERY_LOGOUT_ACTION, SET_LOGOUT_ACTION and
# SET_SAFE_LOGOUT_ACTION.  The GDM GUI will only display the action if the
# "gdm" user has RBAC permissions to use the action.  RBAC keys for multiple
# actions can be specified by separating them by semicolons.  The format for
# each is "Action:RBAC key".  If an action is not specified, it is assumed
# all users have permission for this action.  For example:
# HALT:key.for.halt,REBOOT:key.for.reboot,[...] 
RBACSystemCommandKeys=

# Probably should not touch the below this is the standard setup.
ServAuthDir=/var/lib/gdm
# This is our standard startup script.  A bit different from a normal X
# session, but it shares a lot of stuff with that.  See the provided default
# for more information.
BaseXsession=/etc/gdm/Xsession
# This is a directory where .desktop files describing the sessions live.  It is
# really a PATH style variable since 2.4.4.2 to allow actual interoperability
# with KDM.
SessionDesktopDir=/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/:/var/lib/menu-xdg/xsessions/:/etc/dm/Sessions/
# This is the default .desktop session.  One of the ones in SessionDesktopDir
DefaultSession=default.desktop
# Better leave this blank and HOME will be used.  You can use syntax ~/ below
# to indicate home directory of the user.  You can also set this to something
# like /tmp if you don't want the authorizations to be in home directories.
# This is useful if you have NFS mounted home directories.  Note that if this
# is the home directory the UserAuthFBDir will still be used in case the home
# directory is NFS, see security/NeverPlaceCookiesOnNFS to override this
# behavior.
UserAuthDir=
# Fallback directory for writing authorization file if user's home directory
# is not writable.
UserAuthFBDir=/tmp
UserAuthFile=.Xauthority
# The X server to use if we can't figure out what else to run.
StandardXServer=/usr/X11R6/bin/X
# The maximum number of flexible X servers to run.
#FlexibleXServers=5
# And after how many minutes should we reap the flexible server if there is no
# activity and no one logged on.  Set to 0 to turn off the reaping.  Does not
# affect nested flexiservers.
#FlexiReapDelayMinutes=5

# The X nest command.
# Examples of valid commands (assuming installed to /usr/X11/bin:
# Xorg Xnest: /usr/X11/bin/Xnest -audit 0 -name Xnest
# Xsun Xnest: /usr/openwin/bin/Xnest -audit 0 -name Xnest -pn
# Xephyr:     /usr/X11/bin/Xephyr -audit 0
Xnest=/usr/share/gdm/gdmXnestWrapper -br -audit 0
# Xsun Xnest does not support font paths (passed into Xnest -fp argument)
# that include the ":unscaled" suffix after a path name.  Setting this to
# false will strip any ":unscaled" suffix from the font path.  If not
# using this Xnest, the value should be true.
XnestUnscaledFontPath=true

# Automatic VT allocation.  Right now only works on Linux.  This way we force
# X to use specific vts.  Turn VTAllocation to false if this is causing
# problems.
FirstVT=7
VTAllocation=true
# Should double login be treated with a warning (and possibility to change VT's
# on Linux and FreeBSD systems for console logins)
#DoubleLoginWarning=true
# Should a second login always resume the current session and switch VT's on
# Linux and FreeBSD systems for console logins
#AlwaysLoginCurrentSession=true

# If true then the last login information is printed to the user before being
# prompted for password.  While this gives away some info on what users are on
# a system, it on the other hand should give the user an idea of when they
# logged in and if it doesn't seem kosher to them, they can just abort the
# login and contact the sysadmin (avoids running malicious startup scripts).
#DisplayLastLogin=false

# Program used to play sounds.  Should not require any 'daemon' or anything
# like that as it will be run when no one is logged in yet.
SoundProgram=/usr/lib/gdmplay

# These are the languages that the console cannot handle because of font
# issues.  Here we mean the text console, not X.  This is only used when there
# are errors to report and we cannot start X.
# This is the default:
#ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh

# This determines whether GDM will honor requests DYNAMIC requests from the
# gdmdynamic command.
#DynamicXServers=false

# This determines whether GDM will send notifications to the console.
#ConsoleNotify=true

# How long gdm should wait before it assumes a started Xserver is defunct and
# kills it.  10 seconds should be long enough for X, but Xgl may need 20 or 25.
GdmXserverTimeout=10

[security]
# Allow root to login.  It makes sense to turn this off for kiosk use, when
# you want to minimize the possibility of break in.
AllowRoot=false
# Allow login as root via XDMCP.  This value will be overridden and set to
# false if the /etc/default/login file exists and contains
# "CONSOLE=/dev/login", and set to true if the /etc/default/login file exists
# and contains any other value or no value for CONSOLE.
AllowRemoteRoot=false
# This will allow remote timed login.
AllowRemoteAutoLogin=false
# 0 is the most restrictive, 1 allows group write permissions, 2 allows all
# write permissions.
RelaxPermissions=1
# Check if directories are owned by logon user.  Set to false, if you have, for
# example, home directories owned by some other user.
CheckDirOwner=true
# If your HOME is managed by automounter, set to true
SupportAutomount=false
# Number of seconds to wait after a failed login
#RetryDelay=1
# Maximum size of a file we wish to read.  This makes it hard for a user to DoS
# us by using a large file.
#UserMaxFile=65536
# If true this will basically append -nolisten tcp to every X command line, a
# good default to have (why is this a "negative" setting? because if it is
# false, you could still not allow it by setting command line of any particular
# server).  It's probably better to ship with this on since most users will not
# need this and it's more of a security risk then anything else.
# Note: Anytime we find a -query or -indirect on the command line we do not add
# a "-nolisten tcp", as then the query just wouldn't work, so this setting only
# affects truly attached sessions.
DisallowTCP=true
# By default never place cookies if we "detect" NFS.  We detect NFS by
# detecting "root-squashing".  It seems bad practice to place cookies on things
# that go over the network by default and thus we do not do it by default.
# Sometimes you can however use safe remote filesystems where this is OK and
# you may want to have the cookie in your home directory.
#NeverPlaceCookiesOnNFS=true
# Will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to
# pam_authenticate and pam_acct_mgmt, disallowing NULL password.  This setting
# will only take effect if PAM is being used by GDM.  This value will be
# overridden with the value from /etc/default/login if it contains
# "PASSREQ=[YES|NO]"
#PasswordRequired=false
# Specifies the PAM Stack to use, "gdm" by default.
PamStack=gdm
# GDM allows configuration of how ut_line is set when it does utmp/wtmp and
# audit processing.  If VT is being used, then ut_line will be set to the
# device associated with the VT.  If the console is attached and has a device
# name specified in the [servers] section, then this value will be used.
# Otherwise the value is defaulted to the value specified in UtmpLineAttached
# for attached displays and UtmpLineRemote for remote displays.  The value
# can be left empty which means that ut_line will be set to an empty value
# (if not VT and no value specified in the [servers] section.  The values
# can contain "%d" which is translated to the DISPLAY value or %h which
# is translated to the hostname.  The values for both keys  must begin with
# "/dev/".
UtmpLineAttached=/dev/console
UtmpLineRemote=
# If true and the specified UtmpLineAttached or UtmpLineRemote does not exist,
# then create a pseudo-device filename that will be touched when the utmp
# record is updated.  Creating such a psuedo-device ensures that programs
# that stat the utmp device associated with ut_line such as finger, last,
# etc. work in a reasonable way. 
UtmpPseudoDevice=false

# XDMCP is the protocol that allows remote login.  If you want to log into GDM
# remotely (I'd never turn this on on open network, use ssh for such remote
# usage).  You can then run X with -query to log in, or
# -indirect to run a chooser.  Look for the 'Terminal' server type
# at the bottom of this config file.
[xdmcp]
# Distributions: Ship with this off.  It is never a safe thing to leave out on
# the net.  Setting up /etc/hosts.allow and /etc/hosts.deny to only allow local
# access is another alternative but not the safest.  Firewalling port 177 is
# the safest if you wish to have xdmcp on.  Read the manual for more notes on
# the security of XDMCP.
Enable=false
# Honor indirect queries, we run a chooser for these, and then redirect the
# user to the chosen host.  Otherwise we just log the user in locally.
#HonorIndirect=true
# Maximum pending requests.
#MaxPending=4
#MaxPendingIndirect=4
# Maximum open XDMCP sessions at any point in time.
#MaxSessions=16
# Maximum wait times.
#MaxWait=15
#MaxWaitIndirect=15
# How many times can a person log in from a single host.  Usually better to
# keep low to fend off DoS attacks by running many logins from a single host.
# This is now set at 2 since if the server crashes then GDM doesn't know for
# some time and wouldn't allow another session.
#DisplaysPerHost=2
# The number of seconds after which a non-responsive session is logged off.
# Better keep this low.
#PingIntervalSeconds=15
# The port.  177 is the standard port so better keep it that way.
#Port=177
# Willing script, none is shipped and by default we'll send hostname system id.
# But if you supply something here, the output of this script will be sent as
# status of this host so that the chooser can display it.  You could for
# example send load, or mail details for some user, or some such.
#Willing=/etc/gdm/Xwilling

[gui]
# The specific gtkrc file we use.  It should be the full path to the gtkrc that
# we need.  Unless you need a specific gtkrc that doesn't correspond to a
# specific theme, then just use the GtkTheme key.
#GtkRC=/usr/share/themes/Default/gtk-2.0/gtkrc

# The GTK+ theme to use for the GUI.
GtkTheme=Human
# If to allow changing the GTK+ (widget) theme from the greeter.  Currently
# this only affects the standard greeter as the graphical greeter does not yet
# have this ability.
#AllowGtkThemeChange=true
# Comma separated list of themes to allow.  These must be the names of the
# themes installed in the standard locations for gtk themes.  You can also
# specify 'all' to allow all installed themes.  These should be just the
# basenames of the themes such as 'Thinice' or 'LowContrast'.
#GtkThemesToAllow=all

# Maximum size of an icon, larger icons are scaled down.
#MaxIconWidth=128
#MaxIconHeight=128

[greeter]
# The following options for setting titlebar and setting window position are
# only useful for the standard login (gdmlogin) and are not used by the
# themed login (gdmgreeter).
#
# The standard login has a title bar that the user can move.
#TitleBar=true
# Don't allow user to move the standard login window.  Only makes sense if
# TitleBar is on.
#LockPosition=false
# Set a position for the standard login window rather then just centering the
# window.  If you enter negative values for the position it is taken as an
# offset from the right or bottom edge.
#SetPosition=false
#PositionX=0
#PositionY=0

# Enable the Face browser.  Note that the Browser key is only used by the
# standard login (gdmlogin) program.  The Face Browser is enabled in
# the Graphical greeter by selecting a theme that includes the Face
# Browser, such as happygnome-list.  The other configuration values that
# affect the Face Browser (MinimalUID, DefaultFace, Include, Exclude,
# IncludeAll, GlobalFaceDir) are used by both the Standard and Themed
# greeter.
Browser=true
# The default picture in the browser.
#DefaultFace=/usr/share/pixmaps/nobody.png
# User ID's less than the MinimalUID value will not be included in the face
# browser or in the gdmselection list for Automatic/Timed login.  They will not
# be displayed regardless of the settings for Include and Exclude.
MinimalUID=1000
# Users listed in Include will be included in the face browser and in the
# gdmsetup selection list for Automatic/Timed login.  Users should be separated
# by commas.
#Include=
# Users listed in Exclude are excluded from the face browser and from the
# gdmsetup selection list for Automatic/Timed login.  Excluded users will still
# be able to log in, but will have to type their username.  Users should be
# separated by commas. 
Exclude=nobody
# By default, an empty include list means display no users.  By setting
# IncludeAll to true, the password file will be scanned and all users will be
# displayed except users excluded via the Exclude setting and user ID's less
# than MinimalUID.  Scanning the password file can be slow on systems with
# large numbers of users and this feature should not be used in such
# environments.  The setting of IncludeAll does nothing if Include is set to a
# non-empty value.
IncludeAll=true
# If user or user.png exists in this dir it will be used as his picture.
#GlobalFaceDir=/usr/share/pixmaps/faces/

# File which contains the locale we show to the user.  Likely you want to use
# the one shipped with GDM and edit it.  It is not a standard locale.alias
# file, although GDM will be able to read a standard locale.alias file as well.
LocaleFile=/etc/gdm/locale.conf
# Logo shown in the standard greeter.
Logo=/usr/share/pixmaps/gdmDebianLogo.xpm
# Logo shown on file chooser button in gdmsetup (do not modify this value).
#ChooserButtonLogo=/usr/share/pixmaps/gdm-foot-logo.png
# The standard greeter should shake if a user entered the wrong username or
# password.  Kind of cool looking
#Quiver=true

# The Actions menu (formerly system menu) is shown in the greeter, this is the
# menu that contains reboot, shutdown, suspend, config and chooser.  None of
# these is available if this is off.  They can be turned off individually
# however.
#SystemMenu=true
# Configuration is available from the system menu of the greeter.
ConfigAvailable=false
# Should the chooser button be shown.  If this is shown, GDM can drop into
# chooser mode which will run the xdmcp chooser locally and allow the user to
# connect to some remote host.  Local XDMCP does not need to be enabled,
# however.
#ChooserButton=true

# Welcome is for all console logins and RemoteWelcome is for remote logins
# (through XDMCP).
# DefaultWelcome and DefaultRemoteWelcome set the string for Welcome to
# "Welcome" and for DefaultWelcome to "Welcome to %n", and properly translate
# the message to the appropriate language.  Note that %n gets translated to the
# hostname of the machine.  These default values can be overridden by setting
# DefaultWelcome and/or DefaultRemoteWelcome to false, and setting the Welcome
# and DefaultWelcome values as desired.  Just make sure the strings are in
# utf-8 Note to distributors, if you wish to have a different Welcome string
# and wish to have this translated you can have entries such as
# "Welcome[cs]=Vitejte na %n".
DefaultWelcome=true
DefaultRemoteWelcome=true
#Welcome=Welcome
#RemoteWelcome=Welcome to %n

# Xinerama screen we use to display the greeter on.  Not for true multihead,
# currently only works for Xinerama.
#XineramaScreen=0
# Background settings for the standard greeter:
# Type can be 0=None, 1=Image & Color, 2=Color, 3=Image
#BackgroundType=2
#BackgroundImage=
#BackgroundScaleToFit=true
# The Standard greeter (gdmlogin) uses BackgroundColor as the background
# color, while the themed greeter (gdmgreeter) uses GraphicalThemedColor
# as the background color.
BackgroundColor=#000000
GraphicalThemedColor=#000000
# XDMCP session should only get a color, this is the sanest setting since you
# don't want to take up too much bandwidth
#BackgroundRemoteOnlyColor=true

# Program to run to draw the background in the standard greeter.  Perhaps
# something like an xscreensaver hack or some such.
#BackgroundProgram=
# If this is true then the background program is run always, otherwise it is
# only run when the BackgroundType is 0 (None).
#RunBackgroundProgramAlways=false
# Delay before starting background program
#BackgroundProgramInitialDelay=30
# Should the background program be restarted if it is exited.
#RestartBackgroundProgram=true
# Delay before restarting background program
#BackgroundProgramRestartDelay=30

# Show the Failsafe sessions.  These are much MUCH nicer (focus for xterm for
# example) and more failsafe then those supplied by scripts so distros should
# use this rather then just running an xterm from a script.
#ShowGnomeFailsafeSession=true
#ShowXtermFailsafeSession=true
# Normally there is a session type called 'Last' that is shown which refers to
# the last session the user used.  If off, we will be in 'switchdesk' mode
# where the session saving stuff is disabled in GDM
#ShowLastSession=true
# Always use 24 hour clock no matter what the locale.
#Use24Clock=auto
# Do not show any visible feedback in the password field. This is standard for
# instance in console, xdm and ssh.
#UseInvisibleInEntry=false

# These two keys are for the themed greeter (gdmgreeter).  Circles is the
# standard shipped theme.  If you want GDM to select a random theme from a
# list then provide a list that is delimited by /: to the GraphicalThemes
# key and set GraphicalThemeRand to true.  Otherwise use GraphicalTheme
# and specify just one theme.
GraphicalTheme=Human
#GraphicalThemes=bijou/:blueswirl/:circles/:debblue-list/:debblue/:ayo/:debian-dawn/:debian-greeter/:debian/:glassfoot/:hantzley/:happygnome/:industrial/:crystal/:linsta
GraphicalThemeDir=/usr/share/gdm/themes/
GraphicalThemeRand=false

# If InfoMsgFile points to a file, the greeter will display the contents of the
# file in a modal dialog box before the user is allowed to log in.
#InfoMsgFile=
# If InfoMsgFile is present then InfoMsgFont can be used to specify the font to
# be used when displaying the contents of the file.
#InfoMsgFont=Sans 24

# If SoundOnLogin is true, then the greeter will beep when login is ready for
# user input.  If SoundOnLogin is a file and the greeter finds the 'play'
# executable (see daemon/SoundProgram) it will play that file instead of just
# beeping.
#SoundOnLogin=true
SoundOnLoginFile=/usr/share/sounds/question.wav
# If SoundOnLoginSuccess, then the greeter will play a sound (as above) when a
# user successfully logs in.
#SoundOnLoginSuccess=false
#SoundOnLoginSuccessFile=
# If SoundOnLoginFailure, then the greeter will play a sound (as above) when a
# user fails to log in.
#SoundOnLoginFailure=false
#SoundOnLoginFailureFile=

# Specifies a program to be called by the greeter/login program when the
# initial screen is displayed.  The purpose is to provide a hook where files
# used after login can be preloaded to speed performance for the user. The
# program will only be called once only, the first time a greeter is displayed.
# The gdmprefetch command may be used.  This utility will load any libraries
# passed in on the command line, or if the argument starts with a "@"
# character, it will process the file assuming it is an ASCII file containing a
# list of libraries, one per line, and load each library in the file.
PreFetchProgram=/usr/lib/gdm/gdmprefetch @/etc/gdm/gdmprefetchlist

# The chooser is what's displayed when a user wants an indirect XDMCP session,
# or selects Run XDMCP chooser from the system menu
[chooser]
# Default image for hosts.
#DefaultHostImg=/usr/share/pixmaps/nohost.png
# Directory with host images, they are named by the hosts: host or host.png.
HostImageDir=/usr/share/hosts/
# Time we scan for hosts (well only the time we tell the user we are scanning
# actually, we continue to listen even after this has expired).
#ScanTime=4
# A comma separated lists of hosts to automatically add (if they answer to a
# query of course).  You can use this to reach hosts that broadcast cannot
# reach.
Hosts=
# Broadcast a query to get all hosts on the current network that answer.
Broadcast=true
# Set it to true if you want to send a multicast query to hosts.
Multicast=false
# It is an IPv6 multicast address.It is hardcoded here and will be replaced
# when officially registered xdmcp multicast address of TBD will be available.
#Multicast_Addr=ff02::1
# Allow adding random hosts to the list by typing in their names.
#AllowAdd=true

[debug]
# This will cause GDM to send debugging information to the system log, which
# will create a LOT of output.  It is not recommended to turn this on for
# normal use, but it can be useful to determine the cause when GDM is not
# working properly.
Enable=false
# This will enable debug messages for accessibilty gesture listeners into the
# syslog.  This includes output about key events, mouse button events, and
# pointer motion events.  This is useful for figuring out the cause of why the
# gesture listeners may not be working, but is too verbose for general debug.
Gestures=false

# Attached DISPLAY Configuration
#
[servers]
# This section defines which attached DISPLAYS should be started by GDM by
# default.  You can add as many DISPLAYS as desired and they will always be
# started.  The key for each entry must be a unique number that cooresponds to
# the DISPLAY number to start the X server.  For a typical single-display
# machine, there will only be one entry "0" for DISPLAY ":0".  The first word
# in the value corresponds to an X server definition in the "X Server
# Definitions" section of the configuration file.  For example, the entry:
#
# 0=Standard
#
# Means that DISPLAY ":0" will start an X server as defined in the
# [server-Standard] section.
#
# The optional device argument is used to specify the device that is associated
# with the DISPLAY.  When using Virtual Terminals (VT), this value is ignored
# and GDM will use the correct device name associated with the VT.  If not
# using VT, then GDM will use the value specified by this optional argument.
# If the device argument is not defined, then GDM will use the default setting
# for attached displays defined in the UtmpLineAttached configuration option.
# For the main display (typically DISPLAY ":0"), "/dev/console" is a reasonable
# value.  For other displays it is probably best to not include this argument
# unless you know the specific device associated with the DISPLAY.  The device
# value can contain "%d" which is translated to the DISPLAY value or %h which
# is translated to the hostname.
#
0=Standard device=/dev/console

# Example of how to set up DISPLAY :1 to also use Standard.
#1=Standard

# If you wish to run the XDMCP chooser on the local display use the following
# line
#0=Chooser

# X Server Definitions
#
# Note: Is your X server not listening to TCP requests?  Refer to the
# security/DisallowTCP setting!

[server-Standard]
name=Standard server
command=/usr/X11R6/bin/X -br -audit 0
flexible=true
# Indicates that the X server should be started at a different process
# priority.  Values can be any integer value accepted by the setpriority C
# library function (normally between -20 and 20) with 0 being the default. For
# highly interactive applications, -5 yields good responsiveness. The default
# value is 0 and the setpriority function is not called if the value is 0.

#priority=0

# To use this server type you should add -query host or -indirect host to the
# command line.
[server-Terminal]
name=Terminal server
# Add -terminate to make things behave more nicely
command=/usr/X11R6/bin/X -br -audit 0 -terminate
# Make this not appear in the flexible servers (we need extra params anyway,
# and terminate would be bad for xdmcp choosing).  You can make a terminal
# server flexible, but not with an indirect query.  If you need flexible
# indirect query server, then you must get rid of the -terminate and the only
# way to kill the flexible server will then be by Ctrl-Alt-Backspace.
flexible=false
# Do not handle this X server for attached displays.
handled=false

# To use this server type you should add -query host or -indirect host to the
# command line.
[server-Chooser]
name=Chooser server
command=/usr/X11R6/bin/X -br -audit 0
# Make this not appear in the flexible servers for now, but if you wish to
# allow a chooser server then make this true.  This is the only way to make a
# flexible chooser server that behaves nicely.
flexible=false
# Run the chooser instead of the greeter.  When the user chooses a machine they
# will get this same server but run with "-terminate -query hostname".
chooser=true

[customcommand]
# This section allows you specify up to 10 custom commands. Each of the
# commands can be defined by the seven parameters listed below. In each of the
# descriptions of the parameters N can take on any values between 0 and 9,
# i.e. CustomCommand0=,CustomCommand1=,...,CustomCommand9=.  The  numbers
# can have gaps as long as they fit within predefined set of 10, and their
# placement order within this section and with respect to each other is
# not important.
#
# CustomCommandN, CustomCommandTextN, CustomCommandLabelN,
# CustomCommandLRLabelN, CustomCommandTooltipN, CustomCommandIsPersistentN
# and CustomCommandNoRestartN should all be defined for a given integer N,
# where N can be a number from 0-9 (if not the default values will be
# assigned except CustomCommandN for which no default exists).

# Custom command to run.  Multiple commands may be specified separated by
# semicolons.  GDM will use the first valid command.  Examples:
# /sbin/bootwindoze;/usr/bin/bootwindoze, or
# /sbin/runupdate;/usr/local/sbin/runupdate
#
#CustomCommandN=

# Custom command dialog message that will appear on all warning dialogs.
# This will vary depending on what you want to do. Examples:
# Are you sure you want to restart system into Windoze?, or
# Are you sure you want do do this?
#CustomCommandTextN=

# Custom command label that will appear as stock label on buttons/menu items.
# This option can't contain any semicolon characters (i.e. ";").
# Examples:
# _Windoze, or
# _Update Me
#CustomCommandLabelN=

# Custom command label that will appear as stock label on radio buttons/list
# items.  The underscore indicates the mnemonic used with this item.  Examples:
#   Restart into _Windoze
#   Perform system _Update
#CustomCommandLRLabelN=

# Custom command tooltip. Examples
# Restarts the computer into Windoze
# Updates the computer software to the most recent version(s)
#CustomCommandTooltipN=

# Custom command persistence option. Setting it to true will allow this
# command to appear outside the login manager, e.g. on the desktop through
# Log Out/Shut Down dialogs. The default value is false.
#CustomCommandIsPersistentN=

# Custom command gdm/system restart option. Setting it to true will not
# restart gdm after command execution.  The default commands (reboot, shut
# down) all reboot the system by default which is why the default setting
# is true.
# In addition when corresponding CustomCommandIsPersistentN option is set to
# true, setting CustomCommandNoRestartN to false will place CustomCommandN
# in the Shut Down dialog set of actions, setting it to true will place
# CustomCommandN in the Log Out dialog set of actions.
#CustomCommandNoRestartN=
#
# Example layout for more than one command:
#CustomCommand0=
#CustomCommandText0=
#CustomCommandLabel0=
#CustomCommandLRLabel0=
#CustomCommandTooltip0=
#CustomCommandIsPersistent0=
#CustomCommandNoRestart0=
#
#CustomCommand1=
#CustomCommandText1=
#CustomCommandLabel1=
#CustomCommandLRLabel1=
#CustomCommandTooltip1=
#CustomCommandIsPersistent1=
#CustomCommandNoRestart1=
#
# and so on

********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /etc/gdm/gdm.conf-custom
==========================================
# GDM Configuration Customization file.
#
# This file is the appropriate place for specifying your customizations to the
# GDM configuration.   If you run gdmsetup, it will automatically edit this
# file for you and will cause the daemon and any running GDM GUI programs to
# automatically update with the new configuration.  Not all configuration
# options are supported by gdmsetup, so to modify some values it may be
# necessary to modify this file directly by hand.
#
# Older versions of GDM used the "gdm.conf" file for configuration.  If your
# system has an old gdm.conf file on the system, it will be used instead of
# this file - so changes made to this file will not take effect.  Consider
# migrating your configuration to this file and removing the gdm.conf file.
#
# To hand-edit this file, simply add or modify the key=value combination in
# the appropriate section in the template below.  Refer to the comments in the
# /usr/share/gdm/defaults.conf file for information about each option.  Also
# refer to the reference documentation.
#
# If you hand edit a GDM configuration file, you should run the following
# command to get the GDM daemon to notice the change.  Any running GDM GUI
# programs will also be notified to update with the new configuration.
#
# gdmflexiserver --command="UPDATE_CONFIG "
#
# e.g, the "Enable" key in the "[debug]" section would be "debug/Enable".
#
# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
# re-read the new configuration settings.  You can also restart GDM by sending
# a HUP or USR1 signal to the daemon.  HUP behaves like gdm-restart and causes
# any user session started by GDM to exit immediately while USR1 behaves like
# gdm-safe-restart and will wait until all users log out before restarting GDM.
#
# For full reference documentation see the gnome help browser under
# GNOME|System category.  You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Lines that begin with "#" are considered comments.
#
# Have fun!

[daemon]
DynamicXServers=true
FlexibleXServers=0

AutomaticLogin=usuario1,usuario2,usuario3,usuario4 


TimedLogin=usuario1
TimedLoginDelay=10

[security]

RetryDelay=4

[xdmcp]

[gui]
GtkTheme=Human

GtkRC=


[greeter]
BackgroundColor=#ffffff
GraphicalThemedColor=#dab082
GraphicalTheme=HumanList



GraphicalThemes=HumanList

BackgroundType=3

BackgroundImage=/screen.png

Include=usuario1,usuario2,usuario3,usuario4

LockPosition=true

Logo=/usr/share/pixmaps/apple-red.png

PositionY=90

Browser=true

SetPosition=true

PositionX=30

DefaultFace=

SoundOnLoginFile=/usr/share/sounds/ubuntu/stereo/bell.ogg

[chooser]

[debug]

[servers]
0=inactive

[server-XNotHandled]
command=/usr/bin/X -config /etc/mdm/xorg.conf.mdm -noreset
flexible=false
handled=false

[server-XHandled]
command=/usr/bin/X -config /etc/mdm/xorg.conf.mdm
flexible=false
handled=true

********************************************************************
********************************************************************
********************************************************************
********************************************************************


==========================================
ARQUIVO /etc/gdm/gdm.conf-custom.real
==========================================

GDM Configuration Customization file.
#
# This file is the appropriate place for specifying your customizations to the
# GDM configuration.   If you run gdmsetup, it will automatically edit this
# file for you and will cause the daemon and any running GDM GUI programs to
# automatically update with the new configuration.  Not all configuration
# options are supported by gdmsetup, so to modify some values it may be
# necessary to modify this file directly by hand.
#
# Older versions of GDM used the "gdm.conf" file for configuration.  If your
# system has an old gdm.conf file on the system, it will be used instead of
# this file - so changes made to this file will not take effect.  Consider
# migrating your configuration to this file and removing the gdm.conf file.
#
# To hand-edit this file, simply add or modify the key=value combination in
# the appropriate section in the template below.  Refer to the comments in the
# /usr/share/gdm/defaults.conf file for information about each option.  Also
# refer to the reference documentation.
#
# If you hand edit a GDM configuration file, you should run the following
# command to get the GDM daemon to notice the change.  Any running GDM GUI
# programs will also be notified to update with the new configuration.
#
# gdmflexiserver --command="UPDATE_CONFIG "
#
# e.g, the "Enable" key in the "[debug]" section would be "debug/Enable".
#
# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
# re-read the new configuration settings.  You can also restart GDM by sending
# a HUP or USR1 signal to the daemon.  HUP behaves like gdm-restart and causes
# any user session started by GDM to exit immediately while USR1 behaves like
# gdm-safe-restart and will wait until all users log out before restarting GDM.
#
# For full reference documentation see the gnome help browser under
# GNOME|System category.  You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Lines that begin with "#" are considered comments.
#
# Have fun!

[daemon]

[security]

[xdmcp]

[gui]

[greeter]

[chooser]

[debug]

[servers]

********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /etc/mdm/mdm.conf
==========================================
#!/bin/bash

# This is the mdm configuration file.

#######################################
# create_xorg_conf script options:

# Recreate xorg.conf every time (used by create_xorg_conf)
# Values: 'yes', 'no'.
RECREATE_XORG_CONF='yes'

# Screen resolution for all screens:
# Values: as added in xorg.conf
DEFAULT_MODE='1024x768'
# Mode for specific head, ignores DEFAULT_MODES
# (normal array, first position is 1)
#MODE[1]="'1280x768'"

# Monitor frequency:
# Values: as added in xorg.conf or 'none' for X auto-detection
DEFAULT_HORIZ_SYNC="28-49"
DEFAULT_VERT_REFRESH="43-72"
# Specific heads
#HORIZ_SYNC[1]='none'
#VERT_REFRESH[1]='none'

# Keyboard options:
# Values: same as in xorg.conf.
#DEFAULT_XKB_RULES='evdev'
DEFAULT_XKB_MODEL='evdev'
DEFAULT_XKB_LAYOUT='br'
# Specific heads
#XKB_RULES[1]='evdev'
#XKB_MODEL[1]='abnt2'
#XKB_LAYOUT[1]='br'

#######################################
# mdm and sub-scripts options:

# Enable this option to disable multiseat if you have multiple video cards
# (xorg.conf will be used instead of xorg.conf.mdm)
# Values: 'yes', 'no'
USE_MONOSEAT='no'

# Reconfigure the input devices every time (re-creating the links)
# Values: 'yes', 'no'.
RECONFIGURE_INPUT='yes'

# Selects how you want to run multiseat
# Values: `ls /usr/share/mdm/modes` (you probably want 'xephyr-gdm')
MULTISEAT_MODE='xephyr-gdm'

####################################
# xephyr-xdmcp options:

# Connection type:
# Values: 'indirect' or 'query'
CONNECTION_TYPE='query'
# Connection target:
# Values: your xdmcp server.
CONNECTION_TARGET='xdmcpserver'
********************************************************************
********************************************************************
********************************************************************
********************************************************************


==========================================
ARQUIVO /etc/mdm/xorg.conf.mdm
==========================================
Section "Files"
        RgbPath      "/etc/X11/rgb"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/X11/misc"
        FontPath     "/usr/share/fonts/X11/cyrillic"
        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/Type1"
        FontPath     "/usr/share/fonts/X11/100dpi"
        FontPath     "/usr/share/fonts/X11/75dpi"
        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
        Load  "record"
        Load  "extmod"
        Load  "dbe"
        Load  "GLcore"
        Load  "glx"
        Load  "dri"
        Load  "xtrap"
EndSection

Section "ServerFlags"
    Option    "DontVTSwitch"       "yes"
    Option    "DontZoom"           "yes"
    Option    "DontZap"            "yes"
    Option    "AllowMouseOpenFail" "yes"
    # Option    "BlankTime"    "0"
    # Option    "StandbyTime"  "0"
    # Option    "SuspendTime"  "0"
    # Option    "OffTime"      "0"
EndSection

Section "DRI"
    Mode    0666
EndSection

Section "InputDevice"
        Identifier  "Keyboard"
        Driver      "kbd"
    Option      "CoreKeyboard"
    #Option      "XkbRules"  ""
    Option      "XkbModel"  "evdev"
    Option      "XkbLayout" "br"
EndSection

Section "InputDevice"
        Identifier  "Mouse"
        Driver      "mouse"
    Option      "CorePointer"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Device"
    Identifier    "Video Card 1"
    BusID        "PCI:1:0:0"
    Driver        "nv"
EndSection

Section "Monitor"
    Identifier    "Monitor 1"
    HorizSync 28-49
    VertRefresh 43-72
    Option        "DPMS"
EndSection

Section "Screen"
    Identifier    "Screen 1"
    Device        "Video Card 1"
    Monitor        "Monitor 1"
    DefaultDepth    24
    SubSection    "Display"
        Depth    16
        Modes    "1024x768"
        Virtual    1024 768
    EndSubSection
    SubSection    "Display"
        Depth    24
        Modes    "1024x768"
        Virtual    1024 768
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier    "X Configured"

    Screen 0 "Screen 1"

    InputDevice    "Keyboard"
    InputDevice    "Mouse"
EndSection
********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /usr/sbin/mdm-start-seat
==========================================
#!/bin/bash

# Copyright (C) 2004-2007 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.

# This script starts a seat.
# Its arguments are:
# - The number of the "video card". Video card N has display 0.((N-1)) on the
#   underneath xserver.
# - The number of the display that the seat will have to open. This should be
#   unique for all seats.

# We assume $DISPLAY is already set here

MDM_PREFIX=/
MDM_SCRIPTS=${MDM_PREFIX}/usr/sbin
MDM_INCLUDE=${MDM_SCRIPTS}/mdm-common
source $MDM_INCLUDE

READ_DEVICES=${MDM_SCRIPTS}/read-devices
WRITE_MESSAGE=${MDM_SCRIPTS}/write-message
SEAT_PARENT_WINDOW=${MDM_SCRIPTS}/seat-parent-window

VIDEO_CARD_NUMBER=$1
SEAT_DISPLAY=$2

#MY_LOG=$MDM_LOGS/mdm-start-seat.${VIDEO_CARD_NUMBER}.log

function open_seat_parent_window () {
    # The first parameter given to this function must be [width]*n, where n is
    # a multiplier that gives the coordinates to correctly open
    # seat_parent_window. This number is also used on names of files.
    if [ -f "${MDM_PIDS}/seat-parent-window${DISPLAY}-$1.pid" ]; then
        kill `cat ${MDM_PIDS}/seat-parent-window${DISPLAY}-$1.pid` 2> /dev/null
        rm -f ${MDM_PIDS}/seat-parent-window${DISPLAY}-$1.pid 2> /dev/null
    fi

    $SEAT_PARENT_WINDOW $MY_SCREEN_SIZE+$1+0 seat-parent-window$DISPLAY-$1 &
    PID=$!
    echo $PID > ${MDM_PIDS}/seat-parent-window${DISPLAY}-$1.pid

    SEAT_WINDOW_ID=$(xwininfo -name "seat-parent-window${DISPLAY}-$1"   |
                        grep "Window id" | cut -d' ' -f4)
}


function display_message () {
    case $1 in
        key_press)
        $WRITE_MESSAGE $SEAT_WINDOW_ID "Press the F$2 key" 1>&2
        ;;
    button_press)
        $WRITE_MESSAGE $SEAT_WINDOW_ID "Press the mouse left button" 1>&2
        ;;
    wait)
        $WRITE_MESSAGE $SEAT_WINDOW_ID "Please wait" 1>&2
        ;;
    reconfigure)
        $WRITE_MESSAGE $SEAT_WINDOW_ID "Press ESC to reconfigure" 1>&2
        ;;
    esac

}

function parse_config_file () {

    if [ ! -z ${XKB_MODEL[VIDEO_CARD_NUMBER]} ]; then
        MY_XKB_MODEL=${XKB_MODEL[VIDEO_CARD_NUMBER]}
    else
        MY_XKB_MODEL=$DEFAULT_XKB_MODEL
    fi
    if [ ! -z ${XKB_LAYOUT[VIDEO_CARD_NUMBER]} ]; then
        MY_XKB_LAYOUT=${XKB_LAYOUT[VIDEO_CARD_NUMBER]}
    else
        MY_XKB_LAYOUT=$DEFAULT_XKB_LAYOUT
    fi
    if [ ! -z ${MODE[SEAT_NUMBER]} ]; then
        MY_SCREEN_SIZE=${MODE[VIDEO_CARD_NUMBER]}
    else
        MY_SCREEN_SIZE=$DEFAULT_MODE
    fi
}

function select_keyboard () {
    if [ -e "${MDM_DEVICES}/keyboard${SEAT_DISPLAY}" ]; then
    return
    fi

    display_message key_press $SEAT_DISPLAY

    CREATED=0
    while (( ! CREATED )); do
    # Who are the keyboards?
    KEYBOARDS=$($DISCOVER_DEVICES kevdev | cut -f2)
    #echo "    Keyboards = $KEYBOARDS" 1>&2

    # Remove used keyboards
    REMOVE=$(stat -c %N $MDM_DEVICES/keyboard* 2> /dev/null|
             cut -d'`' -f3 | cut -d"'" -f1)
    for i in ${REMOVE}; do
        KEYBOARDS=$(sed "s#$i##g" <<< $KEYBOARDS)
    done
    #echo "    ... after removing: Keyboards = $KEYBOARDS" 1>&2
   
    if [ -z "$KEYBOARDS" ]; then
        # No keyboards. Hopefully someone will connect one.
        sleep 1 # Don't use 100% CPU
        continue
    fi

    # See if someone presses the key:
    PRESSED=$($READ_DEVICES $SEAT_DISPLAY $KEYBOARDS | grep '^detect' |
                cut -d'|' -f2)

    if [ -z "$PRESSED" ]; then
        # if $READ_DEVICES gets killed the script won't do bad stuff
        continue
    fi
    if [ "$PRESSED" = 'timeout' ]; then
        continue
    fi

    # Ok, someone pressed the key
    ln -sf $PRESSED $MDM_DEVICES/keyboard${SEAT_DISPLAY}
    CREATED=1

    # Verify is there is already another link in $MDM_DEVICES/keyboard* that
    # points to the device. If there is, erase the one I created and
    # continue looping
    for i in `ls $MDM_DEVICES | grep "\
        if [ "$i" != "keyboard${SEAT_DISPLAY}" ]; then
        AUX=$(stat -c %N $MDM_DEVICES/$i| cut -d'`' -f3| cut -d"'" -f1)
        if [ "$AUX" = "$PRESSED" ]; then
            # Keyboard link already exists...
            rm -f $MDM_DEVICES/keyboard${SEAT_DISPLAY}
            CREATED=0
        fi
        fi
    done
    done

    KEYBOARD="$MDM_DEVICES/keyboard${SEAT_DISPLAY}"

}

function select_mouse () {
    if [ -e "${MDM_DEVICES}/mouse${SEAT_DISPLAY}" ]; then
    return
    fi

    CREATED=0
    while (( ! CREATED )); do
    # Who are the mice?
    MICE=$($DISCOVER_DEVICES mevdev | cut -f2)
   
    REMOVE=$(stat -c %N ${MDM_DEVICES}/mouse* 2> /dev/null|
             cut -d'`' -f3 | cut -d"'" -f1)
    for i in ${REMOVE}; do
        MICE=$(sed "s#$i##g" <<< $MICE)
    done
   
    if [ -z "$MICE" ]; then
        # No mice. Hopefully someone will connect one.
        sleep 1 # Don't use 100% CPU
        continue
    fi

    # Create the lock
    LOCK_EXISTS=1
    while (( LOCK_EXISTS )); do
        touch ${MDM_DEVICES}/lock${SEAT_DISPLAY}
        LOCK_EXISTS=0
        for i in `ls $MDM_DEVICES | grep "\
        if [ "$i" != "lock${SEAT_DISPLAY}" ]; then
            LOCK_EXISTS=1
        fi
        done
        if (( LOCK_EXISTS )); then
        # Yes, we'll call this lots of times...
        display_message wait
        rm -f ${MDM_DEVICES}/lock${SEAT_DISPLAY}
        sleep 1;
        fi
    done

    # Now we have the lock!
    display_message button_press

    # See if someone presses the button:
    PRESSED=$($READ_DEVICES 13 $MICE | grep '^detect' | cut -d'|' -f2)

    if [ -z "$PRESSED" ]; then
        # If $READ_DEVICES gets killed, don't do unwanted stuff
        rm -f ${MDM_DEVICES}/lock${SEAT_DISPLAY}
        continue
    fi
    if [ "$PRESSED" = 'timeout' ]; then
        # Wait 5 seconds to give other machines the opportunity to enter the
        # lock
        display_message wait
        rm -f ${MDM_DEVICES}/lock${SEAT_DISPLAY}
        sleep 5
        continue
    fi

    # Ok, someone pressed the key
    ln -sf $PRESSED ${MDM_DEVICES}/mouse${SEAT_DISPLAY}
    CREATED=1

    # Verify is there is already another link in $MDM_DEVICES/mouse* that
    # points to the device. If there is, erase the one I created and
    # continue looping
    for i in `ls $MDM_DEVICES | grep "\
        if [ "$i" != "mouse${SEAT_DISPLAY}" ]; then
        AUX=$(stat -c %N ${MDM_DEVICES}/$i| cut -d'`' -f3|cut -d"'" -f1)
        if [ "$AUX" = "$PRESSED" ]; then
            # Mouse link already exists...
            rm -f ${MDM_DEVICES}/mouse${SEAT_DISPLAY}
            CREATED=0
        fi
        fi
    done
    rm -f ${MDM_DEVICES}/lock${SEAT_DISPLAY}
    done

    MOUSE="${MDM_DEVICES}/mouse${SEAT_DISPLAY}"
}

parse_config_file

KEYBOARD=
MOUSE=
SEAT_WINDOW_ID=
SCREEN_X_ORIGIN=($(grep -A4 $DISPLAY $XRANDR_INFO_FILE |
                    tail -1 | cut -d'=' -f2))

# XXX: In case $SCREEN_X_ORIGIN has only one value, and SEAT_DISPLAY is odd,
# the open_seat_parent_window given parameter would be empty
# ($SCREEN_X_ORIGIN[1] for example).

open_seat_parent_window ${SCREEN_X_ORIGIN[$((SEAT_DISPLAY % 2))]:=0}

while (( 1 )); do

    #log --log-file-only "Configuring devices..."
    echo -e "\n--"
    echo "Configuring seat:"

    echo "  selecting keyboard"
    select_keyboard
    echo "  selecting mouse"
    select_mouse

    echo "  starting seat"
    display_manager_start_seat
   
    display_message reconfigure

    PRESSED=$($READ_DEVICES 14 $KEYBOARD | grep '^detect' | cut -d'|' -f2)
    if [ "$PRESSED" = 'esc' ]; then
    rm -f $KEYBOARD
    rm -f $MOUSE
    fi

done

********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /etc/rc0.d/K20mdm
ARQUIVO /etc/rc1.d/K20mdm
ARQUIVO /etc/rc2.d/S20mdm
ARQUIVO /etc/rc3.d/S20mdm
ARQUIVO /etc/rc4.d/S20mdm
ARQUIVO /etc/rc5.d/S20mdm
ARQUIVO /etc/rc6.d/K20mdm
==========================================
#!/bin/sh

# Copyright (C) 2004-2007 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.

. /lib/lsb/init-functions

MDM_PREFIX=/
MDM_SCRIPTS=${MDM_PREFIX}/usr/sbin

PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
MDM_BIN=${MDM_SCRIPTS}/mdm-bin

case "$1" in
    start)
        log_daemon_msg "Starting the Muliseat Display Manager..."
    $MDM_BIN start
    log_end_msg $?
        ;;
    stop)
        log_daemon_msg "Stopping the Multiseat Display Manager..."
    $MDM_BIN stop
    log_end_msg $?
        ;;
    restart)
        log_daemon_msg "Restarting the Multiseat Display Manager..."
    $MDM_BIN restart
    log_end_msg $?
        ;;
    reconfigure)
        log_daemon_msg "Reconfiguring the Multiseat Display Manager..."
    $MDM_BIN reconfigure
    log_end_msg $?
        ;;
    *)
        log_success_msg "Usage: /etc/init.d/mdm {start|stop|restart|reconfigure}"
    exit 1
        ;;
esac

exit 0
********************************************************************
********************************************************************
********************************************************************
********************************************************************

==========================================
ARQUIVO /etc/rc0.d/K01gdm
ARQUIVO /etc/rc1.d/K01gdm
ARQUIVO /etc/rc2.d/S30gdm
ARQUIVO /etc/rc3.d/S30gdm
ARQUIVO /etc/rc4.d/S30gdm
ARQUIVO /etc/rc5.d/S30gdm
ARQUIVO /etc/rc6.d/K01gdm

==========================================

#! /bin/sh
#
# Originally based on:
# Version:    @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
#
# Modified for gdm, Steve Haslam 14mar99
# modified to remove --exec, as it does not work on upgrades. 18jan2000
# modified to use --name, to detect stale PID files 18mar2000
# sleep until gdm dies, then restart it 16jul2000
# get along with other display managers (Branden Robinson, Ryan Murray) 05sep2001

set -e

# To start gdm even if it is not the default display manager, change
# HEED_DEFAULT_DISPLAY_MANAGER to "false."
HEED_DEFAULT_DISPLAY_MANAGER=true
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/gdm
PIDFILE=/var/run/gdm.pid
UPGRADEFILE=/var/run/gdm.upgrade

if [ -e $UPGRADEFILE -a "$1" != "restart" -a "$1" != "force-reload" ]; then
    SSD_ARG="--startas $DAEMON"
    rm -f $UPGRADEFILE
else
    SSD_ARG="--exec $DAEMON"
fi

# Allow cdd to override the config
if [ -f /etc/gdm/gdm-cdd.conf ]; then
    CONFIG_FILE="--config=/etc/gdm/gdm-cdd.conf"
fi

test -x $DAEMON || exit 0

if [ -r /etc/default/locale ]; then
  . /etc/default/locale
  export LANG LANGUAGE
elif [ -r /etc/environment ]; then
  . /etc/environment
  export LANG LANGUAGE
fi

. /lib/lsb/init-functions

case "$1" in
  start)
        if grep -wqs text /proc/cmdline; then
        log_warning_msg "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline."
      elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" -a "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" -a "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2>/dev/null)" != "$DAEMON" ]; then
        log_warning_msg "Not starting GNOME Display Manager (gdm); it is not the default display manager."
    else
        if [ -z "$SPLASH_ORIG_CONSOLE" ]; then
            log_begin_msg "Starting GNOME Display Manager..."
        fi
        # if usplash is running, make sure to stop it now, yes "start" kills it.
        if [ "$SPLASH_ORIG_CONSOLE" ]; then
            # usplash was already shut down earlier, so don't
            # log success as it will look weird on the console.
            log_end_msg=:
            elif pidof usplash > /dev/null; then
            SPLASH_ORIG_CONSOLE="$(fgconsole)"
            DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start
            # We've just shut down usplash, so don't log
            # success as it will look weird on the console.
            log_end_msg=:
        else
            log_end_msg=log_end_msg
        fi
        start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --name gdm $SSD_ARG -- $CONFIG_FILE >/dev/null 2>&1 || log_end_msg 1
        $log_end_msg 0

        if [ "$SPLASH_ORIG_CONSOLE" ] && \
           [ "$SPLASH_ORIG_CONSOLE" != serial ]; then
            # Wait a short while for the active console to
            # change, to try to avoid visible console noise from
            # later init scripts.
            i=0
            while [ "$(fgconsole)" = "$SPLASH_ORIG_CONSOLE" ]; do
                i="$(($i + 1))"
                if [ "$i" -gt 50 ]; then
                    break
                fi
                sleep 0.1
            done
        fi
    fi
  ;;
  stop)
    log_begin_msg "Stopping GNOME Display Manager..."
    start-stop-daemon --stop  --quiet --oknodo --pidfile $PIDFILE --name gdm $SSD_ARG --retry 30 >/dev/null 2>&1
    log_end_msg 0
  ;;
  reload)
    log_begin_msg "Reloading GNOME Display Manager configuration..."
    log_warning_msg "Changes will take effect when all current X sessions have ended."
    start-stop-daemon --stop --signal USR1 --quiet --pidfile \
        $PIDFILE --name gdm $SSD_ARG >/dev/null 2>&1
    log_end_msg 0
  ;;
  restart|force-reload)
    $0 stop || true
    $0 start
  ;;
  status)
    status_of_proc -p "$PIDFILE" "$DAEMON" gdm && exit 0 || exit $?
  ;;
  *)
    log_success_msg "Usage: /etc/init.d/gdm {start|stop|restart|reload|force-reload|status}"
    exit 1
  ;;
esac

exit 0