diff options
Diffstat (limited to 'xorg-server/config')
-rw-r--r-- | xorg-server/config/hal.c | 6 | ||||
-rw-r--r-- | xorg-server/config/udev.c | 7 | ||||
-rw-r--r-- | xorg-server/config/x11-input.fdi | 191 |
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>
|