aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/config
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/config')
-rw-r--r--xorg-server/config/hal.c6
-rw-r--r--xorg-server/config/udev.c7
-rw-r--r--xorg-server/config/x11-input.fdi191
3 files changed, 96 insertions, 108 deletions
diff --git a/xorg-server/config/hal.c b/xorg-server/config/hal.c
index 5ce7d7d48..dab35ddf7 100644
--- a/xorg-server/config/hal.c
+++ b/xorg-server/config/hal.c
@@ -376,6 +376,7 @@ device_added(LibHalContext *hal_ctx, const char *udi)
add_option(&options, "xkb_model", xkb_opts.model);
if (xkb_opts.options)
add_option(&options, "xkb_options", xkb_opts.options);
+ add_option(&options, "config_info", config_info);
/* this isn't an error, but how else do you output something that the user can see? */
LogMessage(X_INFO, "config/hal: Adding input device %s\n", name);
@@ -385,11 +386,6 @@ device_added(LibHalContext *hal_ctx, const char *udi)
goto unwind;
}
- for (; dev; dev = dev->next){
- free(dev->config_info);
- dev->config_info = strdup(config_info);
- }
-
unwind:
if (set)
libhal_free_property_set(set);
diff --git a/xorg-server/config/udev.c b/xorg-server/config/udev.c
index 32f414137..88222bb01 100644
--- a/xorg-server/config/udev.c
+++ b/xorg-server/config/udev.c
@@ -181,17 +181,14 @@ device_added(struct udev_device *udev_device)
}
}
+ add_option(&options, "config_info", config_info);
+
LogMessage(X_INFO, "config/udev: Adding input device %s (%s)\n",
name, path);
rc = NewInputDeviceRequest(options, &attrs, &dev);
if (rc != Success)
goto unwind;
- for (; dev; dev = dev->next) {
- free(dev->config_info);
- dev->config_info = strdup(config_info);
- }
-
unwind:
free(config_info);
while (!dev && (tmpo = options)) {
diff --git a/xorg-server/config/x11-input.fdi b/xorg-server/config/x11-input.fdi
index 9e629cbd0..42489821d 100644
--- a/xorg-server/config/x11-input.fdi
+++ b/xorg-server/config/x11-input.fdi
@@ -1,98 +1,93 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<deviceinfo version="0.2">
- <device>
-
- <!-- The way this works:
-
- Match against some input device (see the HAL specification for more
- information), and then merge in keys, which you can use to specify
- the configuration similar to the way you would in xorg.conf. You will
- need to restart HAL after making changes. If you are having issues,
- starting X with the -logverbose 7 flag may yield useful information.
-
- Keys Supported:
-
- Key "input.x11_driver" (string)
- This specifies the driver to use. You MUST specify this option,
- or a driver will not be loaded and the rest will be ignored by
- Xorg
-
- Key "input.x11_options.<option name>" (string)
- This allows you to specify arbitrary options to pass to the driver.
- Anything you would normally specify in xorg.conf goes here. So, for
- option "Mode" in xorg.conf, you would specify the key name of
- "input.x11_options.Mode".
-
- Do not specify "input.x11_options.Device" since "input.device"
- will be used automatically.
-
- You MUST specify all options as strings, otherwise the server will
- ignore them.
-
- Legacy Keys
- "input.xkb.rules"
- "input.xkb.model"
- "input.xkb.layout"
- "input.xkb.variant"
- "input.xkb.options"
-
- These keys are deprecated. Use these instead:
- "input.x11_options.XkbRules"
- "input.x11_options.XkbModel"
- "input.x11_options.XkbLayout"
- "input.x11_options.XkbVariant"
- "input.x11_options.XkbOptions"
-
- See the evdev documentation for more information.
-
- You will probably want to add the following option to the ServerFlags of
- your xorg.conf:
-
- Option "AllowEmptyInput" "True"
-
- FIXME: Support tablets too.
- TODO: I think its fixed, can't test
-
- -->
-
- <match key="info.capabilities" contains="input.mouse">
- <merge key="input.x11_driver" type="string">mouse</merge>
- <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
- string="Linux">
- <merge key="input.x11_driver" type="string">evdev</merge>
- </match>
- <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
- string="SunOS">
- <match key="input.device" contains="usb">
- <merge key="input.x11_options.StreamsModule" type="string">usbms</merge>
- <merge key="input.x11_options.Protocol" type="string">VUID</merge>
- </match>
- </match>
- </match>
-
- <match key="info.capabilities" contains="input.keys">
- <merge key="input.x11_options.XkbRules" type="string">base</merge>
-
- <!-- If we're using Linux, we use evdev by default (falling back to
- kbd otherwise). -->
- <merge key="input.x11_driver" type="string">kbd</merge>
- <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
- <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
- string="Linux">
- <merge key="input.x11_driver" type="string">evdev</merge>
- <merge key="input.x11_options.XkbModel" type="string">evdev</merge>
- </match>
- <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
- string="SunOS">
- <match key="input.device" contains="usb">
- <merge key="input.x11_options.StreamsModule" type="string">usbkbm</merge>
- <merge key="input.x11_options.Protocol" type="string">VUID</merge>
- </match>
- </match>
-
- <merge key="input.x11_options.XkbLayout" type="string">us</merge>
-
- <merge key="input.x11_options.XkbVariant" type="string" />
- </match>
- </device>
-</deviceinfo>
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+ <device>
+
+ <!-- The way this works:
+
+ Match against some input device (see the HAL specification for more
+ information), and then merge in keys, which you can use to specify
+ the configuration similar to the way you would in xorg.conf. You will
+ need to restart HAL after making changes. If you are having issues,
+ starting X with the -logverbose 7 flag may yield useful information.
+
+ Keys Supported:
+
+ Key "input.x11_driver" (string)
+ This specifies the driver to use. You MUST specify this option,
+ or a driver will not be loaded and the rest will be ignored by
+ Xorg
+
+ Key "input.x11_options.<option name>" (string)
+ This allows you to specify arbitrary options to pass to the driver.
+ Anything you would normally specify in xorg.conf goes here. So, for
+ option "Mode" in xorg.conf, you would specify the key name of
+ "input.x11_options.Mode".
+
+ Do not specify "input.x11_options.Device" since "input.device"
+ will be used automatically.
+
+ You MUST specify all options as strings, otherwise the server will
+ ignore them.
+
+ Legacy Keys
+ "input.xkb.rules"
+ "input.xkb.model"
+ "input.xkb.layout"
+ "input.xkb.variant"
+ "input.xkb.options"
+
+ These keys are deprecated. Use these instead:
+ "input.x11_options.XkbRules"
+ "input.x11_options.XkbModel"
+ "input.x11_options.XkbLayout"
+ "input.x11_options.XkbVariant"
+ "input.x11_options.XkbOptions"
+
+ See the evdev documentation for more information.
+
+ FIXME: Support tablets too.
+ TODO: I think its fixed, can't test
+
+ -->
+
+ <match key="info.capabilities" contains="input.mouse">
+ <merge key="input.x11_driver" type="string">mouse</merge>
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="Linux">
+ <merge key="input.x11_driver" type="string">evdev</merge>
+ </match>
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="SunOS">
+ <match key="input.device" contains="usb">
+ <merge key="input.x11_options.StreamsModule" type="string">usbms</merge>
+ <merge key="input.x11_options.Protocol" type="string">VUID</merge>
+ </match>
+ </match>
+ </match>
+
+ <match key="info.capabilities" contains="input.keys">
+ <merge key="input.x11_options.XkbRules" type="string">base</merge>
+
+ <!-- If we're using Linux, we use evdev by default (falling back to
+ kbd otherwise). -->
+ <merge key="input.x11_driver" type="string">kbd</merge>
+ <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="Linux">
+ <merge key="input.x11_driver" type="string">evdev</merge>
+ <merge key="input.x11_options.XkbModel" type="string">evdev</merge>
+ </match>
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="SunOS">
+ <match key="input.device" contains="usb">
+ <merge key="input.x11_options.StreamsModule" type="string">usbkbm</merge>
+ <merge key="input.x11_options.Protocol" type="string">VUID</merge>
+ </match>
+ </match>
+
+ <merge key="input.x11_options.XkbLayout" type="string">us</merge>
+
+ <merge key="input.x11_options.XkbVariant" type="string" />
+ </match>
+ </device>
+</deviceinfo>