View previous topic :: View next topic |
Author |
Message |
slackline Veteran
Joined: 01 Apr 2005 Posts: 1471 Location: /uk/sheffield
|
Posted: Mon Jun 09, 2008 9:43 am Post subject: dbus and keymaps |
|
|
I've a strange problem that occurred recently and I've been unable to resolve properly.
I've a Microsoft Ergonomic Keyboard 4000...
lsusb -v: |
Bus 003 Device 003: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x045e Microsoft Corp.
idProduct 0x00db Natural Ergonomic Keyboard 4000 V1.0
bcdDevice 1.73
iManufacturer 1 Microsoft
iProduct 2 Natural® Ergonomic Keyboard 4000
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 60
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 86
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
|
My keymaps are..
more /etc/conf.d/keymaps: |
# Use KEYMAP to specify the default console keymap. There is a complete tree
# of keymaps in /usr/share/keymaps to choose from.
keymap="uk"
# Should we first load the 'windowkeys' console keymap? Most x86 users will
# say "yes" here. Note that non-x86 users should leave it as "no".
windowkeys="YES"
# The maps to load for extended keyboards. Most users will leave this as is.
extended_keymaps=""
#extended_keymaps="backspace keypad euro2"
# Tell dumpkeys(1) to interpret character action codes to be
# from the specified character set.
# This only matters if you set unicode="yes" in /etc/rc.conf.
# For a list of valid sets, run `dumpkeys --help`
dumpkeys_charset=""
# Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro â¬
# To fix this, set to "yes"
fix_euro="NO"
|
and my xorg.conf looks like...
/etc/X11/xorg/conf: |
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbLayout" "gb"
EndSection
|
Under tty1 the keymaps are fine, but under X (both Xfce4 and fluxbox) they keymap is for a US keyboard.
A little playing around revealed that there are three dbus process's running after booting...
ps -A | grep dbus: |
# ps -A | grep dbus
2706 ? 00:00:00 dbus-daemon
8514 ? 00:00:00 dbus-launch
8515 ? 00:00:00 dbus-daemon
|
and I thought it was a little strange that there were two dbus-daemon instances so I restarted dbus, which as its a boot service throws me out of X and back to my login. After this there is only one dbus instance and the keymap is the correct uk/gb configuration.
This is with dbus-1.2.1
Any thoughts on what might be happening here and how to resolve it would be appreciated as its a pain in the arse having to restart dbus on every boot.
Cheers
slack _________________ "Science is what we understand well enough to explain to a computer. Art is everything else we do." - Donald Knuth |
|
Back to top |
|
|
mziab l33t
Joined: 01 Oct 2004 Posts: 644
|
Posted: Mon Jun 09, 2008 12:11 pm Post subject: |
|
|
Newer X versions ignore the keyboard settings from xorg.conf and get the proper info from hal. And it so happens that US is the default layout. You need to create your own policy and place it in /etc/hal/policy. You can see some examples here. _________________ Gentoo Linux 13.0 | 3.19 | glibc 2.19 | gcc 4.9.2
mteam | mziab's blog | roslin |
|
Back to top |
|
|
slackline Veteran
Joined: 01 Apr 2005 Posts: 1471 Location: /uk/sheffield
|
Posted: Mon Jun 09, 2008 9:04 pm Post subject: |
|
|
Cool, will check that out, cheers for the pointer.
[EDIT] - Longer thread with more solutions here.
slack _________________ "Science is what we understand well enough to explain to a computer. Art is everything else we do." - Donald Knuth |
|
Back to top |
|
|
|