You are not logged in.
Pages: 1
Hi all!
I have a small question about keyboard layouts in Xorg. Up until recently, I turned off hotplugging in Xorg and used the xorg.conf file to specify multiple keyboard layouts for a single physical keyboard, and a key sequence to switch between them. However, in a recent pacman -Syu update, I noticed that all keyboard layouts are defined by hal and that xorg now ignores the layouts specified in xorg.conf. I can specify one keyboard as outlined in the wiki, but how can I specify the others?
My /etc/xorg.conf file:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen" 0 0
InputDevice "SynapticsTouchpad" "SendCoreEvents"
InputDevice "Keyboard" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/100dpi:unscaled"
FontPath "/usr/share/fonts/75dpi:unscaled"
FontPath "/usr/share/fonts/TTF"
FontPath "/usr/share/fonts/Type1"
EndSection
Section "Module"
Load "dbe"
Load "dri2"
Load "glx"
Load "record"
Load "dri"
Load "extmod"
Load "synaptics"
EndSection
Section "InputDevice"
Identifier "Keyboard"
Driver "kbd"
Option "XkbLayout" "gb,gr,ru,kr_gb"
Option "XkbOptions" "compose:menu,grp:lwin_toggle"
EndSection
Section "InputDevice"
Identifier "SynapticsTouchpad"
Driver "synaptics"
Option "AlwaysCore" "True"
Option "Protocol" "auto-dev"
Option "Device" "/dev/psaux"
Option "SHMConfig" "False"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertEdgeScroll" "True"
Option "HorizEdgeScroll" "False"
Option "CornerCoasting" "True"
Option "CoastingSpeed" "0.30"
Option "VertScrollDelta" "100"
# Option "HorizScrollDelta" "100"
Option "MinSpeed" "0.20"
Option "MaxSpeed" "0.60"
Option "AccelFactor" "0.0030"
Option "VertTwoFingerScroll" "True"
Option "HorizTwoFingerScroll" "True"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection
Section "Monitor"
Identifier "Monitor"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Option "DPMS" "True"
EndSection
Section "Device"
Identifier "GraphicsCard"
Driver "nvidia"
VendorName "nVidia Corporation"
BoardName "GeForce 8200M G"
BusID "PCI:2:0:0"
Option "NoLogo" "True"
Option "BackingStore" "False"
Option "RenderAccel" "True"
EndSection
Section "Screen"
Identifier "Screen"
Device "GraphicsCard"
Monitor "Monitor"
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1366x768" "1280x720" "854x480" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerFlags"
Option "DontZap" "False"
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
My /etc/hal/fdi/policy/10-keymap.fdi file:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>
<match key="info.capabilities" contains="input.keys">
<merge key="input.xkb.rules" type="string">base</merge>
<!-- If we're using Linux, we use evdev by default (falling back to
keyboard otherwise). -->
<merge key="input.xkb.model" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.xkb.model" type="string">evdev</merge>
</match>
<merge key="input.xkb.layout" type="string">gb</merge>
<merge key="input.xkb.variant" type="string" />
</match>
</device>
</deviceinfo>
Last edited by Gwasanaethau (2009-11-21 02:00:44)
Offline
OK, I didn't realise you could just put the old codes from xorg.conf into the new 10-keymap.fdi file. Thus it became (update in last few lines):
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>
<match key="info.capabilities" contains="input.keys">
<merge key="input.xkb.rules" type="string">base</merge>
<!-- If we're using Linux, we use evdev by default (falling back to
keyboard otherwise). -->
<merge key="input.xkb.model" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.xkb.model" type="string">evdev</merge>
</match>
<merge key="input.xkb.layout" type="string">gb,gr,ru,kr_gb</merge>
<merge key="input.xkb.variant" type="string" />
<merge key="input.xkb.layout" type="string">compose:menu,grp:lwin_toggle</merge>
</match>
</device>
</deviceinfo>
Offline
Pages: 1