1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/usr/bin/perl
use lib qw(/usr/lib/libDrakX);
use common qw(:common :system);
use interactive;
use standalone;
use modules;
use detect_devices;
use mouse;
use c;
$::isEmbedded = ($::XID, $::CCPID) = "@ARGV" =~ /--embedded (\w+) (\w+)/;
local $_ = join '', @ARGV;
/-h/ and die "usage: mousedrake [--auto] [--testing]\n";
$::auto = /-auto/;
$::testing = /-testing/;
my $in = vnew interactive('su');
-r '/etc/modules.conf' and modules::mergein_conf('/etc/modules.conf');
begin:
my ($mouse) = mouse::detect() unless $::noauto;
$::isEmbedded and kill USR2, $::CCPID;
if (!$mouse || !$::auto) {
$mouse ||= mouse::fullname2mouse("serial|Generic 2 Button Mouse");
my $name = $in->ask_from_treelistf('', _("Please, choose the type of your mouse."), '|',
sub { join '|', map { translate($_) } split '\|', $_[0] },
[ mouse::fullnames ],
$mouse->{type} . '|' . $mouse->{name});
$mouse = mouse::fullname2mouse($name);
if ($mouse->{device} eq "usbmouse") {
my ($c) = grep { $_->{driver} =~ /usb-[ou]hci/ } detect_devices::pci_probe(0) or die _("no serial_usb found\n");
eval { modules::load($c->{driver}, "serial_usb") };
}
}
$mouse->{XEMU3} = 'yes' if $mouse->{nbuttons} < 3 && (!$::noauto || $in->ask_yesorno('', _("Emulate third button?"), 1));
$mouse->{device} =
$in->ask_from_listf(_("Mouse Port"),
_("Please choose on which serial port your mouse is connected to."),
\&mouse::serial_port2text,
[ mouse::serial_ports ]) || goto begin if $mouse->{type} eq 'serial';
mouse::write_conf($mouse);
-e "/var/lock/subsys/gpm" and system "service", "gpm", "restart";
$::isEmbedded ? kill(USR1, $::CCPID) : $in->exit(0);
goto begin;
|