summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/mousedrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/mousedrake')
-rwxr-xr-xperl-install/standalone/mousedrake51
1 files changed, 51 insertions, 0 deletions
diff --git a/perl-install/standalone/mousedrake b/perl-install/standalone/mousedrake
new file mode 100755
index 000000000..852c5e612
--- /dev/null
+++ b/perl-install/standalone/mousedrake
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+
+use common qw(:system);
+use interactive;
+use mouse;
+
+local $_ = join '', @ARGV;
+
+/-h/ and die "usage: mousedrake [--auto] [--noauto] [--testing]\n";
+
+$::auto = /--auto/;
+$::noauto = /--noauto/;
+$::testing = /--testing/;
+$::isStandalone = 1;
+
+my $in = vnew interactive;
+
+my $mouse = mouse::detect() unless $::noauto;
+
+if (!(my $name = $mouse->{FULLNAME}) || !$::auto) {
+ $name ||= "Generic Mouse (serial)";
+ $name = $in->ask_from_list_('', _("What is the type of your mouse?"), [ mouse::names() ], $name);
+ $mouse = mouse::name2mouse($name);
+
+ if ($mouse->{device} eq "usbmouse") {
+ my ($c) = pci_probing::main::probe("serial_usb") or die _("no serial_usb found\n");
+ eval { modules::load($c->[1], "serial_usb") };
+ }
+}
+
+$mouse->{XEMU3} = 'yes' if $mouse->{nbuttons} < 3 && (!$::noauto || $in->ask_yesorno('', _("Emulate third button?"), 1));
+
+$mouse->{device} = mouse::serial_ports_names2dev(
+ $in->ask_from_list(_("Mouse Port"),
+ _("Which serial port is your mouse connected to?"),
+ [ mouse::serial_ports_names() ])) if $mouse->{device} eq "ttyS";
+
+mouse::write('', $mouse);
+modules::write_conf("/etc/conf.modules") if $mouse->{device} eq "usbmouse" && !$::testing;
+
+my $f = "/etc/X11/XF86Config";
+substInFile {
+ if (/^Section "Pointer"/ .. /^EndSection/) {
+ s|^(\s*Protocol\s+).*|$1 "$mouse->{XMOUSETYPE}"|;
+ s|^(\s*Device\s+).*|$1 "/dev/mouse"|;
+ }
+} $f if -e $f && !$::testing;
+
+exec 'true' if ref($in) =~ /gtk/; #- workaround for perl-GTK