Subject: Re: Different Keyboard Mappings in X11
To: Curt Sampson <cjs@cynic.net>
From: Matthieu Herrb <matthieu.herrb@laas.fr>
List: current-users
Date: 02/23/2004 18:48:13
This is a cryptographically signed message in MIME format.

--------------ms000600060004030008070406
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Curt Sampson wrote:
> I've got two keyboards hooked up to my system, a PS/2 and a USB. I use
> them both under X11 (with a pair-programming partner), and I'd like to
> be able to use different mappings for each keyboard. (I like to have ESC
> and backquote/tilde reversed, for example, but my partner often doesn't.
> Worse, in another situation, a partner wants to use a Japanese layout
> keyboard when I want to use a US layout.)
> 
> X11 itself normally reads from the keyboard multiplexer, and thus hasn't
> even an idea which keyboard a key press came from. I briefly considered
> hooking up /dev/wskbd0 and /dev/wskbd1 as separate input devices in the
> XF86Config file, but I don't see any way to get xmodmap to map them
> differently, and xev does not seem to have a field to distinguish which
> keyboard an event is coming from, so it's not looking like that option
> will work.
> 
> So I turned to wscons mappings, but it turns out that X11 uses the
> keyboard in "raw" mode, which returns keycodes directly, so the mappings
> seem to have no effect.
> 

 > So has anybody got any ideas for what I can do?

Turning wsmux off and using 2 different 'InputDevice' sections, you 
should be able to use different XKB configurations for the 2 keyboards.
But I haven't tried it. See <http://pascal.tsu.ru/en/xkb/> for details 
on configuring XKB.
-- 
Matthieu Herrb

--------------ms000600060004030008070406
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIM+zCC
A20wggJVoAMCAQICAQIwDQYJKoZIhvcNAQEEBQAwKzELMAkGA1UEBhMCRlIxDTALBgNVBAoT
BENOUlMxDTALBgNVBAMTBENOUlMwHhcNMDEwNDI3MDU0NjQ5WhcNMTEwNDI1MDU0NjQ5WjA0
MQswCQYDVQQGEwJGUjENMAsGA1UEChMEQ05SUzEWMBQGA1UEAxMNQ05SUy1TdGFuZGFyZDCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANzhHiE9BovqvV60iNsPk5e0bQc9hmIA
Lcr/tUqO51akj2Es8aAqq/Yq3Xwsv+91VQusCU7nTmHA5wzwkBVFEgLCjOvDEmTiYxAYLssH
MdmB5dwpgpsxVuKBHopvp+ipWBFEVoNds054cC3ftv1ygUXV8e5Nzu++1T0MkCBFmgmArw9M
2iAOgL86s+sngMC5D8ChTkDcOv1qKr9A1SxxgPn4umvk6ioAqy++mvCndm2YKZwPL/BC8hiX
W8n2zBlfusK+EtJcsJCUwLfLBgTvjzDtMi16SveTu6AJpLTuM8vQg5u1tbOQ3o6QHlmcINVL
Hu3XTE+G+hw6KqHprAWgnb8CAwEAAaOBkjCBjzAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRn
WaXlB3RJA+8Fz8wupBjVEMiePDBTBgNVHSMETDBKgBRW62i50lx+mLWlU8ORb2NYxPlrt6Ev
pC0wKzELMAkGA1UEBhMCRlIxDTALBgNVBAoTBENOUlMxDTALBgNVBAMTBENOUlOCAQAwCwYD
VR0PBAQDAgEGMA0GCSqGSIb3DQEBBAUAA4IBAQAGA0eDckWQwk7hIderF6kBVQbKQG1Voh1e
6+IUI1nkCeKQ9jyNNgYPS6cmI2XC6gaacru4jMuKX+95NiV+ANfzBpT7g0QpJjfH7umHzmyG
gBtxPdJir/bNYmxTD+Z6kwCMey4z4EEdqr5lmHbxlQd0s+Y/U3XVSwY2SynE9tyOE4BAEHOC
rRV7BHFQtTcz8shku6EQfjbGra9vcFKm0a7MzLqw6FkSj2INrQPdSyroiTmIUS/tYei3MIfb
J1VtZoejUQmAYXFRBb4THdlBMPx1XwqWmxj/vpCBtBPAchEI/Wqaage99IMstGA2ZAf6PWqn
sJAEdoPdM8s04heYBAuhMIIEwTCCA6mgAwIBAgICCz0wDQYJKoZIhvcNAQEEBQAwNDELMAkG
A1UEBhMCRlIxDTALBgNVBAoTBENOUlMxFjAUBgNVBAMTDUNOUlMtU3RhbmRhcmQwHhcNMDQw
MTA1MDgwNjE0WhcNMDUwMTA1MDgwNjE0WjBuMQswCQYDVQQGEwJGUjENMAsGA1UEChMEQ05S
UzEQMA4GA1UECxMHVVBSODAwMTEXMBUGA1UEAxMOTWF0dGhpZXUgSGVycmIxJTAjBgkqhkiG
9w0BCQEWFm1hdHRoaWV1LmhlcnJiQGxhYXMuZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDVDTNA2fVcePmYID/Oz4zV/mIoA/DrD1FYUDeObuKjy9d1SH8zSmdT27nJCWdG
vnAk9+CmtI+C/Bn75JIbErom4k2g/UhGs5904fV9rSRF3YyNvr2b39XLfjeNe4F50GWluDrO
39ijqyV7aPTn58q04jUTJMljvGxywAoaHk+Otph6UP9uQpWrTzu/h7VO/bwzQi0eN9H0SnXH
7vk1E8UQUOrNmYC50vdsoN0dC8B9Pl0dzsGzA2K56/+jQXZr20ppbMwi1vH353KzmXqPExbK
xrpSr1dzaBmzwmCMShXJwzQ0fxshri/yZmCqIgLyxqk14paJ8UPE7iA9uerZFVBVAgMBAAGj
ggGhMIIBnTAMBgNVHRMBAf8EAjAAMBEGCWCGSAGG+EIBAQQEAwIEsDAOBgNVHQ8BAf8EBAMC
BeAweAYJYIZIAYb4QgENBGsWaUNlcnRpZmljYXQgQ05SUy1TdGFuZGFyZC4gUG91ciB0b3V0
ZSBpbmZvcm1hdGlvbiBzZSByZXBvcnRlciDgIGh0dHA6Ly9pZ2Muc2VydmljZXMuY25ycy5m
ci9DTlJTLVN0YW5kYXJkLzAdBgNVHQ4EFgQU7XMBORLZqL7H99j9k4BCKgbykAgwUwYDVR0j
BEwwSoAUZ1ml5Qd0SQPvBc/MLqQY1RDInjyhL6QtMCsxCzAJBgNVBAYTAkZSMQ0wCwYDVQQK
EwRDTlJTMQ0wCwYDVQQDEwRDTlJTggECMCEGA1UdEQQaMBiBFm1hdHRoaWV1LmhlcnJiQGxh
YXMuZnIwWQYDVR0fBFIwUDBOoEygSoZIaHR0cDovL2lnYy5zZXJ2aWNlcy5jbnJzLmZyL2Nn
aS1iaW4vbG9hZC5jcmw/Q0E9Q05SUy1TdGFuZGFyZCZmb3JtYXQ9REVSMA0GCSqGSIb3DQEB
BAUAA4IBAQA2kN3DoQdSNN3DIj2FHw977kv3pM0VkUfjbxwBp75weSrtScSlFB4ZTGclYMXN
Mudt3Q2T4IJdVWSe1BOawMna6FMPVWws3qt3PIZfpzmnY/2JZylbTTUoZCmaed/dPcr1kqjY
sWTS00aVmUVnElZDyOsUotZJq9hcBzQ4phTJDuLYyaNW1j5a+HrvT9J6KxtPNLmbqEBSRPQP
WZaNVc5xdKJWuUpmtGS5o4oF3PIIykLxLtGsNnwp4wEp5/y7Vsw2mrscLjaHsZbEp5C0qTTk
rHR7CrLRpSHPCitcbGjZKJjct2Oyfu0TIjjSO9lX5Kh7mZJujclhu+8bwPywXf9CMIIEwTCC
A6mgAwIBAgICCz0wDQYJKoZIhvcNAQEEBQAwNDELMAkGA1UEBhMCRlIxDTALBgNVBAoTBENO
UlMxFjAUBgNVBAMTDUNOUlMtU3RhbmRhcmQwHhcNMDQwMTA1MDgwNjE0WhcNMDUwMTA1MDgw
NjE0WjBuMQswCQYDVQQGEwJGUjENMAsGA1UEChMEQ05SUzEQMA4GA1UECxMHVVBSODAwMTEX
MBUGA1UEAxMOTWF0dGhpZXUgSGVycmIxJTAjBgkqhkiG9w0BCQEWFm1hdHRoaWV1LmhlcnJi
QGxhYXMuZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVDTNA2fVcePmYID/O
z4zV/mIoA/DrD1FYUDeObuKjy9d1SH8zSmdT27nJCWdGvnAk9+CmtI+C/Bn75JIbErom4k2g
/UhGs5904fV9rSRF3YyNvr2b39XLfjeNe4F50GWluDrO39ijqyV7aPTn58q04jUTJMljvGxy
wAoaHk+Otph6UP9uQpWrTzu/h7VO/bwzQi0eN9H0SnXH7vk1E8UQUOrNmYC50vdsoN0dC8B9
Pl0dzsGzA2K56/+jQXZr20ppbMwi1vH353KzmXqPExbKxrpSr1dzaBmzwmCMShXJwzQ0fxsh
ri/yZmCqIgLyxqk14paJ8UPE7iA9uerZFVBVAgMBAAGjggGhMIIBnTAMBgNVHRMBAf8EAjAA
MBEGCWCGSAGG+EIBAQQEAwIEsDAOBgNVHQ8BAf8EBAMCBeAweAYJYIZIAYb4QgENBGsWaUNl
cnRpZmljYXQgQ05SUy1TdGFuZGFyZC4gUG91ciB0b3V0ZSBpbmZvcm1hdGlvbiBzZSByZXBv
cnRlciDgIGh0dHA6Ly9pZ2Muc2VydmljZXMuY25ycy5mci9DTlJTLVN0YW5kYXJkLzAdBgNV
HQ4EFgQU7XMBORLZqL7H99j9k4BCKgbykAgwUwYDVR0jBEwwSoAUZ1ml5Qd0SQPvBc/MLqQY
1RDInjyhL6QtMCsxCzAJBgNVBAYTAkZSMQ0wCwYDVQQKEwRDTlJTMQ0wCwYDVQQDEwRDTlJT
ggECMCEGA1UdEQQaMBiBFm1hdHRoaWV1LmhlcnJiQGxhYXMuZnIwWQYDVR0fBFIwUDBOoEyg
SoZIaHR0cDovL2lnYy5zZXJ2aWNlcy5jbnJzLmZyL2NnaS1iaW4vbG9hZC5jcmw/Q0E9Q05S
Uy1TdGFuZGFyZCZmb3JtYXQ9REVSMA0GCSqGSIb3DQEBBAUAA4IBAQA2kN3DoQdSNN3DIj2F
Hw977kv3pM0VkUfjbxwBp75weSrtScSlFB4ZTGclYMXNMudt3Q2T4IJdVWSe1BOawMna6FMP
VWws3qt3PIZfpzmnY/2JZylbTTUoZCmaed/dPcr1kqjYsWTS00aVmUVnElZDyOsUotZJq9hc
BzQ4phTJDuLYyaNW1j5a+HrvT9J6KxtPNLmbqEBSRPQPWZaNVc5xdKJWuUpmtGS5o4oF3PII
ykLxLtGsNnwp4wEp5/y7Vsw2mrscLjaHsZbEp5C0qTTkrHR7CrLRpSHPCitcbGjZKJjct2Oy
fu0TIjjSO9lX5Kh7mZJujclhu+8bwPywXf9CMYICrjCCAqoCAQEwOjA0MQswCQYDVQQGEwJG
UjENMAsGA1UEChMEQ05SUzEWMBQGA1UEAxMNQ05SUy1TdGFuZGFyZAICCz0wCQYFKw4DAhoF
AKCCAUkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDQwMjIz
MTc0ODEzWjAjBgkqhkiG9w0BCQQxFgQU+cfa3ZAPqrRwNzqWL0wP+DuKjXQwSQYJKwYBBAGC
NxAEMTwwOjA0MQswCQYDVQQGEwJGUjENMAsGA1UEChMEQ05SUzEWMBQGA1UEAxMNQ05SUy1T
dGFuZGFyZAICCz0wSwYLKoZIhvcNAQkQAgsxPKA6MDQxCzAJBgNVBAYTAkZSMQ0wCwYDVQQK
EwRDTlJTMRYwFAYDVQQDEw1DTlJTLVN0YW5kYXJkAgILPTBSBgkqhkiG9w0BCQ8xRTBDMAoG
CCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggq
hkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQABkf7OW/kCr32N3peOaW5B3zCEiF+989Jd
Tf5YZUYG8l8FRX0BAyAnufmqEtkohuYY4wcBwwTIOQnydCLrioa4DiixKzBJCLmK3A/UW1yE
gUpv1kuALq/7B0zmPLjrrYR3h2phLp6osOhjx9jaqyixYOB3ZpfHy87R/Wh2Tvk9M1KVo4CO
PwSRjrjYzt4MLSIJq/wIq0g/+QzizcDUemOxeU5TlOz76a5LI9FrqsKNiViYIle5vuR+Kx8B
DocvtIq8kM/49+3Arg4SJsB410ey+S63KG+lSc5QdvJZzXVCqp89gnZXD90pl86bqhQ3lUqW
7J5uDsCAJ3hBsgohKy6oAAAAAAAA
--------------ms000600060004030008070406--