]> Frank Brehm's Git Trees - config/bruni/etc.git/commitdiff
committing changes in /etc after emerge run
authorfrank <frank@bruni.home.brehm-online.com>
Tue, 17 Jan 2012 11:45:58 +0000 (12:45 +0100)
committerFrank Brehm <root@bruni.home.brehm-online.com>
Tue, 17 Jan 2012 11:45:58 +0000 (12:45 +0100)
Package changes:
+gnome-base/gdm-2.20.11-r1

22 files changed:
.etckeeper
X11/dm/Sessions/custom.desktop [new file with mode: 0755]
X11/gdm/Init/Default [new file with mode: 0755]
X11/gdm/PostLogin/Default.sample [new file with mode: 0755]
X11/gdm/PostSession/Default [new file with mode: 0755]
X11/gdm/PreSession/Default [new file with mode: 0755]
X11/gdm/XKeepsCrashing [new file with mode: 0755]
X11/gdm/Xsession [new file with mode: 0755]
X11/gdm/custom.conf [new file with mode: 0644]
X11/gdm/gdmprefetchlist [new file with mode: 0644]
X11/gdm/locale.alias [new file with mode: 0644]
X11/gdm/modules/AccessDwellMouseEvents [new file with mode: 0644]
X11/gdm/modules/AccessKeyMouseEvents [new file with mode: 0644]
X11/gdm/modules/factory-AccessDwellMouseEvents [new file with mode: 0644]
X11/gdm/modules/factory-AccessKeyMouseEvents [new file with mode: 0644]
X11/xinit/xinitrc.d/49-keychain [new file with mode: 0755]
X11/xinit/xinitrc.d/50-ssh-agent [new file with mode: 0755]
env.d/99xdg-gdm [new file with mode: 0644]
pam.d/gdm [new file with mode: 0644]
pam.d/gdm-autologin [new file with mode: 0644]
pam.d/gdmsetup [new file with mode: 0644]
security/console.apps/gdmsetup [new file with mode: 0644]

index b6be0b6aff594387b4c2e1fb1ae12ff52b11180c..c406e65b3fa6df68ca67119250b6e6a1a993f860 100755 (executable)
@@ -87,7 +87,27 @@ maybe chmod 0644 './X11/app-defaults/XDvi'
 maybe chmod 0755 './X11/chooser.sh'
 maybe chmod 0755 './X11/dm'
 maybe chmod 0755 './X11/dm/Sessions'
+maybe chmod 0755 './X11/dm/Sessions/custom.desktop'
 maybe chmod 0644 './X11/dm/Sessions/wmaker.desktop'
+maybe chmod 0755 './X11/gdm'
+maybe chmod 0755 './X11/gdm/Init'
+maybe chmod 0755 './X11/gdm/Init/Default'
+maybe chmod 0755 './X11/gdm/PostLogin'
+maybe chmod 0755 './X11/gdm/PostLogin/Default.sample'
+maybe chmod 0755 './X11/gdm/PostSession'
+maybe chmod 0755 './X11/gdm/PostSession/Default'
+maybe chmod 0755 './X11/gdm/PreSession'
+maybe chmod 0755 './X11/gdm/PreSession/Default'
+maybe chmod 0755 './X11/gdm/XKeepsCrashing'
+maybe chmod 0755 './X11/gdm/Xsession'
+maybe chmod 0644 './X11/gdm/custom.conf'
+maybe chmod 0644 './X11/gdm/gdmprefetchlist'
+maybe chmod 0644 './X11/gdm/locale.alias'
+maybe chmod 0755 './X11/gdm/modules'
+maybe chmod 0644 './X11/gdm/modules/AccessDwellMouseEvents'
+maybe chmod 0644 './X11/gdm/modules/AccessKeyMouseEvents'
+maybe chmod 0644 './X11/gdm/modules/factory-AccessDwellMouseEvents'
+maybe chmod 0644 './X11/gdm/modules/factory-AccessKeyMouseEvents'
 maybe chmod 0755 './X11/mwm'
 maybe chmod 0644 './X11/mwm/system.mwmrc'
 maybe chmod 0755 './X11/startDM.sh'
@@ -99,6 +119,8 @@ maybe chmod 0755 './X11/xinit/xinitrc.d/10-user-dirs-update-gnome'
 maybe chmod 0755 './X11/xinit/xinitrc.d/10-xdg-menu-gnome'
 maybe chmod 0755 './X11/xinit/xinitrc.d/11-xdg-menu-kde-4'
 maybe chmod 0755 './X11/xinit/xinitrc.d/15-xdg-data-gnome'
+maybe chmod 0755 './X11/xinit/xinitrc.d/49-keychain'
+maybe chmod 0755 './X11/xinit/xinitrc.d/50-ssh-agent'
 maybe chmod 0755 './X11/xinit/xinitrc.d/70-seahorse-agent'
 maybe chmod 0755 './X11/xinit/xinitrc.d/80-dbus'
 maybe chmod 0755 './X11/xinit/xinitrc.d/90-consolekit'
@@ -459,6 +481,7 @@ maybe chmod 0644 './env.d/99R'
 maybe chmod 0644 './env.d/99editor'
 maybe chmod 0644 './env.d/99fltk-1'
 maybe chmod 0644 './env.d/99gentoolkit-env'
+maybe chmod 0644 './env.d/99xdg-gdm'
 maybe chmod 0755 './env.d/binutils'
 maybe chmod 0644 './env.d/binutils/config-x86_64-pc-linux-gnu'
 maybe chmod 0644 './env.d/binutils/x86_64-pc-linux-gnu-2.21.1'
@@ -1074,6 +1097,9 @@ maybe chmod 0644 './pam.d/chsh'
 maybe chmod 0644 './pam.d/cron'
 maybe chmod 0644 './pam.d/cups'
 maybe chmod 0644 './pam.d/cvs'
+maybe chmod 0644 './pam.d/gdm'
+maybe chmod 0644 './pam.d/gdm-autologin'
+maybe chmod 0644 './pam.d/gdmsetup'
 maybe chmod 0644 './pam.d/gnome-screensaver'
 maybe chmod 0644 './pam.d/groupadd'
 maybe chmod 0644 './pam.d/groupdel'
@@ -1313,6 +1339,8 @@ maybe chmod 0600 './securetty'
 maybe chmod 0755 './security'
 maybe chmod 0644 './security/access.conf'
 maybe chmod 0644 './security/capability.conf'
+maybe chmod 0755 './security/console.apps'
+maybe chmod 0644 './security/console.apps/gdmsetup'
 maybe chmod 0644 './security/group.conf'
 maybe chmod 0644 './security/limits.conf'
 maybe chmod 0755 './security/limits.d'
diff --git a/X11/dm/Sessions/custom.desktop b/X11/dm/Sessions/custom.desktop
new file mode 100755 (executable)
index 0000000..ea73760
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+# The names/descriptions should really be better
+Name=Custom Session
+Comment=This starts a custom session
+Exec=custom
+# The "custom" Exec is a very special one and is handled specially in
+# the Xsession script and just runs "~/.xsession" directly
+Icon=
+Type=Application
diff --git a/X11/gdm/Init/Default b/X11/gdm/Init/Default
new file mode 100755 (executable)
index 0000000..de036f4
--- /dev/null
@@ -0,0 +1,89 @@
+#!/bin/sh
+# Stolen from the debian kdm setup, aren't I sneaky
+# Plus a lot of fun stuff added
+#  -George
+
+PATH=/usr/bin:$PATH
+OLD_IFS=$IFS
+
+gdmwhich () {
+  COMMAND="$1"
+  OUTPUT=
+  IFS=:
+  for dir in $PATH
+  do
+    if test -x "$dir/$COMMAND" ; then
+      if test "x$OUTPUT" = "x" ; then
+        OUTPUT="$dir/$COMMAND"
+      fi
+    fi
+  done
+  IFS=$OLD_IFS 
+  echo "$OUTPUT"
+}
+
+sysresources=/etc/X11/Xresources
+
+# merge in defaults
+if [ -f "$sysresources" ]; then
+    xrdb -merge "$sysresources"
+fi
+
+sysmodmap=/etc/X11/Xmodmap
+
+XMODMAP=`gdmwhich xmodmap`
+if [ "x$XMODMAP" != "x" ] ; then
+  if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then
+    if [ -f $sysmodmap ]; then
+      $XMODMAP $sysmodmap
+    fi
+  else
+    ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
+  fi
+
+  #
+  # Switch Sun's Alt and Meta mod mappings
+  #
+
+  UNAME=`gdmwhich uname`
+  PROCESSOR=`$UNAME -p`
+  if [ "x$PROCESSOR" = "xsparc" ]; then
+    if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null
+    then
+      $XMODMAP -e "clear Mod1" \
+               -e "clear Mod4" \
+               -e "add Mod1 = Alt_L" \
+               -e "add Mod1 = Alt_R" \
+               -e "add Mod4 = Meta_L" \
+               -e "add Mod4 = Meta_R"
+    fi
+  fi
+fi
+
+SETXKBMAP=`gdmwhich setxkbmap`
+if [ "x$SETXKBMAP" != "x" ] ; then
+  # FIXME: is this all right?  Is this completely on crack?
+  # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
+  # FIXME: This should be done in code.  Or there must be an easier way ...
+  if [ -n "$GDM_PARENT_DISPLAY" ]; then
+    XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
+    if [ -n "$XKBSETUP" ]; then
+      XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'`
+      XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'`
+      XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'`
+      XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'`
+      XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'`
+      if [ -n "$XKBKEYMAP" ]; then
+        $SETXKBMAP -keymap "$XKBKEYMAP"
+      elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then
+        $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY"
+      elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then
+        $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS"
+      elif [ -n "$XKBSYMBOLS" ]; then
+        $SETXKBMAP -symbols "$XKBSYMBOLS"
+      fi
+    fi
+  fi
+fi
+
+exit 0
diff --git a/X11/gdm/PostLogin/Default.sample b/X11/gdm/PostLogin/Default.sample
new file mode 100755 (executable)
index 0000000..a61c098
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# Note: this is a sample and will not be run as is.  Change the name of this
+# file to <gdmconfdir>/PostLogin/Default for this script to be run.  This
+# script will be run before any setup is run on behalf of the user and is
+# useful if you for example need to do some setup to create a home directory
+# for the user or something like that.  $HOME, $LOGNAME and such will all be
+# set appropriately and this script is run as root.
diff --git a/X11/gdm/PostSession/Default b/X11/gdm/PostSession/Default
new file mode 100755 (executable)
index 0000000..fa75316
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+PATH="/usr/bin:$PATH:/bin:/usr/bin"
+OLD_IFS=$IFS
+
+gdmwhich () {
+  COMMAND="$1"
+  OUTPUT=
+  IFS=:
+  for dir in $PATH
+  do
+    if test -x "$dir/$COMMAND" ; then
+      if test "x$OUTPUT" = "x" ; then
+        OUTPUT="$dir/$COMMAND"
+      fi
+    fi
+  done
+  IFS=$OLD_IFS 
+  echo "$OUTPUT"
+}
+
+exit 0
diff --git a/X11/gdm/PreSession/Default b/X11/gdm/PreSession/Default
new file mode 100755 (executable)
index 0000000..dc523c6
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Note that output goes into the .xsession-errors file for easy debugging
+#
+PATH="/usr/bin:$PATH:/bin:/usr/bin"
+OLD_IFS=$IFS
+
+gdmwhich () {
+  COMMAND="$1"
+  OUTPUT=
+  IFS=:
+  for dir in $PATH
+  do
+    if test -x "$dir/$COMMAND" ; then
+      if test "x$OUTPUT" = "x" ; then
+        OUTPUT="$dir/$COMMAND"
+      fi
+    fi
+  done
+  IFS=$OLD_IFS 
+  echo "$OUTPUT"
+}
+
+# Set background color
+XSETROOT=`gdmwhich xsetroot`
+if [ "x$XSETROOT" != "x" ] ; then
+
+       CHECKBACKCOLOR="OK"
+       if [ "x$GDM_GREETER_TYPE" = "xTHEMED" ]; then
+               BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/GraphicalThemedColor $DISPLAY"`
+
+               CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
+               if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
+                       BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
+               else
+                       BACKCOLOR=""
+               fi
+       fi
+
+       # If we tried to load the themed backgroundcolor, but failed, then try loading plain color
+       if [ "x$CHECKBACKCOLOR" != "xOK" ] || [ "x$GDM_GREETER_TYPE" = "xPLAIN" ]; then
+
+               # Background type can be 0=None, 1=Image & Color, 2=Color, or 3=Image 
+               BACKTYPE=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundType $DISPLAY"`
+
+               # Skip if background type does not include a color
+               if [ "x$BACKTYPE" = "xOK 1" ] || [ "x$BACKTYPE" = "xOK 2" ]; then
+                       BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundColor $DISPLAY"`
+
+                       CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
+                       if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
+                               BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
+                       else
+                               BACKCOLOR=""
+                       fi
+               fi
+       fi
+
+       # Default value
+       if [ "x$BACKCOLOR" = "x" ]; then
+               BACKCOLOR="#76848F"
+       fi
+
+       "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
+fi
+
+exit 0
diff --git a/X11/gdm/XKeepsCrashing b/X11/gdm/XKeepsCrashing
new file mode 100755 (executable)
index 0000000..5b7c4a8
--- /dev/null
@@ -0,0 +1,194 @@
+#!/bin/sh
+
+if test "x$UNSAFE_TO_TRANSLATE" = "xyes" ; then
+  LANG=C
+  unset LC_ALL
+  unset LC_MESSAGES
+fi
+
+if test -x "$LIBEXECDIR/gdmtranslate" ; then
+  GDMTRANSLATE="$LIBEXECDIR/gdmtranslate"
+else
+  GDMTRANSLATE=
+fi
+
+gettextfunc () {
+  if test "x$GDMTRANSLATE" != "x" ; then
+    "$GDMTRANSLATE" "$1"
+  else
+    echo "$1"
+  fi
+}
+
+OLD_IFS=$IFS
+
+gdmwhich () {
+  COMMAND="$1"
+  OUTPUT=
+  IFS=:
+  for dir in $PATH
+  do
+    if test -x "$dir/$COMMAND" ; then
+      if test "x$OUTPUT" = "x" ; then
+        OUTPUT="$dir/$COMMAND"
+      fi
+    fi
+  done
+  IFS=$OLD_IFS
+  echo "$OUTPUT"
+}
+
+MSG3=`gettextfunc "Failed to start the X server (your graphical interface).  It is likely that it is not set up correctly.  You will need to log in on a console and reconfigure the X server.  Then restart GDM."`
+MSG4=`gettextfunc "Would you like to try to configure the X server?  Note that you will need the root password for this."`
+MSG5=`gettextfunc "Please type in the root (privileged user) password."`
+MSG6=`gettextfunc "Trying to restart the X server."`
+MSG7=`gettextfunc "The X server is now disabled.  Restart GDM when it is configured correctly."`
+MSG8=`gettextfunc "Failed to start the X server (your graphical interface).  It is likely that it is not set up correctly.  Would you like to view the X server output to diagnose the problem?"`
+MSG9=`gettextfunc "Would you like to view the detailed X server output as well?"`
+
+# there are some env vars defined:
+# XLOG = the log file for the X server
+# BINDIR = location of gdm binaries
+# SBINDIR = location of gdm system binaries
+# LIBEXECDIR = location of gdm libexec binaries (gdmaskpass, gdmopen)
+
+# return values are
+# 0 = try again, runs this server again
+# 1 = abort this display, removes this server from the list
+# 32 = something went very wrong, things will just get logged.
+#      this means this script didnt work so do alternative things
+#      to tell the user if possible
+
+#
+# First see if we can find an X configuration program
+#  (first one in the list will be used)
+#
+XCONFIGURATOR=
+for n in \
+  /usr/bin/system-config-display \
+  /usr/bin/redhat-config-xfree86 \
+  /usr/sbin/XFdrake             \
+  /usr/bin/X11/XF86Setup        \
+  /usr/bin/X11/Xconfigurator    \
+  /usr/bin/X11/xf86cfg          \
+   ; do
+  # standard shell test has no or and loops have no breaks, eek
+  if test "x$XCONFIGURATOR" = "x" ; then
+    if test -x "$n" ; then
+      XCONFIGURATOR="$n"
+    fi
+  fi
+done
+
+#
+# Now we check for dialog and gdmaskpass
+#
+DIALOG=`gdmwhich dialog`
+if test "x$DIALOG" = "x" ; then
+  DIALOG=`gdmwhich whiptail`
+fi
+if test -x "$LIBEXECDIR/gdmaskpass" ; then
+  ASKPASS="$LIBEXECDIR/gdmaskpass"
+else
+  ASKPASS=
+fi
+
+#
+#  If this is a mouse problem try mouseconfig and modify some
+#  messages
+#
+if grep '^\(Cannot open mouse\|No core pointer\)' "$XLOG" 2> /dev/null ; then
+
+  MSG8=`gettextfunc "Failed to start the X server (your graphical interface).  It seems that the pointer device (your mouse) is not set up correctly.  Would you like to view the X server output to diagnose the problem?"`
+
+  if test -x /usr/sbin/mouseconfig ; then
+    XCONFIGURATOR=/usr/sbin/mouseconfig
+    # Note: we know this is a mouse problem and yay we have mouseconfig
+    MSG4=`gettextfunc "Would you like to try to configure the mouse?  Note that you will need the root password for this."`
+  fi
+
+  if test -x /usr/bin/system-config-mouse ; then
+    XCONFIGURATOR=/usr/bin/system-config-mouse
+    # Note: we know this is a mouse problem and yay we have system-config-mouse
+    MSG4=`gettextfunc "Would you like to try to configure the mouse?  Note that you will need the root password for this."`
+  fi
+
+fi
+
+# we require 'gdmopen', to open a console, because we really dont
+# have one.  Perhaps someone should try to figure out some shell
+# black magic to get this to work on other then linux systems
+if test ! -x "$LIBEXECDIR/gdmopen" ; then
+  exit 32
+fi
+
+# when we run ourselves from the open we will pass a -noopen argument
+if test "x$1" = "x-noopen" ; then
+  shift
+else
+  #
+  # We do a lot of work wastefully over again, but oh well,
+  # perhaps this needs fixing.
+  #
+  "$LIBEXECDIR/gdmopen" -l /bin/sh -c "$0 -noopen $@"
+  exit $?
+fi
+
+clear
+
+# Note, dialog required, though this script could be fixed to not require it
+# I suppose
+if test "x" = "x$DIALOG" ; then
+  echo =======================================================================
+  echo 
+  cat "$XLOG"
+  echo 
+  echo =======================================================================
+  echo
+  if test -x /usr/bin/fmt ; then
+    echo  "$MSG3" | /usr/bin/fmt
+  else
+    echo  "$MSG3"
+  fi
+  echo
+  echo =======================================================================
+  read
+  exit 1
+fi
+
+if "$DIALOG" --yesno "$MSG8" 10 50 ; then 
+  "$DIALOG" --textbox "$XLOG" 22 76
+  # Support XFree86 v4 logfile thingie
+  if grep '^(..) Log file: "' "$XLOG" 2> /dev/null ; then
+    XLOG_DETAIL=`grep '^(..) Log file: "' "$XLOG" | sed 's/^[^"]*"\([^"]*\)".*$/\1/'`
+    if "$DIALOG" --yesno "$MSG9" 10 50 ; then 
+      "$DIALOG" --textbox "$XLOG_DETAIL" 22 76
+    fi
+  fi
+fi
+
+if test "x$XCONFIGURATOR" = "x" ; then
+  "$DIALOG" --msgbox "$MSG7" 8 50
+  exit 1
+fi
+
+if "$DIALOG" --yesno "$MSG4" 10 50 ; then 
+  clear
+  echo
+  echo "$MSG5"
+  if test "x$ASKPASS" = "x" ; then
+    # dirty trick to fool su into asking the root password even if were
+    # root
+    su nobody -c "su -c $XCONFIGURATOR"
+  else
+    if "$ASKPASS" ; then
+      "$XCONFIGURATOR"
+    fi
+  fi
+  clear
+  "$DIALOG" --msgbox "$MSG6" 8 50
+  exit 0
+else
+  "$DIALOG" --msgbox "$MSG7" 8 50
+  exit 1
+fi
diff --git a/X11/gdm/Xsession b/X11/gdm/Xsession
new file mode 100755 (executable)
index 0000000..aa19837
--- /dev/null
@@ -0,0 +1,227 @@
+#!/bin/sh
+#
+# This is SORT OF LIKE an X session, but not quite.  You get a command as the
+# first argument (it could be multiple words, so run it with "eval").  As a
+# special case, the command can be:
+#  default - Run the appropriate Xclients startup (see the code below)
+#  custom - Run ~/.xsession and if that's not available run 'default'
+#
+# (Note that other arguments could also follow, but only the command one is
+# right now relevant and supported)
+#
+# The output is ALREADY redirected to .xsession-errors in GDM.  This way
+# .xsession-errors actually gets more output such as if the PreSession script
+# is failing.  This also prevents DoS attacks if some app in the users session
+# can be prodded to dump lots of stuff on the stdout/stderr.  We wish to be
+# robust don't we?  In case you wish to use an existing script for other DM's,
+# you can just not redirect when GDMSESSION is set.  GDMSESSION will always
+# be set from gdm.
+#
+# Also note that this is not run as a login shell, this is just executed.
+# This is why we source the profile files below.
+#
+# based on:
+# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
+
+command="$@"
+
+# this will go into the .xsession-errors along with all other echo's
+# good for debugging where things went wrong
+echo "$0: Beginning session setup..."
+
+# First read /etc/profile and .profile
+test -f /etc/profile && . /etc/profile
+test -f "$HOME/.profile" && . "$HOME/.profile"
+# Second read /etc/xprofile and .xprofile for X specific setup
+test -f /etc/xprofile && . /etc/xprofile
+test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
+
+# Translation stuff
+if [ -x "/usr/libexec/gdmtranslate" ] ; then
+  gdmtranslate="/usr/libexec/gdmtranslate"
+else
+  gdmtranslate=
+fi
+
+# Note that this should only go to zenity dialogs which always expect utf8
+gettextfunc () {
+  if [ "x$gdmtranslate" != "x" ] ; then
+    "$gdmtranslate" --utf8 "$1"
+  else
+    echo "$1"
+  fi
+}
+
+OLD_IFS=$IFS
+
+gdmwhich () {
+  COMMAND="$1"
+  OUTPUT=
+  IFS=:
+  for dir in $PATH
+  do
+    if test -x "$dir/$COMMAND" ; then
+      if test "x$OUTPUT" = "x" ; then
+        OUTPUT="$dir/$COMMAND"
+      fi
+    fi
+  done
+  IFS=$OLD_IFS 
+  echo "$OUTPUT"
+}
+
+zenity=`gdmwhich zenity`
+
+# Note: ~/.xsession-errors is now done in the daemon so that it
+# works for ALL sessions (except ones named 'Failsafe')
+
+# clean up after xbanner
+freetemp=`gdmwhich freetemp`
+if [ -n "$freetemp" ] ; then
+       "$freetemp"
+fi
+
+userresources="$HOME/.Xresources"
+usermodmap="$HOME/.Xmodmap"
+userxkbmap="$HOME/.Xkbmap"
+
+sysresources=/etc/X11/Xresources 
+sysmodmap=/etc/X11/Xmodmap 
+sysxkbmap=/etc/X11/Xkbmap
+
+rh6sysresources=/etc/X11/xinit/Xresources 
+rh6sysmodmap=/etc/X11/xinit/Xmodmap 
+
+# merge in defaults
+if [ -f "$rh6sysresources" ]; then
+    xrdb -merge "$rh6sysresources"
+fi
+
+if [ -f "$sysresources" ]; then
+    xrdb -merge "$sysresources"
+fi
+
+if [ -f "$userresources" ]; then
+    xrdb -merge "$userresources"
+fi
+
+# merge in keymaps
+if [ -f "$sysxkbmap" ]; then
+    setxkbmap `cat "$sysxkbmap"`
+    XKB_IN_USE=yes
+fi
+
+if [ -f "$userxkbmap" ]; then
+    setxkbmap `cat "$userxkbmap"`
+    XKB_IN_USE=yes
+fi
+
+#
+# Eeek, this seems like too much magic here
+#
+if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
+    if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
+       xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
+       if [ -n "$xkbsymbols" ]; then
+           setxkbmap -symbols "$xkbsymbols"
+           XKB_IN_USE=yes
+       fi
+    fi
+fi
+
+# xkb and xmodmap don't play nice together
+if [ -z "$XKB_IN_USE" ]; then
+    if [ -f "$rh6sysmodmap" ]; then
+       xmodmap "$rh6sysmodmap"
+    fi
+
+    if [ -f "$sysmodmap" ]; then
+       xmodmap "$sysmodmap"
+    fi
+
+    if [ -f "$usermodmap" ]; then
+       xmodmap "$usermodmap"
+    fi
+fi
+
+unset XKB_IN_USE
+
+# Normalize languages, some places/distros screw us up in /etc/profile,
+# so in case the user did select a language
+if [ -n "$GDM_LANG" ]; then
+  LANG="$GDM_LANG"
+  export LANG
+
+  if [ -n "$LC_ALL" ]; then
+    if [ "$LC_ALL" != "$LANG" ]; then
+      LC_ALL="$LANG"
+    fi
+  else
+    unset LC_ALL
+  fi
+
+  if [ -n "$LANGUAGE" ]; then
+    if [ "$LANGUAGE" != "$LANG" ]; then
+      LANGUAGE="$LANG"
+    fi
+  else
+    unset LANGUAGE
+  fi
+
+  if [ -n "$LINGUAS" ]; then
+    if [ "$LINGUAS" != "$LANG" ]; then
+      LINGUAS="$LANG"
+    fi
+  else
+    unset LINGUAS
+  fi
+fi
+
+if [ "x$command" = "xcustom" ] ; then
+  if [ -x "$HOME/.xsession" ]; then
+    command="$HOME/.xsession"
+  else
+    echo "$0: Cannot find ~/.xsession will try the default session"
+    command="default"
+  fi
+fi
+
+if [ "x$command" = "xdefault" ] ; then
+  if [ -x "$HOME/.Xclients" ]; then
+    command="$HOME/.Xclients"
+  elif [ -x /etc/X11/xinit/Xclients ]; then
+    command="/etc/X11/xinit/Xclients"
+  elif [ -x /etc/X11/Xclients ]; then
+    command="/etc/X11/Xclients"
+  else
+    if [ -n "$zenity" ] ; then
+       disptext=`gettextfunc "System has no Xclients file, so starting a failsafe xterm session.  Windows will have focus only if the mouse pointer is above them.  To get out of this mode type 'exit' in the window."`
+      "$zenity" --info --text "$disptext"
+    else
+      echo "$0: Cannot find Xclients"
+    fi
+    exec xterm -geometry 80x24+0+0
+  fi
+fi
+
+# run all system xinitrc shell scripts.
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+    for i in /etc/X11/xinit/xinitrc.d/* ; do
+        if [ -x "$i" ]; then
+           . "$i"
+        fi
+    done
+fi
+
+echo "$0: Setup done, will execute: $command"
+
+eval exec $command
+
+echo "$0: Executing $command failed, will run xterm"
+
+if [ -n "$zenity" ] ; then
+       disptext=`gettextfunc "Failed to start the session, so starting a failsafe xterm session.  Windows will have focus only if the mouse pointer is above them.  To get out of this mode type 'exit' in the window."`
+       "$zenity" --info --text "$disptext"
+fi
+
+exec xterm -geometry 80x24+0+0
diff --git a/X11/gdm/custom.conf b/X11/gdm/custom.conf
new file mode 100644 (file)
index 0000000..559823b
--- /dev/null
@@ -0,0 +1,80 @@
+# GDM Custom Configuration 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.
+#
+# This file overrides the default configuration settings.  These settings 
+# are stored in the GDM System Defaults configuration file, which is found
+# at the following location.
+#
+# /usr/share/gdm/defaults.conf.  
+#
+# This file contains comments about the meaning of each configuration option,
+# so is also a useful reference.  Also refer to the documentation links at
+# the end of this comment for further information.  In short, to hand-edit
+# this file, simply add or modify the key=value combination in the
+# appropriate section in the template below this comment section.
+#
+# For example, if you want to specify a different value for the Enable key
+# in the "[debug]" section of your GDM System Defaults configuration file,
+# then add "Enable=true" in the "[debug]" section of this file.  If the
+# key already exists in this file, then simply modify it.
+#
+# 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.
+#
+# If you hand edit a GDM configuration file, you can run the following
+# command and the GDM daemon will immediately reflect the change.  Any
+# running GDM GUI programs will also be notified to update with the new
+# configuration.
+#
+# gdmflexiserver --command="UPDATE_CONFIG <configuration key>"
+#
+# 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]
+
+# Note that to disable servers defined in the GDM System Defaults
+# configuration file (such as 0=Standard, you must put a line in this file
+# that says 0=inactive, as described in the Configuration section of the GDM
+# documentation.
+#
+[servers]
+
+# Also note, that if you redefine a [server-foo] section, then GDM will
+# use the definition in this file, not the GDM System Defaults configuration
+# file.  It is currently not possible to disable a [server-foo] section
+# defined in the GDM System Defaults configuration file.
+#
diff --git a/X11/gdm/gdmprefetchlist b/X11/gdm/gdmprefetchlist
new file mode 100644 (file)
index 0000000..45cbbfc
--- /dev/null
@@ -0,0 +1,43 @@
+# If GDM is built with the --with-prefetch option, then this file
+# is installed on the system, and the gdm.conf PreFetchProgram
+# value should be set properly to cause the first login program 
+# managed to preload this list of libraries.  It has been shown that
+# preloading these libraries improves first-time login performance
+# for the GNOME desktop.
+#
+# This list of libraries has been optimized for a GNOME session running
+# on Solaris.  People who want to contribute alternative lists of
+# libraries for other distributions or desktop environments can 
+# contribute them to the "gdm" category in http://bugzilla.gnome.org/,
+# and these can be made available in future releases of GDM.
+#
+/usr/share/icons/hicolor/icon-theme.cache
+/usr/share/icons/blueprint/icon-theme.cache
+/usr/share/icons/gnome/icon-theme.cache
+/usr/bin/nautilus
+/usr/bin/gnome-panel
+/usr/lib/libbonoboui-2.so
+/usr/lib/libwnck-1.so
+/usr/lib/libgnomevfs-2.so
+/usr/bin/metacity
+/usr/lib/libeel-2.so
+/usr/lib/libbonobo-2.so
+/usr/openwin/lib/libXt.so
+/usr/lib/libgnomeui-2.so
+/usr/lib/clock-applet
+/usr/lib/libORBit-2.so
+/usr/X11/lib/libGL.so
+/usr/openwin/lib/X11/fonts/TrueType/VeraMoIt.ttf
+/usr/lib/libgnome-desktop-2.so
+/usr/lib/wnck-applet
+/usr/lib/libgstreamer-0.10.so
+/usr/dt/lib/libXm.so
+/usr/lib/libpoppler.so
+/usr/lib/libgconf-2.so
+/usr/sfw/lib/libcrypto.so
+/usr/lib/nautilus/extensions-1.0/libevince-properties-page.so
+/usr/lib/gnome-vfs-2.0/modules/libmapping.so
+/usr/lib/libpoppler-glib.so
+/usr/lib/libpanel-applet-2.so
+/usr/lib/libstartup-notification-1.so
+/usr/lib/libatk-1.0.so
diff --git a/X11/gdm/locale.alias b/X11/gdm/locale.alias
new file mode 100644 (file)
index 0000000..8134963
--- /dev/null
@@ -0,0 +1,147 @@
+# NOTE! This is a broken way to do things.  GDM currently reads languages ONLY
+# from this file.  This is Broken(tm).  This setup will be replaced in some
+# future version to be replaced by some automatic detection of available
+# locales.  This file is not really a locale.alias file and the first word
+# is used as a label in case gdm doesn't know this language personally,
+# else it's ignored.
+#
+# The format of this file is SIMILAR (but not the same to the locale.alias
+# format).  You could however point gdm at a real locale.alias and it would
+# still concievably work.  Note that the first word cannot contain any spaces.
+# The second word can be a comma separated list of locales to try.  GDM will
+# try if each locale exists and only if it does will it show that locale.  The
+# list is tried in order and the first working one is used.
+#
+#              - George
+
+C(POSIX)               C,POSIX
+Afrikaans              af_ZA.UTF-8,af_ZA
+Albanian               sq_AL.UTF-8,sq_AL
+Amharic                        am_ET.UTF-8,am_ET
+Arabic(Egypt)          ar_EG.UTF-8,ar_EG
+Arabic(Lebanon)                ar_LB.UTF-8,ar_LB
+Arabic(SaudiArabia)    ar_SA.UTF-8,ar_SA
+Armenian               hy_AM.UTF-8,hy_AM
+Azerbaijani            az_AZ.UTF-8,az_AZ
+Azerbaijani(Iran)      az_IR.UTF-8,az_IR
+Basque                 eu_ES.UTF-8,eu_ES
+Belarusian             be_BY.UTF-8,be_BY
+Belarusian(Latin)      be_BY.UTF-8@latin,be_BY@latin
+Bengali                        bn_BD.UTF-8,bn_BD
+Bengali(India)         bn_IN.UTF-8,bn_IN
+Bosnian                        bs_BA.UTF-8,bs_BA
+Breton                 br_FR.UTF-8,br_FR
+Bulgarian              bg_BG.UTF-8,bg_BG
+Catalan                        ca_ES.UTF-8,ca_ES
+Chinese(ChinaMainland) zh_CN.UTF-8,zh_CN
+Chinese(GB18030)       zh_CN.GB18030
+Chinese(Hong-Kong)     zh_HK.UTF-8,zh_HK
+Chinese(Singapore)     zh_SG.UTF-8,zh_SG
+Chinese(Taiwan)                zh_TW.UTF-8,zh_TW
+Croatian               hr_HR.UTF-8,hr_HR
+Czech                  cs_CZ.UTF-8,cs_CZ
+Danish                 da_DK.UTF-8,da_DK
+Dutch                  nl_NL.UTF-8,nl_NL
+Dutch(Belgium)         nl_BE.UTF-8,nl_BE
+English(Australia)     en_AU.UTF-8,en_AU
+English(Canada)                en_CA.UTF-8,en_CA
+English(Ireland)       en_IE.UTF-8,en_IE
+English(Malta)         en_MT.UTF-8,en_MT
+English(NewZealand)    en_NZ.UTF-8,en_NZ
+English(SouthAfrica)   en_ZA.UTF-8,en_ZA
+English(UK)            en_GB.UTF-8,en_GB
+English(USA)           en_US.UTF-8,en_US
+Esperanto              eo.UTF-8,eo
+Estonian               et_EE.UTF-8,et_EE
+Finnish                        fi_FI.UTF-8,fi_FI
+French                 fr_FR.UTF-8,fr_FR
+French(Belgium)                fr_BE.UTF-8,fr_BE
+French(Canada)         fr_CA.UTF-8,fr_CA
+French(Luxembourg)     fr_LU.UTF-8,fr_LU
+French(Switzerland)    fr_CH.UTF-8,fr_CH
+Galician               gl_ES.UTF-8,gl_ES
+German                 de_DE.UTF-8,de_DE
+German(Austria)                de_AT.UTF-8,de_AT
+German(Switzerland)    de_CH.UTF-8,de_CH
+German(Luxembourg)     de_LU.UTF-8,de_LU
+Greek                  el_GR.UTF-8,el_GR
+Greek(Cyprus)          el_CY.UTF-8,el_CY
+Gujarati               gu_IN.UTF-8,gu_IN
+Hebrew                 he_IL.UTF-8,he_IL
+Hindi                  hi_IN.UTF-8,hi_IN
+Hungarian              hu_HU.UTF-8,hu_HU
+Icelandic              is_IS.UTF-8,is_IS
+Indonesian             id_ID.UTF-8,id_ID
+Interlingua            ia.UTF-8,ia
+Irish                  ga_IE.UTF-8,ga_IE
+Italian                        it_IT.UTF-8,it_IT
+Japanese               ja_JP.UTF-8,ja_JP
+Kannada                        kn_IN.UTF-8,kn_IN
+Kazakh                 kk_KZ.UTF-8,kk_KZ 
+Kinyarwanda            rw_RW.UTF-8,rw_RW
+Korean                 ko_KR.UTF-8,ko_KR
+Latvian                        lv_LV.UTF-8,lv_LV
+Limburgish             li_NL.UTF-8,li_NL
+Limburgish(Belgium)    li_BE.UTF-8,li_BE
+Limburgish(Germany)    li_DE.UTF-8,li_DE
+Lithuanian             lt_LT.UTF-8,lt_LT
+Macedonian             mk_MK.UTF-8,mk_MK
+Malayalam              ml_IN.UTF-8,ml_IN
+Malay                  ms_MY.UTF-8,ms_MY
+Maltese                        mt_MT.UTF-8,mt_MT
+Maori                  mi_NZ.UTF-8,mi_NZ       
+Marathi                        mr_IN.UTF-8,mr_IN
+Mongolian              mn_MN.UTF-8,mn_MN
+Nepali                 ne_NP.UTF-8,ne_NP
+NorthernSotho          nso_ZA.UTF-8,nso_ZA
+Norwegian(bokmal)      nb_NO.UTF-8,nb_NO,no_NO.UTF-8,no_NO
+Norwegian(nynorsk)     nn_NO.UTF-8,nn_NO
+Oriya                  or_IN.UTF-8,or_IN
+Persian                        fa_IR.UTF-8,fa_IR
+Polish                 pl_PL.UTF-8,pl_PL
+Portuguese(Brazilian)  pt_BR.UTF-8,pt_BR
+Portuguese             pt_PT.UTF-8,pt_PT
+Punjabi                        pa_IN.UTF-8,pa_IN
+Romanian               ro_RO.UTF-8,ro_RO
+Russian                        ru_RU.UTF-8,ru_RU
+Serbian                        sr_CS.UTF-8,sr_CS,sr_YU@cyrillic,sr_YU
+Serbian(Montenegro)    sr_ME.UTF-8\r
+Serbian(Serbia)                sr_RS.UTF-8\r
+Serbian(Bosnia)                sh_BA.UTF-8,sh_BA
+Serbian(Latin)         sr_CS.UTF-8@Latn,sr_CS@Latn,sr_YU@Latn
+Serbian(Jekavian)      sr_CS.UTF-8@ije,sr_CS@ije,sr_YU@ije
+Slovak                 sk_SK.UTF-8,sk_SK
+Slovenian              sl_SI.UTF-8,sl_SI
+Spanish                        es_ES.UTF-8,es_ES
+Spanish(Argentina)     es_AR.UTF-8,es_AR
+Spanish(Bolivia)       es_BO.UTF-8,es_BO
+Spanish(Chile)         es_CL.UTF-8,es_CL
+Spanish(Colombia)      es_CO.UTF-8,es_CO
+Spanish(CostaRica)     es_CR.UTF-8,es_CR
+Spanish(Ecuador)       es_EC.UTF-8,es_EC
+Spanish(Guatemala)     es_GT.UTF-8,es_GT
+Spanish(Mexico)                es_MX.UTF-8,es_MX
+Spanish(Nicaragua)     es_NI.UTF-8,es_NI
+Spanish(Panama)                es_PA.UTF-8,es_PA
+Spanish(Peru)          es_PE.UTF-8,es_PE
+Spanish(Paraguay)      es_PY.UTF-8,es_PY
+Spanish(ElSalvador)    es_SV.UTF-8,es_SV
+Spanish(Uruguay)       es_UY.UTF-8,es_UY
+Spanish(Venezuela)     es_VE.UTF-8,es_VE
+Swedish(Finland)       sv_FI.UTF-8,sv_FI
+Swedish                        sv_SE.UTF-8,sv_SE
+Tagalog                        tl_PH.UTF-8,tl_PH
+Tajik                  tg_TJ.UTF-8,tg_TJ
+Tamil                  ta_IN.UTF-8,ta_IN
+Telugu                 te_IN.UTF-8,te_IN
+Thai                   th_TH.UTF-8,th_TH
+Turkish                        tr_TR.UTF-8,tr_TR
+Ukrainian              uk_UA.UTF-8,uk_UA
+Uzbek                  uz_UZ.UTF-8,uz_UZ
+Uzbek(Latin)           uz_UZ.UTF-8@Latn,uz_UZ@Latn
+Vietnamese             vi_VN.UTF-8,vi_VN
+Walloon                        wa_BE.UTF-8,wa_BE
+Welsh                  cy_GB.UTF-8,cy_GB
+Xhosa                  xh_ZA.UTF-8,xh_ZA
+Yiddish                        yi.UTF-8,yi
+Zulu                   zu_ZA.UTF-8,zu_ZA
diff --git a/X11/gdm/modules/AccessDwellMouseEvents b/X11/gdm/modules/AccessDwellMouseEvents
new file mode 100644 (file)
index 0000000..ee07f1a
--- /dev/null
@@ -0,0 +1,62 @@
+# This is the configuration file for the keymouselistener.so module.
+# The confiuration syntax is as follows:
+#
+#   crossing inital_direction timeout executable_path +args
+#
+# For executable_path give the full executable path path of the program or the
+# DefaultPath is used.
+#
+# where:
+#
+# + crossing is a string that includes any combination of TBLR characters, where
+#   T means Top, B means Bottom, L means Left, and R means Right.
+#
+# + initial_direction can be either the I or O character which indicates
+#   that the initial crossing is a motion In or Out of the window.
+# 
+# e.g.
+# TBLR I 10000    /usr/bin/gok --login --access-method=dwellselection
+#
+# Means the user crosses into the top border, out the bottom border, into the left
+# border, and then out the right border (in that order).  The initial_direction
+# value of I is what specifies that the first crossing is into the top border
+# rather than out of the top border.  Each border crossing must occur within
+# 10000ms of the last border crossing for the gesture to be valid.
+#
+# It is possible to invoke multiple actions from a single gesture using the <Add>
+# keyword.  Action specified with <Add> are invoked by the previous gesture
+# defined in the file.  If the <Add> action is the first action defined in the
+# file, then it is ignored.
+#
+# e.g.
+#
+# <Add>           /usr/bin/orca -n -d main-window
+#
+
+# AT Progarm - GOK (GNOME On-screen Keyboard)
+#
+# Support several different options for different user needs.  Note these
+# gestures all start by moving the mouse into the top window border.
+#
+TBLR I 10000    /usr/bin/gok --login --access-method=dwellselection
+TLBR I 10000    /usr/bin/gok --login --access-method=automaticscanning --scan-action=switch1 --select-action=switch1
+TRBL I 10000    /usr/bin/gok --login --access-method=inversescanning --scan-action=switch1 --select-action=switch2
+TBRL I 10000    /usr/bin/gok --login  --access-method=automaticscanning --scan-action=switch3 --select-action=switch3
+
+# AT Program - ORCA
+#
+# Note these gestures all start by moving the mouse into the bottom window
+# border.
+#
+# Speech
+#
+BTRL I 10000    /usr/bin/orca -n -d main-window
+
+# Magnifier
+#
+BTLR I 10000    /usr/bin/orca -n -d main-window -d speech -e magnifier
+
+# Speech and Magnifier
+#
+BRTL I 10000    /usr/bin/orca -n -d main-window -e magnifier
+
diff --git a/X11/gdm/modules/AccessKeyMouseEvents b/X11/gdm/modules/AccessKeyMouseEvents
new file mode 100644 (file)
index 0000000..90abd9b
--- /dev/null
@@ -0,0 +1,91 @@
+# This is the configuration file for the keymouselistener.so module.
+# The confiuration syntax is as follows:
+#
+# For keyboard gestures:
+#
+# <modifier>[<modifier>...]key  #times duration timeout executable_path +args
+#
+# For executable_path give the full executable path path of the program or the
+# DefaultPath is used.  For key, this can be one of the normal keys such as 'k'
+# for the letter 'k', or 'F10' for the F10 key.  If you wish to use one of the
+# 'modifier' keys you have to specify which one exactly, meaning usually
+# appending _L or _R depending on if it's the left or right one.  The useful
+# ones are: Shift_L, Shift_R, Control_L, Control_R, Meta_L, Meta_R, Alt_L, Alt_R.
+# Do note that the modifier is optional.
+#
+# e.g.
+#
+# <Control>k  1 1000 10000  /usr/bin/gok --login --access-method=directselection
+#
+# Means press Contol-k 5 times, holding each keypress down for at least 1000ms
+# (1s) each time and with no greater interval than 10000ms (10s) between each
+# event in the sequence.  A duration value of 0 indicates that a keypress of
+# any length is accepted.  The timeout value is only meaningful if the #times
+# value is > 1.  Completing the above example sequence will invoke the gnome on
+# screen keyboard program, gok.  Note that you cannot release the <Control> key
+# while pressing otherwise the sequence will be lost.
+#
+# e.g.
+# Shift_L  5 1000 10000  /usr/bin/gok --login --access-method=directselection
+# Shift_R  5 1000 10000  /usr/bin/gok --login --access-method=directselection
+#
+# Will start gok if you press either shift key 5 times holding it down for more
+# then 1 second each time.
+#
+# For mouse button gestures the format is the same except the mouse button number
+# is specified instead of a key gesture:
+#
+# <Mouse#>  #times duration timeout  executable_path +args
+#
+# e.g.
+#
+# <Mouse2>  4 3000 6000  /usr/bin/orca -n -d main-window
+#
+# Note that mouse numbers are 1-based so <Mouse1> is the left mouse button,
+# <Mouse3> is the right mouse button and <Mouse2> is the middle mouse button.
+#
+# It is possible to invoke multiple actions from a single gesture using the <Add>
+# keyword. Actions specified with <Add> are invoked by the previous gesture
+# defined in the file.  If the <Add> action is the first action defined in the
+# file, then it is ignored.
+#
+# e.g.
+#
+# <Add>  /usr/bin/gnome-mag
+#
+
+# AT Program - GOK (GNOME On-screen Keyboard)
+#
+# Include a gesture for both right and left mouse button, for both right
+# and left handed users.
+#
+# hold right or left mouse button 3 times for 3 seconds each time.
+<Mouse1> 3 3000 10000 /usr/bin/gok --login --access-method=directselection
+<Mouse3> 3 3000 10000 /usr/bin/gok --login --access-method=directselection
+
+# Also support Xinput switches
+#
+<Switch1> 1 5000 0 /usr/bin/gok --login --access-method=automaticscanning --scan-action=switch1 --select-action=switch1
+<Switch2> 3 50 3000 /usr/bin/gok --login --access-method=inversescanning --scan-action=switch1 --select-action=switch2
+<Switch3> 3 1000 10000 /usr/bin/gok --login  --access-method=automaticscanning --scan-action=switch3 --select-action=switch3
+
+# Although most GOK users would want to use a mouse/switch button to start GOK,
+# also include a keybinding for starting GOK with direct selection mode.
+#
+<Control>k  1 1000 10000  /usr/bin/gok --login --access-method=directselection
+
+# AT Program - ORCA
+#
+# press ctrl-s for 1 second to launch orca in speech mode
+#
+<Control>s  1 1000 10000  /usr/bin/orca -n -d main-window
+
+# press ctrl-m for 1 second to launch orca in mag mode
+#
+<Control>m  1 1000 10000  /usr/bin/orca -n -d main-window -d speech -e magnifier
+
+# press ctrl-o or ctrl-g for 1 second to launch orca in speech and mag mode
+#
+<Control>o  1 1000 10000  /usr/bin/orca -n -d main-window -e magnifier
+<Control>g  1 1000 10000  /usr/bin/orca -n -d main-window -e magnifier
+
diff --git a/X11/gdm/modules/factory-AccessDwellMouseEvents b/X11/gdm/modules/factory-AccessDwellMouseEvents
new file mode 100644 (file)
index 0000000..ee07f1a
--- /dev/null
@@ -0,0 +1,62 @@
+# This is the configuration file for the keymouselistener.so module.
+# The confiuration syntax is as follows:
+#
+#   crossing inital_direction timeout executable_path +args
+#
+# For executable_path give the full executable path path of the program or the
+# DefaultPath is used.
+#
+# where:
+#
+# + crossing is a string that includes any combination of TBLR characters, where
+#   T means Top, B means Bottom, L means Left, and R means Right.
+#
+# + initial_direction can be either the I or O character which indicates
+#   that the initial crossing is a motion In or Out of the window.
+# 
+# e.g.
+# TBLR I 10000    /usr/bin/gok --login --access-method=dwellselection
+#
+# Means the user crosses into the top border, out the bottom border, into the left
+# border, and then out the right border (in that order).  The initial_direction
+# value of I is what specifies that the first crossing is into the top border
+# rather than out of the top border.  Each border crossing must occur within
+# 10000ms of the last border crossing for the gesture to be valid.
+#
+# It is possible to invoke multiple actions from a single gesture using the <Add>
+# keyword.  Action specified with <Add> are invoked by the previous gesture
+# defined in the file.  If the <Add> action is the first action defined in the
+# file, then it is ignored.
+#
+# e.g.
+#
+# <Add>           /usr/bin/orca -n -d main-window
+#
+
+# AT Progarm - GOK (GNOME On-screen Keyboard)
+#
+# Support several different options for different user needs.  Note these
+# gestures all start by moving the mouse into the top window border.
+#
+TBLR I 10000    /usr/bin/gok --login --access-method=dwellselection
+TLBR I 10000    /usr/bin/gok --login --access-method=automaticscanning --scan-action=switch1 --select-action=switch1
+TRBL I 10000    /usr/bin/gok --login --access-method=inversescanning --scan-action=switch1 --select-action=switch2
+TBRL I 10000    /usr/bin/gok --login  --access-method=automaticscanning --scan-action=switch3 --select-action=switch3
+
+# AT Program - ORCA
+#
+# Note these gestures all start by moving the mouse into the bottom window
+# border.
+#
+# Speech
+#
+BTRL I 10000    /usr/bin/orca -n -d main-window
+
+# Magnifier
+#
+BTLR I 10000    /usr/bin/orca -n -d main-window -d speech -e magnifier
+
+# Speech and Magnifier
+#
+BRTL I 10000    /usr/bin/orca -n -d main-window -e magnifier
+
diff --git a/X11/gdm/modules/factory-AccessKeyMouseEvents b/X11/gdm/modules/factory-AccessKeyMouseEvents
new file mode 100644 (file)
index 0000000..90abd9b
--- /dev/null
@@ -0,0 +1,91 @@
+# This is the configuration file for the keymouselistener.so module.
+# The confiuration syntax is as follows:
+#
+# For keyboard gestures:
+#
+# <modifier>[<modifier>...]key  #times duration timeout executable_path +args
+#
+# For executable_path give the full executable path path of the program or the
+# DefaultPath is used.  For key, this can be one of the normal keys such as 'k'
+# for the letter 'k', or 'F10' for the F10 key.  If you wish to use one of the
+# 'modifier' keys you have to specify which one exactly, meaning usually
+# appending _L or _R depending on if it's the left or right one.  The useful
+# ones are: Shift_L, Shift_R, Control_L, Control_R, Meta_L, Meta_R, Alt_L, Alt_R.
+# Do note that the modifier is optional.
+#
+# e.g.
+#
+# <Control>k  1 1000 10000  /usr/bin/gok --login --access-method=directselection
+#
+# Means press Contol-k 5 times, holding each keypress down for at least 1000ms
+# (1s) each time and with no greater interval than 10000ms (10s) between each
+# event in the sequence.  A duration value of 0 indicates that a keypress of
+# any length is accepted.  The timeout value is only meaningful if the #times
+# value is > 1.  Completing the above example sequence will invoke the gnome on
+# screen keyboard program, gok.  Note that you cannot release the <Control> key
+# while pressing otherwise the sequence will be lost.
+#
+# e.g.
+# Shift_L  5 1000 10000  /usr/bin/gok --login --access-method=directselection
+# Shift_R  5 1000 10000  /usr/bin/gok --login --access-method=directselection
+#
+# Will start gok if you press either shift key 5 times holding it down for more
+# then 1 second each time.
+#
+# For mouse button gestures the format is the same except the mouse button number
+# is specified instead of a key gesture:
+#
+# <Mouse#>  #times duration timeout  executable_path +args
+#
+# e.g.
+#
+# <Mouse2>  4 3000 6000  /usr/bin/orca -n -d main-window
+#
+# Note that mouse numbers are 1-based so <Mouse1> is the left mouse button,
+# <Mouse3> is the right mouse button and <Mouse2> is the middle mouse button.
+#
+# It is possible to invoke multiple actions from a single gesture using the <Add>
+# keyword. Actions specified with <Add> are invoked by the previous gesture
+# defined in the file.  If the <Add> action is the first action defined in the
+# file, then it is ignored.
+#
+# e.g.
+#
+# <Add>  /usr/bin/gnome-mag
+#
+
+# AT Program - GOK (GNOME On-screen Keyboard)
+#
+# Include a gesture for both right and left mouse button, for both right
+# and left handed users.
+#
+# hold right or left mouse button 3 times for 3 seconds each time.
+<Mouse1> 3 3000 10000 /usr/bin/gok --login --access-method=directselection
+<Mouse3> 3 3000 10000 /usr/bin/gok --login --access-method=directselection
+
+# Also support Xinput switches
+#
+<Switch1> 1 5000 0 /usr/bin/gok --login --access-method=automaticscanning --scan-action=switch1 --select-action=switch1
+<Switch2> 3 50 3000 /usr/bin/gok --login --access-method=inversescanning --scan-action=switch1 --select-action=switch2
+<Switch3> 3 1000 10000 /usr/bin/gok --login  --access-method=automaticscanning --scan-action=switch3 --select-action=switch3
+
+# Although most GOK users would want to use a mouse/switch button to start GOK,
+# also include a keybinding for starting GOK with direct selection mode.
+#
+<Control>k  1 1000 10000  /usr/bin/gok --login --access-method=directselection
+
+# AT Program - ORCA
+#
+# press ctrl-s for 1 second to launch orca in speech mode
+#
+<Control>s  1 1000 10000  /usr/bin/orca -n -d main-window
+
+# press ctrl-m for 1 second to launch orca in mag mode
+#
+<Control>m  1 1000 10000  /usr/bin/orca -n -d main-window -d speech -e magnifier
+
+# press ctrl-o or ctrl-g for 1 second to launch orca in speech and mag mode
+#
+<Control>o  1 1000 10000  /usr/bin/orca -n -d main-window -e magnifier
+<Control>g  1 1000 10000  /usr/bin/orca -n -d main-window -e magnifier
+
diff --git a/X11/xinit/xinitrc.d/49-keychain b/X11/xinit/xinitrc.d/49-keychain
new file mode 100755 (executable)
index 0000000..77310b2
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# source keychain variables
+
+keychain="`which keychain`"
+if [ -n "$keychain" ] && [ -x "$keychain" ] && [ -f "$HOME/.bash_profile" ]
+then
+       . "${HOME}/.bash_profile"
+fi
diff --git a/X11/xinit/xinitrc.d/50-ssh-agent b/X11/xinit/xinitrc.d/50-ssh-agent
new file mode 100755 (executable)
index 0000000..28af267
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# add ssh-agent if found
+
+sshagent="`which ssh-agent`"
+if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+       command="$sshagent -- $command"
+elif [ -z "$sshagent" ] ; then
+       echo "$0: ssh-agent not found!"
+fi
diff --git a/env.d/99xdg-gdm b/env.d/99xdg-gdm
new file mode 100644 (file)
index 0000000..4a904c6
--- /dev/null
@@ -0,0 +1 @@
+XDG_DATA_DIRS="/usr/share/gdm"
diff --git a/pam.d/gdm b/pam.d/gdm
new file mode 100644 (file)
index 0000000..e51d98f
--- /dev/null
+++ b/pam.d/gdm
@@ -0,0 +1,11 @@
+#%PAM-1.0
+auth       optional            pam_env.so
+auth       include             system-login
+auth       required            pam_nologin.so
+
+account    include             system-login
+
+password   include             system-login
+
+session    include             system-auth
+session    optional            pam_gnome_keyring.so auto_start
diff --git a/pam.d/gdm-autologin b/pam.d/gdm-autologin
new file mode 100644 (file)
index 0000000..191c463
--- /dev/null
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth       optional            pam_env.so
+auth       required            pam_nologin.so
+auth       required            pam_permit.so
+account    include             system-login
+password   include             system-login
+session    include             system-auth
+# For the keyring to unlock with autologin, you need to set an empty
+# password on the keyring.
+session    optional            pam_gnome_keyring.so auto_start
diff --git a/pam.d/gdmsetup b/pam.d/gdmsetup
new file mode 100644 (file)
index 0000000..b42700b
--- /dev/null
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth       sufficient   pam_rootok.so
+auth       include      system-login
+
+session    required     pam_permit.so
+session    optional     pam_xauth.so
+
+account    required     pam_permit.so
diff --git a/security/console.apps/gdmsetup b/security/console.apps/gdmsetup
new file mode 100644 (file)
index 0000000..f55f862
--- /dev/null
@@ -0,0 +1,5 @@
+USER=root
+PROGRAM=/usr/sbin/gdmsetup
+SESSION=false
+FALLBACK=true
+