summaryrefslogtreecommitdiff
path: root/XOrg/xorgconf.pm
diff options
context:
space:
mode:
Diffstat (limited to 'XOrg/xorgconf.pm')
-rwxr-xr-xXOrg/xorgconf.pm50
1 files changed, 11 insertions, 39 deletions
diff --git a/XOrg/xorgconf.pm b/XOrg/xorgconf.pm
index 8cf4c7b..987eecc 100755
--- a/XOrg/xorgconf.pm
+++ b/XOrg/xorgconf.pm
@@ -71,10 +71,14 @@ use warnings;
use strict;
use Carp;
use Data::Dumper;
+use XOrg::ConfigGenerator;
+
my $default_config_file = "/etc/X11/xorg.conf";
sub DEFAULT_CONFIG_FILE { return $default_config_file};
+our @ISA = qw(XOrg::ConfigGenerator);
+
my $conf_header = '
# This configuration was generated by XOrg::xorgconf.pm.
';
@@ -126,7 +130,7 @@ sub add_serverlayout {
$identifier = "<default server layout>";
}
- $layout =~ s/→identifier←/$identifier/;
+ $layout = $self->replace($layout, {identifier => $identifier});
for (keys %options) {
$layout = $self->_section_add_option($layout, $_, $options{$_});
@@ -156,8 +160,8 @@ sub add_input_device {
}
my $section = $input_device_template;
- $section =~ s/→identifier←/$identifier/;
- $section =~ s/→driver←/$driver/;
+ $section = $self->replace($section, {identifier => $identifier,
+ driver => $driver});
for (keys %options) {
$section = $self->_section_add_option($section, $_, $options{$_});
}
@@ -166,7 +170,7 @@ sub add_input_device {
if (not defined $self->_sections->{serverlayout}) {
$self->add_serverlayout;
}
- $self->_sections->{serverlayout} = $self->_add_to_placeholder($self->_sections->{serverlayout},
+ $self->_sections->{serverlayout} = $self->add_to_placeholder($self->_sections->{serverlayout},
"input_device",
"InputDevice \"$identifier\"");
}
@@ -179,8 +183,8 @@ sub print {
my $str = $self->_sections->{header};
my @devices;
- $str .= $self->_purify($self->_sections->{serverlayout}) if defined $self->_sections->{serverlayout};
- $str .= $self->_purify($self->_sections->{serverflags}) if defined $self->_sections->{serverflags};
+ $str .= $self->purify($self->_sections->{serverlayout}) if defined $self->_sections->{serverlayout};
+ $str .= $self->purify($self->_sections->{serverflags}) if defined $self->_sections->{serverflags};
if ($self->_sections->{inputdevices}) {
@devices = @{$self->_sections->{inputdevices}};
@@ -192,45 +196,13 @@ sub print {
return $str ."\n";
}
-sub save {
- my $self = shift;
- my $filename = shift;
-
- $filename = $self->DEFAULT_CONFIG_FILE if not defined $filename;
-
- open XCONF, "> $filename";
- print XCONF $self->print;
- close XCONF;
-}
-
-
-# Internal methods
-sub _add_to_placeholder {
- my $self = shift;
- my $str = shift;
- my $placeholder = shift;
- my $replacement = shift;
-
- $str =~ s/(→$placeholder←)/$replacement\n $1/;
-
- return $str;
-}
-
sub _section_add_option {
my $self = shift;
my $str = shift;
my $optname = shift;
my $optval = shift;
- $str = $self->_add_to_placeholder($str, "option", "Option \"$optname\" \"$optval\"");
- return $str;
-}
-
-# Called before printing each section, removes any leftover placeholders.
-sub _purify {
- my $self = shift;
- my $str = shift;
- $str =~ s/→\w+←//g;
+ $str = $self->add_to_placeholder($str, "option", "Option \"$optname\" \"$optval\"");
return $str;
}