home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- TMP=/var/log/setup/tmp
- export TEXTDOMAIN=SeTXorg
- dialog --title "`gettext "X server configuration"`" \
- --yesno "`gettext "Would you like to autoconfigure your X server? \
- Your monitor will be ddc probed, it may cause hang on some hardware."`" \
- 7 70
- if [ ! $? = 0 ] ; then
- exit
- fi
- umask 022
- TMPFILE="/tmp/mkxorgconf-$$"
- MONITORTMP="$TMPFILE-monitor"
- DRIVERTMP="$TMPFILE-driver"
- rm -rf "$TMPFILE" "$MONITORTMP" "$DRIVERTMP"
-
- MONITOR=""
- COMPLETE=""
- RC=""
-
- MONITOR="$(ddcxinfo -monitor)"
- RC="$?"
- COMPLETE="`awk '/EndSection/{print}' <<EOF
- $MONITOR
- EOF`"
-
- if [ "$RC" != "0" -o -z "$MONITOR" -o -z "$COMPLETE" ]; then
- MONITOR='
- Section "Monitor"
- Identifier "Monitor0"
- ModelName "Old Monitor (no DDC)"
- # HorizSync 28.0 - 78.0 # Warning: This may fry very old Monitors
- # HorizSync 28.0 - 96.0 # Warning: This may fry old Monitors
- HorizSync 28.0 - 65.0 # Should be safe with monitors bought 5 years ago
- VertRefresh 50.0 - 76.0 # Very conservative. May flicker.
- # These are some Modelines that happen to work on many systems
- # Especially the "1024x768" has been thoroughly tested, even on Laptops
- Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 #60Hz
- Modeline "800x600" 40.12 800 848 968 1056 600 601 605 628 #60Hz
- Modeline "1024x768" 85 1024 1056 1152 1360 768 784 787 823
- Modeline "1152x864" 92 1152 1208 1368 1474 864 865 875 895
- Modeline "1152x864" 110 1152 1240 1324 1552 864 864 876 908
- Modeline "1152x864" 135 1152 1464 1592 1776 864 864 876 908
- Modeline "1152x864" 137.65 1152 1184 1312 1536 864 866 885 902 -HSync -VSync
- Modeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace
- Modeline "1280x1024" 110 1280 1328 1512 1712 1024 1025 1028 1054
- Modeline "1280x1024" 126.5 1280 1312 1472 1696 1024 1032 1040 1068 -HSync -VSync
- Modeline "1280x1024" 135 1280 1312 1456 1712 1024 1027 1030 1064
- Modeline "1280x1024" 135 1280 1312 1416 1664 1024 1027 1030 1064
- Modeline "1280x1024" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +HSync +VSync
- Modeline "1280x1024" 181.75 1280 1312 1440 1696 1024 1031 1046 1072 -HSync -VSync
- Modeline "1600x1200" 162 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
- Modeline "1600x1200" 189 1600 1664 1856 2160 1200 1201 1204 1250 -HSync -VSync
- Modeline "1600x1200" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
- Modeline "1600x1200" 220 1600 1616 1808 2080 1200 1204 1207 1244 +HSync +VSync
- ModeLine "1800x1440" 230 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
- ModeLine "1800x1440" 250 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
- EndSection
- '
- fi
-
- # Extract values for display
- MODEL="`awk '/^[ ]*ModelName/{print;exit}'<<EOF
- $MONITOR
- EOF
- `"
-
- MODEL="${MODEL#*\"}"
- MODEL="${MODEL%\"*}"
-
- HREFRESH="`awk '/^[ ]*HorizSync/{print $2 $3 $4; exit}'<<EOF
- $MONITOR
- EOF
- `"
-
- VREFRESH="`awk '/^[ ]*VertRefresh/{print $2 $3 $4; exit}'<<EOF
- $MONITOR
- EOF
- `"
-
- # Build line of allowed modes
- ADDMODE=""
- MODES="$(ddcxinfo -modes $ADDMODE)"
- WHEEL=''
- DEPTH='DefaultDepth 24'
- # Write Monitor data now
- rm -rf "$MONITORTMP"
- echo "$MONITOR" >"$MONITORTMP"
-
- (
- # Here we try to detect vga card and change "device" section in Xorg file.
- CARD="`lspci | grep VGA`"
-
- if echo $CARD | grep -i nvidia 1>/dev/null 2>/dev/null ; then
- echo " Driver \"nv\"" > "$DRIVERTMP"
- exit 0;
- fi
-
- if echo $CARD | grep -i riva 1>/dev/null 2>/dev/null ; then
- echo " Driver \"nv\"" > "$DRIVERTMP"
- exit 0;
- fi
-
- if echo $CARD | grep -i geforce 1>/dev/null 2>/dev/null ; then
- echo " Driver \"nv\"" > "$DRIVERTMP"
- exit 0;
- fi
- echo " Driver \"vesa\"" > "$DRIVERTMP"
- )
- DRIVER=`cat $DRIVERTMP`
-
- dialog --title "`gettext "Mouse setup"`" \
- --yesno "`gettext "Do you have mouse with ONE wheel?"`" \
- 6 50
- if [ ! $? = 0 ] ; then
- true
- else
- WHEEL=" Option \"ZaxisMapping\" \"4 5\""
- fi
- rm -rf /mnt/etc/X11/xorg.conf
- sed -e '/@@MONITOR@@/r '"$MONITORTMP" \
- -e 's|@@MONITOR@@||g' \
- -e 's|@@MODES@@|'"$MODES"'|g' \
- -e 's|@@WHEEL@@|'"$WHEEL"'|g' \
- -e 's|@@DRIVER@@|'"$DRIVER"'|g' \
- -e 's|@@DEPTH@@|'"$DEPTH"'|g;' \
- /usr/lib/setup/xorg.conf.in > /mnt/etc/X11/xorg.conf
-
-
- rm -rf "$TMPFILE" "$MONITORTMP"
- (
- rm -rf $TMP/tempmsg
- # Print info about selected X-Server
- echo "`gettext "Detected hardware:"`" >> $TMP/tempmsg
- echo >> $TMP/tempmsg
- echo -n " `gettext "Monitor is"` ${MODEL:-Generic Monitor}" >> $TMP/tempmsg
- echo " H:${HREFRESH}kHz," >> $TMP/tempmsg
- echo " V:${VREFRESH}Hz." >> $TMP/tempmsg
- echo " `gettext "Using Modes"` ${MODES##Modes }. " >> $TMP/tempmsg
- echo " `gettext "Using"` `echo "${DEPTH}" | cut --delimiter=' ' --field=2` `gettext "bit color depth"`. " >> $TMP/tempmsg
- echo " `gettext "Using Xorg"` `echo "${DRIVER}" | cut --delimiter='"' --field=2`." >> $TMP/tempmsg
- dialog --title "`gettext "DONE"`" \
- --exit-label OK \
- --textbox $TMP/tempmsg 12 50
- rm -rf $TMP/tempmsg
- )
-
-