summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/po/eo.po
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/po/eo.po')
-rw-r--r--perl-install/standalone/po/eo.po322
1 files changed, 129 insertions, 193 deletions
diff --git a/perl-install/standalone/po/eo.po b/perl-install/standalone/po/eo.po
index 60f7b8e22..d201099f7 100644
--- a/perl-install/standalone/po/eo.po
+++ b/perl-install/standalone/po/eo.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-03-21 12:08+0100\n"
+"POT-Creation-Date: 2007-07-01 13:42+0200\n"
"PO-Revision-Date: 2003-03-12 18:31-0400\n"
"Last-Translator: Vilhelmo Lutermano <vlutermano@free.fr>\n"
"Language-Team: esperanto <eo@li.org>\n"
@@ -15,225 +15,116 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.6\n"
-#: drakautoinst:37
-#, c-format
-msgid "Error!"
-msgstr "Eraro!"
-
-#: drakautoinst:38
-#, c-format
-msgid "I can not find needed image file `%s'."
-msgstr ""
-
-#: drakautoinst:40
-#, fuzzy, c-format
-msgid "Auto Install Configurator"
-msgstr "Post-instala konfigurado"
-
-#: drakautoinst:41
-#, c-format
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Press ok to continue."
-msgstr ""
-
-#: drakautoinst:59
-#, fuzzy, c-format
-msgid "replay"
-msgstr "Reludu"
-
-#: drakautoinst:59 drakautoinst:68
-#, c-format
-msgid "manual"
-msgstr ""
-
-#: drakautoinst:63
-#, fuzzy, c-format
-msgid "Automatic Steps Configuration"
-msgstr "Post-instala konfigurado"
-
-#: drakautoinst:64
-#, c-format
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: drakautoinst:75
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Enŝovu malplenan disketon en drajvo %s"
-
-#: drakautoinst:76 drakautoinst:77 drakautoinst:91
-#, c-format
-msgid "Creating auto install floppy"
-msgstr "Kreas aŭtoinstalan disketon"
-
-#: drakautoinst:89
-#, fuzzy, c-format
-msgid "Insert another blank floppy in drive %s (for drivers disk)"
-msgstr "Enŝovu malplenan disketon en drajvo %s"
-
-#: drakautoinst:90
-#, fuzzy, c-format
-msgid "Creating auto install floppy (drivers disk)"
-msgstr "Kreas aŭtoinstalan disketon"
-
-#: drakautoinst:155
-#, c-format
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: drakautoinst:249 scannerdrake:420
-#, c-format
-msgid "Congratulations!"
-msgstr "Gratulojn!"
-
-#: drakautoinst:250
-#, c-format
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: drakautoinst:286
-#, c-format
-msgid "Auto Install"
-msgstr "Meminstalo"
-
-#: drakautoinst:355
-#, fuzzy, c-format
-msgid "Add an item"
-msgstr "Aldonu uzulon"
-
-#: drakautoinst:362
-#, fuzzy, c-format
-msgid "Remove the last item"
-msgstr "Formatas retrokonektan dosieron %s"
-
#: drakboot:49
#, c-format
msgid "No bootloader found, creating a new configuration"
msgstr ""
-#: drakboot:86 harddrake2:194 harddrake2:195 logdrake:70
+#: drakboot:83 harddrake2:194 harddrake2:195 logdrake:70
#, c-format
msgid "/_File"
msgstr "/_Dosiero"
-#: drakboot:87 logdrake:76
+#: drakboot:84 logdrake:76
#, c-format
msgid "/File/_Quit"
msgstr "/Dosiero/_Foriru"
-#: drakboot:87 harddrake2:195 logdrake:76
+#: drakboot:84 harddrake2:195 logdrake:76
#, c-format
msgid "<control>Q"
msgstr "<control>Q"
-#: drakboot:127
+#: drakboot:124
#, c-format
msgid "Text only"
msgstr ""
-#: drakboot:128
+#: drakboot:125
#, c-format
msgid "Verbose"
msgstr ""
-#: drakboot:129
+#: drakboot:126
#, c-format
msgid "Silent"
msgstr "Silentigu"
-#: drakboot:136
+#: drakboot:133
#, c-format
msgid ""
"Your system bootloader is not in framebuffer mode. To activate graphical "
"boot, select a graphic video mode from the bootloader configuration tool."
msgstr ""
-#: drakboot:137
+#: drakboot:134
#, fuzzy, c-format
msgid "Do you want to configure it now?"
msgstr "Ĉu vi deziras provi la konfiguraĵon?"
-#: drakboot:146
+#: drakboot:143
#, fuzzy, c-format
msgid "Install themes"
msgstr "Instalu sistemon"
-#: drakboot:148
+#: drakboot:145
#, fuzzy, c-format
msgid "Graphical boot theme selection"
msgstr "Printilan Konekton"
-#: drakboot:151
+#: drakboot:148
#, fuzzy, c-format
msgid "Graphical boot mode:"
msgstr "Printilan Konekton"
-#: drakboot:153
+#: drakboot:150
#, c-format
msgid "Theme"
msgstr "Etoso"
-#: drakboot:156
+#: drakboot:153
#, c-format
msgid ""
"Display theme\n"
"under console"
msgstr ""
-#: drakboot:161 draksplash:25
+#: drakboot:158 draksplash:25
#, fuzzy, c-format
msgid "Create new theme"
msgstr "Kreu novan subdiskon"
-#: drakboot:193
+#: drakboot:190
#, fuzzy, c-format
msgid "Default user"
msgstr "Loka printilo"
-#: drakboot:194
+#: drakboot:191
#, fuzzy, c-format
msgid "Default desktop"
msgstr "Defaŭlta"
-#: drakboot:197
+#: drakboot:194
#, c-format
msgid "No, I do not want autologin"
msgstr ""
-#: drakboot:198
+#: drakboot:195
#, c-format
msgid "Yes, I want autologin with this (user, desktop)"
msgstr ""
-#: drakboot:205
+#: drakboot:202
#, c-format
msgid "System mode"
msgstr "Sistema modalo"
-#: drakboot:208
+#: drakboot:205
#, c-format
msgid "Launch the graphical environment when your system starts"
msgstr ""
-#: drakboot:263
+#: drakboot:260
#, c-format
msgid ""
"Please choose a video mode, it will be applied to each of the boot entries "
@@ -462,93 +353,93 @@ msgstr ""
msgid "Unselect fonts installed"
msgstr ""
-#: drakfont:212
-#, c-format
-msgid "parse all fonts"
-msgstr ""
-
-#: drakfont:214
+#: drakfont:213
#, fuzzy, c-format
msgid "No fonts found"
msgstr "neniu retkarto trovita"
-#: drakfont:222 drakfont:264 drakfont:333 drakfont:374 drakfont:382
-#: drakfont:408 drakfont:426 drakfont:440
+#: drakfont:217
+#, c-format
+msgid "parse all fonts"
+msgstr ""
+
+#: drakfont:222 drakfont:263 drakfont:332 drakfont:373 drakfont:381
+#: drakfont:407 drakfont:425 drakfont:439
#, c-format
msgid "done"
msgstr "farite"
-#: drakfont:227
+#: drakfont:226
#, c-format
msgid "Could not find any font in your mounted partitions"
msgstr ""
-#: drakfont:262
+#: drakfont:261
#, c-format
msgid "Reselect correct fonts"
msgstr ""
-#: drakfont:265
+#: drakfont:264
#, fuzzy, c-format
msgid "Could not find any font.\n"
msgstr "Malinstalu printvicon"
-#: drakfont:275
+#: drakfont:274
#, c-format
msgid "Search for fonts in installed list"
msgstr ""
-#: drakfont:294
+#: drakfont:293
#, c-format
msgid "%s fonts conversion"
msgstr ""
-#: drakfont:331
+#: drakfont:330
#, c-format
msgid "Fonts copy"
msgstr ""
-#: drakfont:334
+#: drakfont:333
#, fuzzy, c-format
msgid "True Type fonts installation"
msgstr "Preparas instaladon"
-#: drakfont:342
+#: drakfont:341
#, c-format
msgid "please wait during ttmkfdir..."
msgstr ""
-#: drakfont:343
+#: drakfont:342
#, c-format
msgid "True Type install done"
msgstr ""
-#: drakfont:349 drakfont:364
+#: drakfont:348 drakfont:363
#, c-format
msgid "type1inst building"
msgstr ""
-#: drakfont:358
+#: drakfont:357
#, c-format
msgid "Ghostscript referencing"
msgstr ""
-#: drakfont:375
+#: drakfont:374
#, c-format
msgid "Suppress Temporary Files"
msgstr ""
-#: drakfont:378 drakfont:436
+#: drakfont:377 drakfont:435
#, fuzzy, c-format
msgid "Restart XFS"
msgstr "limigu"
-#: drakfont:424 drakfont:434
+#: drakfont:423 drakfont:433
#, c-format
msgid "Suppress Fonts Files"
msgstr ""
-#: drakfont:444
+#: drakfont:443
#, c-format
msgid ""
"Before installing any fonts, be sure that you have the right to use and "
@@ -558,164 +449,164 @@ msgid ""
"hang up your X Server."
msgstr ""
-#: drakfont:484
+#: drakfont:483
#, fuzzy, c-format
msgid "Font Installation"
msgstr "Instalu"
-#: drakfont:495
+#: drakfont:494
#, c-format
msgid "DrakFont"
msgstr ""
-#: drakfont:496 drakfont:648
+#: drakfont:495 drakfont:647
#, fuzzy, c-format
msgid "Font List"
msgstr "Surmetingo"
-#: drakfont:499
+#: drakfont:498
#, c-format
msgid "Get Windows Fonts"
msgstr ""
-#: drakfont:505
+#: drakfont:504
#, c-format
msgid "About"
msgstr "Pri"
-#: drakfont:507 drakfont:727
+#: drakfont:506 drakfont:726
#, c-format
msgid "Uninstall"
msgstr "Malinstalo"
-#: drakfont:508
+#: drakfont:507
#, c-format
msgid "Import"
msgstr "Importu"
-#: drakfont:526
+#: drakfont:525
#, c-format
msgid "Drakfont"
msgstr ""
-#: drakfont:528
+#: drakfont:527
#, c-format
msgid "Copyright (C) 2001-2006 by Mandriva"
msgstr "Kopirajto © 2001-2006 Mandriva."
-#: drakfont:530
+#: drakfont:529
#, fuzzy, c-format
msgid "Font installer."
msgstr "Eliru instalprogramon"
-#: drakfont:532 harddrake2:236
+#: drakfont:531 harddrake2:236
#, c-format
msgid "Mandriva Linux"
msgstr "Mandriva Linux"
#. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
#. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
-#: drakfont:539 harddrake2:241
+#: drakfont:538 harddrake2:241
#, c-format
msgid "_: Translator(s) name(s) & email(s)\n"
msgstr "Vilhelmo Lutermano <vlutermano@free.fr>\n"
-#: drakfont:549
+#: drakfont:548
#, fuzzy, c-format
msgid "Choose the applications that will support the fonts:"
msgstr "Elektu la subdiskoj kiuj vi deziras formati"
-#: drakfont:560
+#: drakfont:559
#, c-format
msgid "Ghostscript"
msgstr "Ghostscript"
-#: drakfont:561
+#: drakfont:560
#, c-format
msgid "OpenOffice.org"
msgstr ""
-#: drakfont:562
+#: drakfont:561
#, fuzzy, c-format
msgid "Abiword"
msgstr "Ĉesigu"
-#: drakfont:563
+#: drakfont:562
#, fuzzy, c-format
msgid "Generic Printers"
msgstr "Printilo"
-#: drakfont:577
+#: drakfont:576
#, c-format
msgid "Select the font file or directory and click on 'Add'"
msgstr ""
-#: drakfont:578
+#: drakfont:577
#, fuzzy, c-format
msgid "File Selection"
msgstr "Elektado de Pakaĵoj"
-#: drakfont:582
+#: drakfont:581
#, c-format
msgid "Fonts"
msgstr "Tiparoj"
-#: drakfont:646
+#: drakfont:645
#, fuzzy, c-format
msgid "Import fonts"
msgstr "Formatu subdiskojn"
-#: drakfont:659
+#: drakfont:658
#, c-format
msgid "Install"
msgstr "Instali"
-#: drakfont:690
+#: drakfont:689
#, c-format
msgid "Are you sure you want to uninstall the following fonts?"
msgstr ""
-#: drakfont:735
+#: drakfont:734
#, c-format
msgid "Unselected All"
msgstr ""
-#: drakfont:738
+#: drakfont:737
#, fuzzy, c-format
msgid "Selected All"
msgstr "Elektu dosieron"
-#: drakfont:752 drakfont:771
+#: drakfont:751 drakfont:770
#, fuzzy, c-format
msgid "Importing fonts"
msgstr "Formatu subdiskojn"
-#: drakfont:756 drakfont:776
+#: drakfont:755 drakfont:775
#, c-format
msgid "Initial tests"
msgstr ""
-#: drakfont:757
+#: drakfont:756
#, fuzzy, c-format
msgid "Copy fonts on your system"
msgstr "Via komputilo ne havas retadaptilon!"
-#: drakfont:758
+#: drakfont:757
#, c-format
msgid "Install & convert Fonts"
msgstr ""
-#: drakfont:759
+#: drakfont:758
#, fuzzy, c-format
msgid "Post Install"
msgstr "Instalu"
-#: drakfont:777
+#: drakfont:776
#, fuzzy, c-format
msgid "Remove fonts on your system"
msgstr "Via komputilo ne havas retadaptilon!"
-#: drakfont:778
+#: drakfont:777
#, fuzzy, c-format
msgid "Post Uninstall"
msgstr "Eliru instalprogramon"
@@ -749,12 +640,12 @@ msgid ""
"frontend)\n"
msgstr ""
-#: drakhelp:51
+#: drakhelp:52
#, fuzzy, c-format
msgid "Mandriva Linux Help Center"
msgstr "Irigilo por la Mandrajka helpo"
-#: drakhelp:51
+#: drakhelp:52
#, c-format
msgid "No Help entry for %s\n"
msgstr ""
@@ -2934,6 +2825,11 @@ msgstr ""
msgid "edit the configuration file /etc/sane.d/%s.conf. "
msgstr ""
+#: scannerdrake:420
+#, c-format
+msgid "Congratulations!"
+msgstr "Gratulojn!"
+
#: scannerdrake:421
#, c-format
msgid ""
@@ -3115,27 +3011,27 @@ msgstr "Ĉi tiu pakaĵo %s devas esti instalita. Ĉu vi deziras instali ĝin?"
msgid "Your scanner(s) will not be available on the network."
msgstr ""
-#: service_harddrake:119
+#: service_harddrake:137
#, c-format
msgid "Some devices in the \"%s\" hardware class were removed:\n"
msgstr ""
-#: service_harddrake:120
+#: service_harddrake:138
#, c-format
msgid "- %s was removed\n"
msgstr ""
-#: service_harddrake:123
+#: service_harddrake:141
#, fuzzy, c-format
msgid "Some devices were added: %s\n"
msgstr "Musaparato: %s\n"
-#: service_harddrake:124
+#: service_harddrake:142
#, c-format
msgid "- %s was added\n"
msgstr ""
-#: service_harddrake:245
+#: service_harddrake:265
#, fuzzy, c-format
msgid "Hardware probing in progress"
msgstr "Duobla surmetingo %s"
@@ -3150,6 +3046,46 @@ msgstr ""
msgid "Do you want to run the appropriate config tool?"
msgstr "Ĉu vi deziras provi la konfiguraĵon?"
+#~ msgid "Error!"
+#~ msgstr "Eraro!"
+
+#, fuzzy
+#~ msgid "Auto Install Configurator"
+#~ msgstr "Post-instala konfigurado"
+
+#, fuzzy
+#~ msgid "replay"
+#~ msgstr "Reludu"
+
+#, fuzzy
+#~ msgid "Automatic Steps Configuration"
+#~ msgstr "Post-instala konfigurado"
+
+#~ msgid "Insert a blank floppy in drive %s"
+#~ msgstr "Enŝovu malplenan disketon en drajvo %s"
+
+#~ msgid "Creating auto install floppy"
+#~ msgstr "Kreas aŭtoinstalan disketon"
+
+#, fuzzy
+#~ msgid "Insert another blank floppy in drive %s (for drivers disk)"
+#~ msgstr "Enŝovu malplenan disketon en drajvo %s"
+
+#, fuzzy
+#~ msgid "Creating auto install floppy (drivers disk)"
+#~ msgstr "Kreas aŭtoinstalan disketon"
+
+#~ msgid "Auto Install"
+#~ msgstr "Meminstalo"
+
+#, fuzzy
+#~ msgid "Add an item"
+#~ msgstr "Aldonu uzulon"
+
+#, fuzzy
+#~ msgid "Remove the last item"
+#~ msgstr "Formatas retrokonektan dosieron %s"
+
#~ msgid "HardDrake"
#~ msgstr "HardDrake"
s="hl opt">, [ 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') }; if (cat_('/proc/bus/input/devices') =~ /^H: Handlers=mouse/m) { return fullname2mouse('Universal|Any PS/2 & USB mice', wacom => \@wacom); } } 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); } eval { modules::load(@l) }; } sub set_xfree_conf { my ($mouse, $xfree_conf, $b_keep_auxmouse_unchanged) = @_; 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}, $mouse->{auxmouse})); 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); } } 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"); } } } #- write_conf : write the mouse infos into the Xconfig files. #- input : #- $mouse : the hashtable containing the informations #- $mouse input #- $mouse->{nbuttons} : number of buttons : integer #- $mouse->{device} : device of the mouse : string : ex 'psaux' #- $mouse->{XMOUSETYPE} : type of the mouse for gpm : string : ex 'PS/2' #- $mouse->{type} : type (generic ?) of the mouse : string : ex 'PS/2' #- $mouse->{name} : name of the mouse : string : ex 'Standard' #- $mouse->{MOUSETYPE} : type of the mouse : string : ex "ps/2" #- $mouse->{XEMU3} : emulate 3rd button : string : 'yes' or 'no' sub write_conf { my ($do_pkgs, $modules_conf, $mouse, $b_keep_auxmouse_unchanged) = @_; &write($do_pkgs, $mouse); $modules_conf->write if $mouse->{device} eq "usbmouse" && !$::testing; require Xconfig::xfree; my $xfree_conf = Xconfig::xfree->read; set_xfree_conf($mouse, $xfree_conf, $b_keep_auxmouse_unchanged); $xfree_conf->write; } sub change_mouse_live { my ($mouse, $old) = @_; my $xId = xmouse2xId($mouse->{XMOUSETYPE}); $old->{device} ne $mouse->{device} || $xId != xmouse2xId($old->{XMOUSETYPE}) or return; log::l("telling X server to use another mouse ($mouse->{XMOUSETYPE}, $xId)"); eval { modules::load('serial') } if $mouse->{device} =~ /ttyS/; if (!$::testing) { devices::make($mouse->{device}); symlinkf($mouse->{device}, "/dev/mouse"); eval { require xf86misc::main; xf86misc::main::setMouseLive($ENV{DISPLAY}, $xId, $mouse->{nbuttons} < 3); }; } 1; } sub test_mouse_install { my ($mouse, $x_protocol_changed) = @_; require ugtk2; ugtk2->import(qw(:wrappers :create)); my $w = ugtk2->new('', disallow_big_help => 1); my $darea = Gtk2::DrawingArea->new; $darea->set_events([ 'button_press_mask', 'button_release_mask' ]); #$darea must be unrealized. gtkadd($w->{window}, gtkpack(my $vbox_grab = Gtk2::VBox->new(0, 0), $darea, gtkset_sensitive(create_okcancel($w, undef, undef, 'edge'), 1) ), ); test_mouse($mouse, $darea, $x_protocol_changed); $w->sync; # HACK Gtk2::Gdk->pointer_grab($vbox_grab->window, 1, 'pointer_motion_mask', $vbox_grab->window, undef, 0); my $r = $w->main; Gtk2::Gdk->pointer_ungrab(0); $r; } sub test_mouse_standalone { my ($mouse, $hbox) = @_; require ugtk2; ugtk2->import(qw(:wrappers)); my $darea = Gtk2::DrawingArea->new; $darea->set_events([ 'button_press_mask', 'button_release_mask' ]); #$darea must be unrealized. gtkpack($hbox, gtkpack(gtkset_border_width(Gtk2::VBox->new(0, 10), 10), $darea)); test_mouse($mouse, $darea); } sub test_mouse { my ($mouse, $darea, $b_x_protocol_changed) = @_; require ugtk2; ugtk2->import(qw(:wrappers)); my $suffix = $mouse->{nbuttons} <= 2 ? '2b' : $mouse->{nbuttons} == 3 ? '3b' : '3b+'; my %offsets = (mouse_2b_right => [ 93, 0 ], mouse_3b_right => [ 117, 0 ], mouse_2b_middle => [ 82, 80 ], mouse_3b_middle => [ 68, 0 ], 'mouse_3b+_middle' => [ 85, 67 ]); my %image_files = ( mouse => "mouse_$suffix", left => 'mouse_' . ($suffix eq '3b+' ? '3b' : $suffix) . '_left', right => 'mouse_' . ($suffix eq '3b+' ? '3b' : $suffix) . '_right', if_($mouse->{nbuttons} > 2, middle => 'mouse_' . $suffix . '_middle'), up => 'arrow_up', down => 'arrow_down'); my %images = map { $_ => ugtk2::gtkcreate_pixbuf("$image_files{$_}.png") } keys %image_files; my $width = $images{mouse}->get_width; my $height = round_up(min($images{mouse}->get_height, $::windowheight - 150), 6); my $draw_text = sub { my ($t, $y) = @_; my $layout = $darea->create_pango_layout($t); my ($w) = $layout->get_pixel_size; $darea->window->draw_layout($darea->style->black_gc, ($darea->allocation->width-$w)/2, ($darea->allocation->height-$height)/2 + $y, $layout); }; my $draw_pixbuf = sub { my ($p, $x, $y, $w, $h) = @_; $w = $p->get_width; $h = $p->get_height; $p->render_to_drawable($darea->window, $darea->style->bg_gc('normal'), 0, 0, ($darea->allocation->width-$width)/2 + $x, ($darea->allocation->height-$height)/2 + $y, $w, $h, 'none', 0, 0); }; my $draw_by_name = sub { my ($name) = @_; my $file = $image_files{$name}; my ($x, $y) = @{$offsets{$file} || [ 0, 0 ]}; $draw_pixbuf->($images{$name}, $x, $y); }; my $drawarea = sub { $draw_by_name->('mouse'); if ($::isInstall || 1) { $draw_text->(N("Please test the mouse"), 200); if ($b_x_protocol_changed && $mouse->{nbuttons} > 3 && $mouse->{device} eq 'psaux' && member($mouse->{XMOUSETYPE}, 'IMPS/2', 'ExplorerPS/2')) { $draw_text->(N("To activate the mouse,"), 240); $draw_text->(N("MOVE YOUR WHEEL!"), 260); } } }; my $timeout; my $paintButton = sub { my ($nb) = @_; $timeout or $drawarea->(); if ($nb == 0) { $draw_by_name->('left'); } elsif ($nb == 2) { $draw_by_name->('right'); } elsif ($nb == 1) { if ($mouse->{nbuttons} >= 3) { $draw_by_name->('middle'); } else { my ($x, $y) = @{$offsets{mouse_2b_middle}}; $darea->window->draw_arc($darea->style->black_gc, 1, ($darea->allocation->width-$width)/2 + $x, ($darea->allocation->height-$height)/2 + $y, 20, 25, 0, 360 * 64); } } elsif ($mouse->{nbuttons} > 3) { my ($x, $y) = @{$offsets{$image_files{middle}}}; if ($nb == 3) { $draw_pixbuf->($images{up}, $x+6, $y-10); } elsif ($nb == 4) { $draw_pixbuf->($images{down}, $x+6, $y + $images{middle}->get_height + 2); } $draw_by_name->('middle'); $timeout and Glib::Source->remove($timeout); $timeout = Glib::Timeout->add(100, sub { $drawarea->(); $timeout = 0; 0 }); } }; $darea->signal_connect(button_press_event => sub { $paintButton->($_[1]->button - 1) }); $darea->signal_connect(scroll_event => sub { $paintButton->($_[1]->direction eq 'up' ? 3 : 4) }); $darea->signal_connect(button_release_event => $drawarea); $darea->signal_connect(expose_event => $drawarea); $darea->set_size_request($width, $height); } =begin =head1 NAME mouse - Perl functions to handle mice =head1 SYNOPSYS require modules; require mouse; mouse::detect(modules::any_conf->read); =head1 DESCRIPTION C<mouse> is a perl module used by mousedrake to detect and configure the mouse. =head1 COPYRIGHT Copyright (C) 2000-2002 Mandrakesoft <tvignaud@mandrakesoft.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. =cut