aboutsummaryrefslogtreecommitdiffstats
path: root/po
ModeNameSize
-rw-r--r--Makefile1200logstatsplain
-rw-r--r--POTFILES.in23logstatsplain
-rw-r--r--af.po11243logstatsplain
-rw-r--r--ar.po22769logstatsplain
-rw-r--r--az.po12011logstatsplain
-rw-r--r--be.po12781logstatsplain
-rw-r--r--bg.po23777logstatsplain
-rw-r--r--bs.po19494logstatsplain
-rw-r--r--ca.po16784logstatsplain
-rw-r--r--cs.po19878logstatsplain
-rw-r--r--cy.po11306logstatsplain
-rw-r--r--da.po19848logstatsplain
-rw-r--r--de.po20622logstatsplain
-rw-r--r--el.po17520logstatsplain
-rw-r--r--eo.po20102logstatsplain
-rw-r--r--es.po20579logstatsplain
-rw-r--r--et.po11203logstatsplain
-rw-r--r--eu.po20354logstatsplain
-rw-r--r--fa.po13287logstatsplain
-rw-r--r--fi.po20256logstatsplain
-rw-r--r--fr.po12429logstatsplain
-rw-r--r--ga.po11005logstatsplain
-rw-r--r--gl.po16666logstatsplain
-rw-r--r--he.po12795logstatsplain
-rw-r--r--hi.po18081logstatsplain
-rw-r--r--hr.po15902logstatsplain
-rw-r--r--hu.po12411logstatsplain
-rw-r--r--id.po19436logstatsplain
-rw-r--r--it.po20132logstatsplain
-rw-r--r--ja.po21437logstatsplain
-rw-r--r--ka.po16876logstatsplain
-rw-r--r--ko.po16523logstatsplain
-rw-r--r--lt.po16487logstatsplain
-rw-r--r--lv.po11196logstatsplain
-rw-r--r--mk.po18936logstatsplain
-rw-r--r--mn.po20018logstatsplain
-rw-r--r--ms.po16836logstatsplain
-rw-r--r--mt.po19097logstatsplain
-rw-r--r--nb.po19543logstatsplain
-rw-r--r--nl.po20169logstatsplain
-rw-r--r--pl.po11639logstatsplain
-rw-r--r--pt.po20832logstatsplain
-rw-r--r--pt_BR.po19635logstatsplain
-rw-r--r--ro.po19794logstatsplain
-rw-r--r--ru.po11941logstatsplain
-rw-r--r--sk.po17259logstatsplain
-rw-r--r--sl.po17641logstatsplain
-rw-r--r--sq.po20102logstatsplain
-rw-r--r--sr.po19017logstatsplain
-rw-r--r--sr@Latn.po19058logstatsplain
-rw-r--r--sv.po11385logstatsplain
-rw-r--r--ta.po22657logstatsplain
-rw-r--r--tg.po21534logstatsplain
-rw-r--r--tr.po11098logstatsplain
-rw-r--r--uk.po20081logstatsplain
-rw-r--r--userdrake.pot8485logstatsplain
-rw-r--r--uz.po12838logstatsplain
-rw-r--r--uz@Cyrl.po15231logstatsplain
-rw-r--r--vi.po11786logstatsplain
-rw-r--r--wa.po12789logstatsplain
-rw-r--r--zh_CN.po10922logstatsplain
-rw-r--r--zh_TW.po17045logstatsplain
t">("Logitech MouseMan") ], [ 3, 'MouseMan', 'MouseMan', N_("Logitech MouseMan with Wheel emulation"), 'wheel' ], [ 2, 'MouseSystems', 'MouseSystems', N_("Mouse Systems") ], '', [ 3, 'logim', 'MouseMan', N_("Logitech CC Series") ], [ 3, 'logim', 'MouseMan', N_("Logitech CC Series with Wheel emulation"), 'wheel' ], [ 5, 'pnp', 'IntelliMouse', N_("Logitech MouseMan+/FirstMouse+") ], [ 5, 'ms3', 'IntelliMouse', N_("Genius NetMouse") ], [ 2, 'MMSeries', 'MMSeries', N_("MM Series") ], [ 2, 'MMHitTab', 'MMHittab', N_("MM HitTablet") ], [ 3, 'Logitech', 'Logitech', N_("Logitech Mouse (serial, old C7 type)") ], [ 3, 'Logitech', 'Logitech', N_("Logitech Mouse (serial, old C7 type) with Wheel emulation"), 'wheel' ], [ 3, 'Microsoft', 'ThinkingMouse', N_("Kensington Thinking Mouse") ], [ 3, 'Microsoft', 'ThinkingMouse', N_("Kensington Thinking Mouse with Wheel emulation"), 'wheel' ], ] ], N_("busmouse") => [ [ arch() eq 'ppc' ? 'adbmouse' : ('atibm', 'inportbm', 'logibm') ], [ if_(arch() eq 'ppc', [ 1, 'Busmouse', 'BusMouse', N_("1 button") ]), [ 2, 'Busmouse', 'BusMouse', N_("2 buttons") ], [ 3, 'Busmouse', 'BusMouse', N_("3 buttons") ], [ 3, 'Busmouse', 'BusMouse', N_("3 buttons with Wheel emulation"), 'wheel' ], ] ], if_(c::kernel_version() =~ /^\Q2.6/, N_("Universal") => [ [ 'input/mice' ], [ [ 7, 'ps/2', 'ExplorerPS/2', N_("Any PS/2 & USB mice") ], ] ], ), N_("none") => [ [ 'none' ], [ [ 0, 'none', 'Microsoft', N_("No mouse") ], ] ], ); sub xmouse2xId { #- xmousetypes must be sorted as found in /usr/include/X11/extensions/xf86misc.h #- so that first mean "0", etc my @xmousetypes = ( "Microsoft", "MouseSystems", "MMSeries", "Logitech", "BusMouse", #MouseMan, "Logitech", "PS/2", "MMHittab", "GlidePoint", "IntelliMouse", "ThinkingMouse", "IMPS/2", "ThinkingMousePS/2", "MouseManPlusPS/2", "GlidePointPS/2", "NetMousePS/2", "NetScrollPS/2", "SysMouse", "Auto", "AceCad", "ExplorerPS/2", "USB", ); my ($id) = @_; $id = 'BusMouse' if $id eq 'MouseMan'; $id = 'IMPS/2' if $id eq 'ExplorerPS/2' && $::isInstall; eval { find_index { $_ eq $id } @xmousetypes } || 0; } my %mouse_btn_keymap = ( 0 => "NONE", 67 => "F9", 68 => "F10", 87 => "F11", 88 => "F12", 85 => "F13", 89 => "F14", 90 => "F15", 56 => "L-Option/Alt", 125 => "L-Command (Apple)", 98 => "Num: /", 55 => "Num: *", 117 => "Num: =", 96 => "Enter", ); sub ppc_one_button_keys() { keys %mouse_btn_keymap } sub ppc_one_button_key2text { $mouse_btn_keymap{$_[0]} } sub raw2mouse { my ($type, $raw) = @_; $raw or return; my %l; @l{@mouses_fields} = @$raw; +{ %l, type => $type }; } sub fullnames() { map_each { my $type = $::a; grep { $_ } map { if ($_) { my $l = raw2mouse($type, $_); "$type|$l->{name}"; } else { $type .= "|[" . N("Other") . "]"; ''; } } @{$::b->[1]} } %mice; } sub fullname2mouse { my ($fname, %opts) = @_; my ($type, @l) = split '\|', $fname; my $name = pop @l; search: $opts{device} ||= $mice{$type}[0][0]; foreach (@{$mice{$type}[1]}) { my $l = raw2mouse($type, $_); $name eq $l->{name} and return { %$l, %opts }; } if ($name eq '1 Button' || $name eq '1 button') { $name = "Generic 2 Button Mouse"; goto search; } die "$fname not found ($type, $name)"; } sub serial_ports() { map { "ttyS$_" } 0..7 } sub serial_port2text { $_[0] =~ /ttyS(\d+)/ ? "$_[0] / COM" . ($1 + 1) : $_[0]; } sub read() { my %mouse = getVarsFromSh "$::prefix/etc/sysconfig/mouse"; eval { add2hash_(\%mouse, fullname2mouse($mouse{FULLNAME})) }; $mouse{nbuttons} ||= $mouse{XEMU3} eq "yes" ? 2 : $mouse{WHEEL} eq "yes" ? 5 : 3; \%mouse; } sub write { my ($do_pkgs, $mouse) = @_; local $mouse->{FULLNAME} = qq("$mouse->{type}|$mouse->{name}"); #-" local $mouse->{XEMU3} = bool2yesno($mouse->{nbuttons} < 3); local $mouse->{WHEEL} = bool2yesno($mouse->{nbuttons} > 3); setVarsInSh("$::prefix/etc/sysconfig/mouse", $mouse, qw(MOUSETYPE XMOUSETYPE FULLNAME XEMU3 WHEEL device)); any::devfssymlinkf($mouse, 'mouse'); #- we should be using input/mice directly instead of usbmouse, but legacy... symlinkf 'input/mice', "$::prefix/dev/usbmouse" if $mouse->{device} eq "usbmouse"; any::devfssymlinkf($mouse->{auxmouse}, 'mouse1') if $mouse->{auxmouse}; various_xfree_conf($do_pkgs, $mouse); if (arch() =~ /ppc/) { my $s = join('', "dev.mac_hid.mouse_button_emulation = " . to_bool($mouse->{button2_key} || $mouse->{button3_key}) . "\n", if_($mouse->{button2_key}, "dev.mac_hid.mouse_button2_keycode = $mouse->{button2_key}\n"), if_($mouse->{button3_key}, "dev.mac_hid.mouse_button3_keycode = $mouse->{button3_key}\n"), ); substInFile { $_ = '' if /^\Qdev.mac_hid.mouse_button/; $_ .= $s if eof; } "$::prefix/etc/sysctl.conf"; } } sub probe_wacom_devices { my ($modules_conf) = @_; $modules_conf->get_probeall("usb-interface") or return; my (@l) = detect_devices::usbWacom() or return; log::l("found usb wacom $_->{driver} $_->{description} ($_->{type})") foreach @l; my @wacom = eval { modules::load("wacom", "evdev"); grep { detect_devices::tryOpen($_) } map_index { "input/event$::i" } @l }; @wacom or eval { modules::unload("evdev", "wacom") }; @wacom; } sub detect_serial() { my ($t, $mouse, @wacom); #- Whouah! probing all devices from ttyS0 to ttyS3 once a time! detect_devices::probeSerialDevices(); #- check new probing methods keep everything used here intact! foreach (0..3) { $t = detect_devices::probeSerial("/dev/ttyS$_") or next; if ($t->{CLASS} eq 'MOUSE') { $t->{MFG} ||= $t->{MANUFACTURER}; $mouse = fullname2mouse("serial|Microsoft IntelliMouse") if $t->{MFG} eq 'MSH' && $t->{MODEL} eq '0001'; $mouse = fullname2mouse("serial|Logitech MouseMan") if $t->{MFG} eq 'LGI' && $t->{MODEL} =~ /^80/; $mouse = fullname2mouse("serial|Genius NetMouse") if $t->{MFG} eq 'KYE' && $t->{MODEL} eq '0003'; $mouse ||= fullname2mouse("serial|Generic 2 Button Mouse"); #- generic by default. $mouse->{device} = "ttyS$_"; last; } elsif ($t->{CLASS} eq "PEN" || $t->{MANUFACTURER} eq "WAC") { push @wacom, "ttyS$_"; } } $mouse, @wacom; } sub detect { my ($modules_conf) = @_; if (arch() =~ /^sparc/) { return fullname2mouse("sunmouse|Sun - Mouse"); } if (arch() eq "ppc") { return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ? "USB|1 button" : # No need to search for an ADB mouse. If I did, the PPC kernel would # find one whether or not I had one installed! So.. default to it. "busmouse|1 button"); } my @wacom = probe_wacom_devices($modules_conf); if (c::kernel_version() =~ /^\Q2.6/) { $modules_conf->get_probeall("usb-interface") and eval { modules::load('usbhid') }; my @input_devices = cat_('/proc/bus/input/devices'); my $synaptics_mouse; if (my $mouse_nb = grep { /^H: Handlers=mouse/ } @input_devices) { my $univ_mouse = fullname2mouse('Universal|Any PS/2 & USB mice', wacom => \@wacom); if (any { m!^N: Name="(?:SynPS/2 Synaptics TouchPad|AlpsPS/2 ALPS TouchPad)"$! } @input_devices) { $::isInstall and $synaptics_mouse->{alternate_install} = $univ_mouse; #- don't try to use synpatics at beginning of install $synaptics_mouse = fullname2mouse('PS/2|Synaptics Touchpad'); $mouse_nb < 2 and return $synaptics_mouse; $univ_mouse->{auxmouse} = $synaptics_mouse; } return $univ_mouse; } } else { my $ps2_mouse = detect_devices::hasMousePS2("psaux") && fullname2mouse("PS/2|Automatic", unsafe => 0); #- workaround for some special case were mouse is openable 1/2. if (!$ps2_mouse) { $ps2_mouse = detect_devices::hasMousePS2("psaux") && fullname2mouse("PS/2|Automatic", unsafe => 0); $ps2_mouse and detect_devices::hasMousePS2("psaux"); #- fake another open in order for XFree to see the mouse. } if ($modules_conf->get_probeall("usb-interface")) { sleep 2; if (my (@l) = detect_devices::usbMice()) { log::l(join('', "found usb mouse $_->{driver} $_->{description} (", if_($_->{type}, $_->{type}), ")")) foreach @l; if (eval { modules::load(qw(hid mousedev usbmouse)); detect_devices::tryOpen("usbmouse") }) { return fullname2mouse($l[0]{driver} =~ /Mouse:(.*)/ ? $1 : "USB|Wheel", if_($ps2_mouse, auxmouse => $ps2_mouse), #- for laptop, we kept the PS/2 as secondary (symbolic). wacom => \@wacom); } eval { modules::unload(qw(usbmouse mousedev hid)) }; } } else { log::l("no usb interface found for mice"); } if ($ps2_mouse) { return { wacom => \@wacom, %$ps2_mouse }; } } #- probe serial device to make sure a wacom has been detected. eval { modules::load("serial") }; my ($serial_mouse, @serial_wacom) = detect_serial(); push @wacom, @serial_wacom; if ($serial_mouse) { { wacom => \@wacom, %$serial_mouse }; } elsif (@wacom) { #- in case only a wacom has been found, assume an inexistant mouse (necessary). fullname2mouse('none|No mouse', wacom => \@wacom); } elsif (c::kernel_version() =~ /^\Q2.6/) { fullname2mouse('Universal|Any PS/2 & USB mice', unsafe => 1); } else { fullname2mouse("PS/2|Automatic", unsafe => 1); } } sub load_modules { my ($mouse) = @_; my @l; for ($mouse->{type}) { /serial/ and @l = qw(serial); /USB/ and @l = qw(hid mousedev usbmouse); } foreach (@{$mouse->{wacom}}) { /ttyS/ and push @l, qw(serial); /event/ and push @l, qw(wacom evdev); } if (member(N_("Synaptics Touchpad"), $mouse->{name}, $mouse->{auxmouse}{name})) { push @l, qw(evdev); } eval { modules::load(@l) }; } sub set_xfree_conf { my ($mouse, $xfree_conf, $b_keep_auxmouse_unchanged) = @_; my ($synaptics, $mouse_) = partition { $_->{name} eq N_("Synaptics Touchpad") } @{[ $mouse, if_(!is_empty_hash_ref $mouse->{auxmouse}, $mouse->{auxmouse}) ]}; my @mice = map { { Protocol => $_->{XMOUSETYPE}, Device => "/dev/mouse", if_($_->{nbuttons} > 3, ZAxisMapping => [ $_->{nbuttons} > 5 ? '6 7' : '4 5' ]), if_($_->{nbuttons} < 3, Emulate3Buttons => undef, Emulate3Timeout => 50), if_($_->{EMULATEWHEEL}, Emulate3Buttons => undef, Emulate3Timeout => 50, EmulateWheel => undef, EmulateWheelButton => 2), }; } @$mouse_; if (!$mouse->{auxmouse} && $b_keep_auxmouse_unchanged) { my (undef, @l) = $xfree_conf->get_mice; push @mice, @l; } $xfree_conf->set_mice(@mice); if (my @wacoms = @{$mouse->{wacom} || []}) { $xfree_conf->set_wacoms(map { { Device => "/dev/$_", USB => m|input/event| } } @wacoms); } $synaptics and $xfree_conf->set_synaptics(map { { Device => "/dev/$_->{device}", Protocol => $_->{XMOUSETYPE}, Primary => $_ ne $mouse->{auxmouse}, } } @$synaptics); } sub various_xfree_conf { my ($do_pkgs, $mouse) = @_; { my $f = "$::prefix/etc/X11/xinit.d/mouse_buttons"; if ($mouse->{nbuttons} <= 5) { unlink($f); } else { output_with_perm($f, 0755, "xmodmap -e 'pointer = 1 2 3 6 7 4 5'\n"); } } { my $f = "$::prefix/etc/X11/xinit.d/auxmouse_buttons"; if (!$mouse->{auxmouse} || $mouse->{auxmouse}{nbuttons} <= 5) { unlink($f); } else { $do_pkgs->install('xinput'); output_with_perm($f, 0755, "xinput set-button-map Mouse2 1 2 3 6 7 4 5\n"); } } if (member(N_("Synaptics Touchpad"), $mouse->{name}, $mouse->{auxmouse}{name})) { $do_pkgs->install("synaptics"); } } #- write_conf : write the mouse infos into the Xconfig files.