blob: d40bcff62453c485ca7ec1022bd231463e5499f6 (
plain)
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
55
56
57
58
59
60
61
62
63
64
|
#!/usr/bin/perl
use lib qw(/usr/lib/libDrakX);
use common qw(:system);
use interactive;
use mouse;
use c;
local $_ = join '', @ARGV;
/-h/ and die "usage: mousedrake [--auto] [--noauto] [--testing]\n";
$::auto = /-auto/;
$::noauto = /-noauto/;
$::testing = /-testing/;
$::isStandalone = 1;
my $in = vnew interactive('su');
my $mouse = eval { mouse::detect() } unless $::noauto;
if (!(my $name = $mouse && $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") {
require pci_probing::main;
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('') if $mouse->{device} eq "usbmouse" && !$::testing;
my $f = "/etc/X11/XF86Config";
my $g = "/etc/X11/XF86Config-4";
my $zaxis = "\n ZAxisMapping 4 5" if $mouse->{nbuttons} > 3;
$zaxis .= "\n ZAxisMapping 6 7" if $mouse->{nbuttons} > 5;
substInFile {
if (/^Section "Pointer"/ .. /^EndSection/) {
$_ = '' if /ZAxisMapping/; #- remove existing line
s|^(\s*Protocol\s+).*|$1"$mouse->{XMOUSETYPE}"|;
s|^(\s*Device\s+).*|$1"/dev/mouse"$zaxis|;
}
} $f if -e $f && !$::testing;
substInFile {
if (/^Identifier "Mouse1"/ .. /^EndSection/) {
s|^(\s*Option\s+"Protocol"\s+).*|$1"$mouse->{XMOUSETYPE}"|;
s|^(\s*Option\s+"Device"\s+).*|$1"/dev/mouse"|;
}
} $g if -e $g && !$::testing;
$in->exit(0);
|