summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/Xconfig')
-rw-r--r--perl-install/Xconfig/card.pm52
-rw-r--r--perl-install/Xconfig/default.pm14
-rw-r--r--perl-install/Xconfig/main.pm11
-rw-r--r--perl-install/Xconfig/parse.pm2
-rw-r--r--perl-install/Xconfig/resolution_and_depth.pm12
-rw-r--r--perl-install/Xconfig/various.pm35
-rw-r--r--perl-install/Xconfig/xfree.pm83
7 files changed, 140 insertions, 69 deletions
diff --git a/perl-install/Xconfig/card.pm b/perl-install/Xconfig/card.pm
index 60c7f4505..304cdc4f7 100644
--- a/perl-install/Xconfig/card.pm
+++ b/perl-install/Xconfig/card.pm
@@ -21,6 +21,8 @@ my %VideoRams = (
65536 => N_("64 MB or more"),
);
+my $lib = arch() =~ /x86_64/ ? "lib64" : "lib";
+
my @xfree4_Drivers = ((arch() =~ /^sparc/ ? qw(sunbw2 suncg14 suncg3 suncg6 sunffb sunleo suntcx) :
qw(apm ark chips cirrus cyrix glide i128 i740 i810 imstt
mga neomagic newport nv rendition r128 radeon vesa
@@ -60,13 +62,12 @@ sub to_raw_X {
# This loads the NVIDIA GLX extension module.
# IT IS IMPORTANT TO KEEP NAME AS FULL PATH TO libglx.so ELSE
# IT WILL LOAD XFree86 glx module and the server will crash.
- $raw_X->set_load_module('/usr/X11R6/lib/modules/extensions/libglx.so', $card->{DRI_GLX_SPECIAL});
+ $raw_X->set_load_module("/usr/X11R6/$lib/modules/extensions/libglx.so", $card->{DRI_GLX_SPECIAL});
if ($card->{Driver2} ne 'nvidia') {
- $raw_X->set_load_module('/usr/X11R6/lib/modules/extensions/libglx.a', 1);
+ $raw_X->set_load_module("/usr/X11R6/$lib/modules/extensions/libglx.a", 1);
}
$raw_X->remove_Section('DRI');
- $raw_X->add_Section('DRI', { Mode => { val => '0666' } }) if $card->{use_DRI_GLX};
$raw_X->remove_load_module('v4l') if $card->{use_DRI_GLX} && $card->{Driver} eq 'r128';
}
@@ -76,7 +77,7 @@ sub default_ATI_fglrx_config() { our $default_ATI_fglrx_config }
sub probe() {
#-for Pixel tests
#- my @c = { driver => 'Card:Matrox Millennium G400 DualHead', description => 'Matrox|Millennium G400 Dual HeadCard' };
- my @c = detect_devices::matching_driver('(Card|Server|Driver):');
+ my @c = detect_devices::matching_driver__regexp('(Card|Server|Driver):');
my @cards = map {
my @l = $_->{description} =~ /(.*?)\|(.*)/;
@@ -147,10 +148,10 @@ sub card_config__not_listed {
my @xf4 = grep { $options->{allowFB} || $_ ne 'fbdev' } @xfree4_Drivers;
my @list = (
(map { 'Vendor|' . $_ } keys %$cards),
- (map { 'XFree 4|' . $_ } @xf4),
+ (map { 'Xorg|' . $_ } @xf4),
);
- my $r = exists $cards->{$card->{BoardName}} ? "Vendor|$card->{BoardName}" : 'XFree 4|vesa';
+ my $r = exists $cards->{$card->{BoardName}} ? "Vendor|$card->{BoardName}" : 'Xorg|vesa';
$in->ask_from_({ title => N("X server"),
messages => N("Choose an X server"),
interactive_help_id => 'configureX_card_list',
@@ -251,7 +252,7 @@ sub configure {
eval { install_server($card, $options, $do_pkgs) };
if ($@) {
- $in->ask_warn('', N("Can't install XFree package: %s", $@));
+ $in->ask_warn('', N("Can't install Xorg package: %s", $@));
goto card_config__not_listed;
}
@@ -289,13 +290,13 @@ sub install_server {
push @packages, 'xorg-x11-glide-module' if $card->{card_name} =~ /Voodoo/;
}
- if ($options->{freeDriver}) {
+ if ($options->{freedriver}) {
delete $card->{Driver2};
}
my %proprietary_Driver2 = (
- nvidia => [ 'NVIDIA_kernel', 'NVIDIA_GLX' ], #- using NVIDIA driver (TNT, TN2 and GeForce cards only).
- fglrx => [ 'ATI_kernel', 'ATI_GLX' ], #- using ATI fglrx driver (Radeon, Fire GL cards only).
+ nvidia => [ 'nvidia-kernel', 'nvidia' ], #- using NVIDIA driver (TNT, TN2 and GeForce cards only).
+ fglrx => [ 'ati-kernel', 'ati' ], #- using ATI fglrx driver (Radeon, Fire GL cards only).
);
if (my $rpms_needed = $proprietary_Driver2{$card->{Driver2}}) {
if (my $proprietary_packages = $do_pkgs->check_kernel_module_packages($rpms_needed->[0], $rpms_needed->[1])) {
@@ -309,8 +310,8 @@ sub install_server {
#- make sure everything is correct at this point, packages have really been installed
#- and driver and GLX extension is present.
if ($card->{Driver2} eq 'nvidia' &&
- -e "$::prefix/usr/X11R6/lib/modules/drivers/nvidia_drv.o" &&
- -l "$::prefix/usr/X11R6/lib/modules/extensions/libglx.so") {
+ -e "$::prefix/usr/X11R6/$lib/modules/drivers/nvidia_drv.o" &&
+ -l "$::prefix/usr/X11R6/$lib/modules/extensions/libglx.so") {
log::l("Using specific NVIDIA driver and GLX extensions");
$card->{Driver} = 'nvidia';
$card->{DRI_GLX_SPECIAL} = 1;
@@ -329,8 +330,8 @@ sub install_server {
}
system("/sbin/ldconfig") if $::isStandalone;
if ($card->{Driver2} eq 'fglrx' &&
- -e "$::prefix/usr/X11R6/lib/modules/dri/fglrx_dri.so" &&
- -e "$::prefix/usr/X11R6/lib/modules/drivers/fglrx_drv.o") {
+ -e "$::prefix/usr/X11R6/$lib/modules/dri/fglrx_dri.so" &&
+ -e "$::prefix/usr/X11R6/$lib/modules/drivers/fglrx_drv.o") {
log::l("Using specific ATI fglrx and DRI drivers");
$card->{Driver} = 'fglrx';
}
@@ -348,9 +349,9 @@ sub xfree_and_glx_choose {
my $tc =
$auto ? $choices[0] :
- $in->ask_from_listf_raw({ title => N("XFree configuration"),
+ $in->ask_from_listf_raw({ title => N("Xorg configuration"),
messages => formatAlaTeX(join("\n\n\n", (grep { $_ } map { $_->{more_messages} } @choices),
- N("Which configuration of XFree do you want to have?"))),
+ N("Which configuration of Xorg do you want to have?"))),
interactive_help_id => 'configureX_xfree_and_glx',
},
sub { $_[0]{text} }, \@choices) or return;
@@ -395,31 +396,31 @@ sub multi_head_choices {
@choices;
}
-#- XFree version available, it would be better to parse available package and get version from it.
-sub xfree4_version() { '4.3' }
+#- Xorg version available, it would be better to parse available package and get version from it.
+sub xorg_version() { '6.7.0' }
sub xfree_and_glx_choices {
my ($card) = @_;
- my @choices = if_($card->{Driver}, { text => N("XFree %s", xfree4_version()), code => sub {} });
+ my @choices = if_($card->{Driver}, { text => N("Xorg %s", xorg_version()), code => sub {} });
#- no GLX with Xinerama
return @choices if $card->{Xinerama};
#- ask the expert or any user on second pass user to enable or not hardware acceleration support.
if ($card->{DRI_GLX}) {
- unshift @choices, { text => N("XFree %s with 3D hardware acceleration", xfree4_version()),
+ unshift @choices, { text => N("Xorg %s with 3D hardware acceleration", xorg_version()),
code => sub { $card->{use_DRI_GLX} = 1 },
- more_messages => N("Your card can have 3D hardware acceleration support with XFree %s.", xfree4_version()),
+ more_messages => N("Your card can have 3D hardware acceleration support with Xorg %s.", xorg_version()),
};
}
#- an expert user may want to try to use an EXPERIMENTAL 3D acceleration.
if ($card->{DRI_GLX_EXPERIMENTAL} && $::expert) {
- push @choices, { text => N("XFree %s with EXPERIMENTAL 3D hardware acceleration", xfree4_version()),
+ push @choices, { text => N("Xorg %s with EXPERIMENTAL 3D hardware acceleration", xorg_version()),
code => sub { $card->{use_DRI_GLX} = 1 },
- more_messages => N("Your card can have 3D hardware acceleration support with XFree %s,
-NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.", xfree4_version()),
+ more_messages => N("Your card can have 3D hardware acceleration support with Xorg %s,
+NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.", xorg_version()),
};
}
@choices;
@@ -459,7 +460,7 @@ sub add_to_card__using_Cards {
$card;
}
-#- needed for bad cards not restoring cleanly framebuffer, according to which version of XFree are used.
+#- needed for bad cards not restoring cleanly framebuffer, according to which version of Xorg are used.
sub check_bad_card {
my ($card) = @_;
my $bad_card = $card->{BAD_FB_RESTORE};
@@ -580,3 +581,4 @@ Option "FSAAMSPosY5" "0.000000"
END
1;
+
diff --git a/perl-install/Xconfig/default.pm b/perl-install/Xconfig/default.pm
index 9d317fc3a..f41fccaf7 100644
--- a/perl-install/Xconfig/default.pm
+++ b/perl-install/Xconfig/default.pm
@@ -10,29 +10,29 @@ use mouse;
sub configure {
- my ($keyboard, $mouse) = @_;
+ my ($do_pkgs, $o_keyboard, $o_mouse) = @_;
- $keyboard ||= keyboard::read();
- $mouse ||= do {
+ my $keyboard = $o_keyboard || keyboard::read();
+ my $mouse = $o_mouse || do {
my $mouse = mouse::read();
- add2hash($mouse, mouse::detect()) if !$::noauto;
+ add2hash($mouse, mouse::detect(modules::any_conf->read)) if !$::noauto;
$mouse;
};
-
my $raw_X = Xconfig::xfree->empty_config;
$raw_X->add_load_module($_) foreach qw(dbe v4l extmod type1 freetype);
config_keyboard($raw_X, $keyboard);
- config_mouse($raw_X, $mouse);
+ config_mouse($raw_X, $do_pkgs, $mouse);
$raw_X;
}
sub config_mouse {
- my ($raw_X, $mouse) = @_;
+ my ($raw_X, $do_pkgs, $mouse) = @_;
mouse::set_xfree_conf($mouse, $raw_X);
+ mouse::various_xfree_conf($do_pkgs, $mouse);
}
sub config_keyboard {
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm
index f1ad91f41..a794f3297 100644
--- a/perl-install/Xconfig/main.pm
+++ b/perl-install/Xconfig/main.pm
@@ -159,10 +159,17 @@ sub configure_chooser {
sub configure_everything_or_configure_chooser {
my ($in, $options, $auto, $o_keyboard, $o_mouse) = @_;
- my $raw_X = Xconfig::xfree->read;
+ my $raw_X = eval { Xconfig::xfree->read };
+
+ if (!$raw_X) {
+ log::l("ERROR: bad X config file $@");
+ $in->ask_okcancel('',
+ N("Your Xorg configuration file is broken, we will ignore it.")) or return;
+ $raw_X = [];
+ }
if (is_empty_array_ref($raw_X)) {
- $raw_X = Xconfig::default::configure($o_keyboard, $o_mouse);
+ $raw_X = Xconfig::default::configure($in->do_pkgs, $o_keyboard, $o_mouse);
Xconfig::main::configure_everything($in, $raw_X, $in->do_pkgs, $auto, $options) or return;
} else {
Xconfig::main::configure_chooser($in, $raw_X, $in->do_pkgs, $options) or return if !$auto;
diff --git a/perl-install/Xconfig/parse.pm b/perl-install/Xconfig/parse.pm
index ae270b9e8..ab2838b43 100644
--- a/perl-install/Xconfig/parse.pm
+++ b/perl-install/Xconfig/parse.pm
@@ -59,7 +59,7 @@ sub raw_from_file { #- internal
if (/^$/) {
$comment .= "\n" if $comment;
next;
- } elsif (/^#\W/ || /^#$/) {
+ } elsif (@objs ? m/^#\W/ || /^#$/ : /^#/) {
s/^#\s+/# /;
$comment .= "$_\n";
next;
diff --git a/perl-install/Xconfig/resolution_and_depth.pm b/perl-install/Xconfig/resolution_and_depth.pm
index 3ddb931cc..8e6bb6c52 100644
--- a/perl-install/Xconfig/resolution_and_depth.pm
+++ b/perl-install/Xconfig/resolution_and_depth.pm
@@ -262,6 +262,7 @@ sub choose_gtk {
$pixmap_mo->set_from_file($image);
$x_res_combo->entry->set_text($chosen_x_res . "x" . $chosen_y_res);
};
+ $x_res_combo->set_popdown_strings(uniq map { "$_->{X}x$_->{Y}" } sort { $a->{X} <=> $b->{X} } @resolutions);
$set_chosen_resolution->($chosen_x_res, $chosen_y_res);
my $help_sub = $in->interactive_help_sub_display_id('configureX_resolution');
@@ -269,13 +270,13 @@ sub choose_gtk {
gtkpack_($W->create_box_with_title(N("Choose the resolution and the color depth"),
if_($card->{BoardName}, "(" . N("Graphics card: %s", $card->{BoardName}) . ")"),
),
- 1, gtkpack2(new Gtk2::VBox(0,0),
- gtkpack2__(new Gtk2::VBox(0, 15),
+ 1, gtkpack2(Gtk2::VBox->new(0,0),
+ gtkpack2__(Gtk2::VBox->new(0, 15),
$pixmap_mo,
- gtkpack2(new Gtk2::HBox(0,0),
+ gtkpack2(Gtk2::HBox->new(0,0),
create_packtable({ col_spacings => 5, row_spacings => 5 },
- [ $x_res_combo, new Gtk2::Label("") ],
- [ $depth_combo, gtkadd(gtkset_shadow_type(new Gtk2::Frame, 'etched_out'), $pix_colors) ],
+ [ $x_res_combo, Gtk2::Label->new("") ],
+ [ $depth_combo, gtkadd(gtkset_shadow_type(Gtk2::Frame->new, 'etched_out'), $pix_colors) ],
),
),
),
@@ -294,7 +295,6 @@ sub choose_gtk {
$set_chosen_resolution->(max(@{$depth2x_res{$chosen_Depth}}));
}
});
- $x_res_combo->set_popdown_strings(uniq map { "$_->{X}x$_->{Y}" } sort { $a->{X} <=> $b->{X} } @resolutions);
$x_res_combo->entry->signal_connect(changed => sub {
$set_chosen_resolution->($1, $2) if $x_res_combo->entry->get_text =~ /(\d+)x(\d+)/;
diff --git a/perl-install/Xconfig/various.pm b/perl-install/Xconfig/various.pm
index e69d40549..1ce1ce37e 100644
--- a/perl-install/Xconfig/various.pm
+++ b/perl-install/Xconfig/various.pm
@@ -18,9 +18,9 @@ sub to_string {
sub info {
my ($raw_X, $card) = @_;
my $info;
- my $xf_ver = Xconfig::card::xfree4_version();
- my $title = $card->{use_DRI_GLX} ? N("XFree %s with 3D hardware acceleration", $xf_ver) :
- N("XFree %s", $xf_ver);
+ my $xf_ver = Xconfig::card::xorg_version();
+ my $title = $card->{use_DRI_GLX} ? N("Xorg %s with 3D hardware acceleration", $xf_ver) :
+ N("Xorg %s", $xf_ver);
my $keyboard = eval { $raw_X->get_keyboard } || {};
my @monitors = eval { $raw_X->get_monitors };
my $device = eval { $raw_X->get_device } || {};
@@ -40,7 +40,7 @@ sub info {
$info .= N("Color depth: %s\n", translate($Xconfig::resolution_and_depth::depth2text{$resolution->{Depth}}));
$info .= N("Resolution: %s\n", join('x', @$resolution{'X', 'Y'}));
}
- $info .= N("XFree86 driver: %s\n", $device->{Driver}) if $device->{Driver};
+ $info .= N("Xorg driver: %s\n", $device->{Driver}) if $device->{Driver};
"$title\n\n$info";
}
@@ -53,11 +53,11 @@ sub various {
}
sub runlevel {
- my ($runlevel) = @_;
+ my ($o_runlevel) = @_;
my $f = "$::prefix/etc/inittab";
-r $f or log::l("missing inittab!!!"), return;
- if ($runlevel) {
- substInFile { s/^id:\d:initdefault:\s*$/id:$runlevel:initdefault:\n/ } $f if !$::testing;
+ if ($o_runlevel) {
+ substInFile { s/^id:\d:initdefault:\s*$/id:$o_runlevel:initdefault:\n/ } $f if !$::testing;
} else {
cat_($f) =~ /^id:(\d):initdefault:\s*$/m && $1;
}
@@ -71,8 +71,8 @@ sub choose_xdm {
$xdm = $in->ask_yesorno_({
title => N("Graphical interface at startup"),
messages =>
-N("I can setup your computer to automatically start the graphical interface (XFree) upon booting.
-Would you like XFree to start when you reboot?"),
+N("I can setup your computer to automatically start the graphical interface (Xorg) upon booting.
+Would you like Xorg to start when you reboot?"),
interactive_help_id => 'configureXxdm',
}, $xdm);
}
@@ -98,13 +98,13 @@ Do you have this feature?")) or return;
$norm = $in->ask_from_list('', N("What norm is your TV using?"), [ 'NTSC', 'PAL' ], $norm) or return;
- configure_FB_TVOUT({ norm => $norm });
+ configure_FB_TVOUT($in->do_pkgs, { norm => $norm });
}
sub configure_FB_TVOUT {
- my ($use_FB_TVOUT) = @_;
+ my ($do_pkgs, $use_FB_TVOUT) = @_;
- my $raw_X = Xconfig::default::configure();
+ my $raw_X = Xconfig::default::configure($do_pkgs);
return if is_empty_array_ref($raw_X);
$raw_X->set_monitors({ HorizSync => '30-50', VertRefresh => ($use_FB_TVOUT->{norm} eq 'NTSC' ? 60 : 50) });
@@ -131,22 +131,21 @@ sub configure_FB_TVOUT {
require bootloader;
require fsedit;
require detect_devices;
- my ($bootloader, $all_hds) =
- $::isInstall ? ($::o->{bootloader}, $::o->{all_hds}) :
- (bootloader::read(), fsedit::get_hds());
+ my $all_hds = $::isInstall ? $::o->{all_hds} : fsedit::get_hds();
+ my $bootloader = $::isInstall ? $::o->{bootloader} : bootloader::read(fs::get::fstab($all_hds));
if (my $tvout = bootloader::duplicate_kernel_entry($bootloader, 'TVout')) {
$tvout->{append} .= " XFree=tvout";
- bootloader::install($bootloader, $all_hds->{hds});
+ bootloader::install($bootloader, $all_hds);
}
}
}
sub check_XF86Config_symlink() {
- my $f = "$::prefix/etc/X11/XF86Config-4";
+ my $f = "$::prefix/etc/X11/XF86Config";
if (!-l $f && -e "$f.tvout") {
rename $f, "$f.standard";
- symlink "XF86Config-4.standard", $f;
+ symlink "XF86Config.standard", $f;
}
}
diff --git a/perl-install/Xconfig/xfree.pm b/perl-install/Xconfig/xfree.pm
index 18fc31e15..ba2c2cedf 100644
--- a/perl-install/Xconfig/xfree.pm
+++ b/perl-install/Xconfig/xfree.pm
@@ -17,16 +17,28 @@ sub new {
################################################################################
sub read {
my ($class) = @_;
- my $file = "$::prefix/etc/X11/XF86Config";
- $file = "$file-4" if -e "$file-4"; #- prefer XF86Config-4 when there is one. Writing will take care of keeping only the new name
- $class->new(Xconfig::parse::read_XF86Config($file));
+ my @files = map { "$::prefix/etc/X11/$_" } 'xorg.conf', 'XF86Config-4', 'XF86Config';
+ my $file = (find { -f $_ && ! -l $_ } @files) || (find { -f $_ } @files);
+ my $raw_X = $class->new(Xconfig::parse::read_XF86Config($file));
+
+ if (my ($Keyboard) = $raw_X->get_InputDevices('Keyboard')) {
+ $Keyboard->{Driver}{val} = 'keyboard';
+ }
+ $raw_X;
}
sub write {
my ($raw_X, $o_file) = @_;
my $file = $o_file || "$::prefix/etc/X11/XF86Config";
if (!$o_file) {
- rename $file, "$file.old";
- rename "$file-4", "$file-4.old"; #- there won't be any XF86Config-4 anymore, we want this!
+ my $xorg = "$::prefix/etc/X11/xorg.conf";
+ foreach ($file, "$file-4", $xorg) {
+ if (-l $_) {
+ unlink $_;
+ } else {
+ rename $_, "$_.old"; #- there won't be any XF86Config-4 anymore, we want this!
+ }
+ }
+ symlinkf 'XF86Config', $xorg;
}
Xconfig::parse::write_XF86Config($raw_X, $file);
}
@@ -45,18 +57,18 @@ sub empty_config {
my @keyboard_fields = qw(XkbLayout XkbModel XkbDisable XkbOptions XkbCompat);
sub get_keyboard {
my ($raw_X) = @_;
- my $raw_kbd = $raw_X->get_InputDevices('Keyboard') or die "no keyboard section";
+ my $raw_kbd = first($raw_X->get_InputDevices('keyboard')) or die "no keyboard section";
raw_export_section($raw_kbd, \@keyboard_fields);
}
sub set_keyboard {
my ($raw_X, $kbd) = @_;
- my $raw_kbd = $raw_X->get_InputDevices('Keyboard') || _new_keyboard_section($raw_X);
+ my $raw_kbd = first($raw_X->get_InputDevices('keyboard')) || _new_keyboard_section($raw_X);
raw_import_section($raw_kbd, $kbd);
_set_Option('keyboard', $raw_kbd, keys %$kbd);
}
sub _new_keyboard_section {
my ($raw_X) = @_;
- my $raw_kbd = { Identifier => { val => 'Keyboard1' }, Driver => { val => 'Keyboard' } };
+ my $raw_kbd = { Identifier => { val => 'Keyboard1' }, Driver => { val => 'keyboard' } };
$raw_X->add_Section('InputDevice', $raw_kbd);
my $layout = get_ServerLayout($raw_X)->{InputDevice} ||= [];
@@ -203,6 +215,47 @@ sub set_wacoms {
################################################################################
+# synaptics ####################################################################
+################################################################################
+sub set_synaptics {
+ my ($raw_X, @synaptics) = @_;
+ $raw_X->remove_InputDevices('synaptics');
+
+ my $layout = get_ServerLayout($raw_X)->{InputDevice} ||= [];
+ @$layout = grep { $_->{val} !~ /^"SynapticsMouse/ } @$layout;
+
+ @synaptics or return;
+ add_load_module($raw_X, "synaptics");
+
+ each_index {
+ my $synaptics_mouse = $_;
+ my $identifier = "SynapticsMouse" . ($::i + 1);
+ my $pointer_type = $synaptics_mouse->{Primary} ? "CorePointer" : "AlwaysCore";
+ my $h = { Identifier => { val => $identifier },
+ Driver => { val => "synaptics" },
+ Device => { val => $synaptics_mouse->{Device}, Option => 1 },
+ Protocol => { val => $synaptics_mouse->{Protocol}, Option => 1 },
+ LeftEdge => { val => 1700, Option => 1 },
+ RightEdge => { val => 5300, Option => 1 },
+ TopEdge => { val => 1700, Option => 1 },
+ BottomEdge => { val => 4200, Option => 1 },
+ FingerLow => { val => 25, Option => 1 },
+ FingerHigh => { val => 30, Option => 1 },
+ MaxTapTime => { val => 180, Option => 1 },
+ MaxTapMove => { val => 220, Option => 1 },
+ VertScrollDelta => { val => 100, Option => 1 },
+ MinSpeed => { val => '0.06', Option => 1 },
+ MaxSpeed => { val => '0.12', Option => 1 },
+ AccelFactor => { val => '0.0010', Option => 1 },
+ SHMConfig => { val => "on", Option => 1 },
+ };
+ $raw_X->add_Section('InputDevice', $h);
+ push @$layout, { val => qq("$identifier" "$pointer_type") };
+ } @synaptics;
+}
+
+
+################################################################################
# monitor ######################################################################
################################################################################
my @monitor_fields = qw(VendorName ModelName HorizSync VertRefresh);
@@ -427,10 +480,13 @@ our @resolutions = (
'800x600',
'1024x480', '1024x768',
'1152x768', '1152x864',
- '1280x960', '1280x1024',
+ '1280x800', # 16/10,
+ '1280x960', '1280x1024',
'1400x1050',
'1600x1200',
- '1920x1200', '1920x1440',
+ '1680x1050', # 16/10
+ '1920x1200', # 16/10
+ '1920x1440',
'2048x1536',
);
@@ -482,6 +538,13 @@ END_PPC
# 1024x480 @ 85.6 Hz, 48 kHz hsync
ModeLine "1024x480" 65.00 1024 1032 1176 1344 480 488 494 563 -hsync -vsync
+ # Dell D800 and few Inspiron (16/10) 1280x800
+ ModeLine "1280x800" 147.89 1280 1376 1512 1744 800 801 804 848
+ # Dell D800 and few Inspiron (16/10) 1680x1050
+ ModeLine "1680x1050" 214.51 1680 1800 1984 2288 1050 1051 1054 1103
+ # Dell D800 and few Inspiron (16/10) 1920x1200
+ ModeLine "1920x1200" 230 1920 1936 2096 2528 1200 1201 1204 1250 +HSync +VSync
+
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630