diff options
Diffstat (limited to 'source/a/gpm/setup.mouse')
-rw-r--r-- | source/a/gpm/setup.mouse | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/source/a/gpm/setup.mouse b/source/a/gpm/setup.mouse new file mode 100644 index 00000000..dcdc6a8f --- /dev/null +++ b/source/a/gpm/setup.mouse @@ -0,0 +1,154 @@ +#!/bin/sh +#BLURB="Configure the console mouse support (GPM)." +T_PX=$1 +TMP=/var/log/setup/tmp +GPM=/usr/sbin/gpm +# If the mouse is USB, we can autodetect it: +if [ -r /proc/bus/usb/devices ]; then + if cat /proc/bus/usb/devices | grep usb_mouse 1> /dev/null 2> /dev/null ; then + MOUSE_TYPE=usb + MTYPE="imps2" + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + fi +fi + +if [ "$MOUSE_TYPE" = "" ]; then + dialog --title "MOUSE CONFIGURATION" --default-item "imps2" --menu \ +"This part of the configuration \ +process will create a /dev/mouse link pointing to your default mouse device. \ +You can change the /dev/mouse link later if the mouse doesn't work, or if \ +you switch to a different type of pointing device. We will also use the \ +information about the mouse to set the correct protocol for gpm, the Linux \ +mouse server. Please select a mouse type \ +from the list below:" 20 76 8 \ + "ps2" "PS/2 port mouse (most desktops and laptops)" \ + "usb" "USB connected mouse" \ + "imps2" "Microsoft PS/2 Intellimouse" \ + "exps2" "Intellimouse Explorer PS/2" \ + "bare" "2 button Microsoft compatible serial mouse" \ + "ms" "3 button Microsoft compatible serial mouse" \ + "mman" "Logitech serial MouseMan and similar devices" \ + "msc" "MouseSystems serial (most 3 button serial mice)" \ + "pnp" "Plug and Play (serial mice that do not work with ms)" \ + "ms3" "Microsoft serial Intellimouse" \ + "netmouse" "Genius Netmouse on PS/2 port" \ + "logi" "Some serial Logitech devices" \ + "logim" "Make serial Logitech behave like msc" \ + "atibm" "ATI XL busmouse (mouse card)" \ + "inportbm" "Microsoft busmouse (mouse card)" \ + "logibm" "Logitech busmouse (mouse card)" \ + "ncr" "A pointing pen (NCR3125) on some laptops" \ + "twid" "Twiddler keyboard, by HandyKey Corp" \ + "genitizer" "Genitizer tablet (relative mode)" \ + "js" "Use a joystick as a mouse" \ + "wacom" "Wacom serial graphics tablet" \ + 2> $TMP/mtype + if [ ! $? = 0 ]; then + rm -f $TMP/mtype + exit + fi + if [ -f $TMP/mtype ]; then + MOUSE_TYPE="`cat $TMP/mtype`" + else + unset MOUSE_TYPE + fi + rm -f $TMP/mtype + if [ "$MOUSE_TYPE" = "bare" -o "$MOUSE_TYPE" = "ms" \ + -o "$MOUSE_TYPE" = "mman" -o "$MOUSE_TYPE" = "msc" \ + -o "$MOUSE_TYPE" = "genitizer" \ + -o "$MOUSE_TYPE" = "pnp" -o "$MOUSE_TYPE" = "ms3" \ + -o "$MOUSE_TYPE" = "logi" -o "$MOUSE_TYPE" = "logim" \ + -o "$MOUSE_TYPE" = "wacom" -o "$MOUSE_TYPE" = "twid" ]; then + dialog --title "SELECT SERIAL PORT" --menu "Your mouse requires a \ +serial port. Which one would you like to use?" 12 50 4 \ + "/dev/ttyS0" "(COM1: under DOS)" \ + "/dev/ttyS1" "(COM2: under DOS)" \ + "/dev/ttyS2" "(COM3: under DOS)" \ + "/dev/ttyS3" "(COM4: under DOS)" 2> $TMP/mport + if [ ! $? = 0 ]; then + rm -f $TMP/mport + exit + fi + MDEVICE="`cat $TMP/mport`" + SHORT_MDEVICE=`basename $MDEVICE` + ( cd $T_PX/dev ; rm -f mouse ; ln -sf $SHORT_MDEVICE mouse ) + # For the serial mice, the protocol is the same as the mouse type: + MTYPE=$MOUSE_TYPE + rm -f $TMP/mport + elif [ "$MOUSE_TYPE" = "ps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "ncr" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ncr" + elif [ "$MOUSE_TYPE" = "exps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="exps2" + elif [ "$MOUSE_TYPE" = "imps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="imps2" + elif [ "$MOUSE_TYPE" = "logibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf logibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "atibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf atibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "inportbm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf inportbm mouse ) + MTYPE="bm" + elif [ "$MOUSE_TYPE" = "js" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf js0 mouse ) + MTYPE="js" + elif [ "$MOUSE_TYPE" = "usb" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + MTYPE="imps2" + fi +fi + +# OK, we know enough now to create a sample rc.gpm: +cat << EOF > $T_PX/etc/rc.d/rc.gpm-sample +#!/bin/sh +# Start/stop/restart the GPM mouse server: + +if [ "\$1" = "stop" ]; then + echo "Stopping gpm..." + $GPM -k +elif [ "\$1" = "restart" ]; then + echo "Restarting gpm..." + $GPM -k + sleep 1 + $GPM -m /dev/mouse -t $MTYPE +else # assume \$1 = start: + echo "Starting gpm: $GPM -m /dev/mouse -t $MTYPE" + $GPM -m /dev/mouse -t $MTYPE +fi + +# There is another way to run GPM, where it acts as a repeater outputting a +# virtual MouseSystems mouse on /dev/gpmdata. This is useful for feeding +# gpm's data to X, especially if you've got a busmouse (in that situation X +# and gpm may not coexist without using a repeater). To try running a GPM +# repeater for X, change the gpm command line to look like this: +# $GPM -R msc -m /dev/mouse -t $MTYPE +# Then, make sure that the mouse configuration in your XF86Config file refers +# to the repeater device (/dev/gpmdata) and a MouseSystems mouse type. If you +# edit the file directly, you'll want the lines to look like this (minus the +# comment marks '#' shown here, of course): +#Section "Pointer" +# Protocol "MouseSystems" +# Device "/dev/gpmdata" + +EOF +chmod 755 $T_PX/etc/rc.d/rc.gpm-sample +# Now ask if this should be the new rc.gpm: + dialog --title "GPM CONFIGURATION" --yesno \ +"The gpm program allows you to cut and paste text on\n\ +the virtual consoles using a mouse. If you choose to\n\ +run it at boot time, this line will be added to your\n\ +/etc/rc.d/rc.gpm:\n\ +\n\ + $GPM -m /dev/mouse -t $MTYPE \n\ +\n\ +Shall we load the gpm program at boot time?" 12 58 + if [ $? = 0 ]; then + mv $T_PX/etc/rc.d/rc.gpm-sample $T_PX/etc/rc.d/rc.gpm + fi |