Subject: wscons and more than two modifier keys
To: None <tech-kern@netbsd.org>
From: Quentin Garnier <cube@cubidou.net>
List: tech-kern
Date: 04/07/2005 15:32:40
--aMDdG8xNveJz2ruI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Currently, wscons is limited to two key modifiers, Shift and what is
usually called AltGr.

It is a problem on hpcarm, because the Jornada 72x series will use
more than those two modifiers: it has Shift, another key called Fn on
the US/intl layout, and a third one called Alt.

It would be possible to map everything with Fn and not use Alt as a
modifier, however that doesn't match what the keyboard colors show.

Adding a modifier to wscons is not very difficult and we would keep
compatibility with all the existing keymaps.  However, maybe we want
something more flexible for modifier keys.i

AFAIK, XFree86 has provision for at least 5 of them.  Currently we
have a full matrix of the modifier positions, with 5 modifiers we'd
need a 2x2x2x2x2 matrix which would be almost always empty.

To sum up the options:

 (a) Forget about the idea.  In PeeCee we trust, although the pc105
     layout includes the infamous Windows key, which is an additional
     modifier already, so we can't take advantage of it in wscons.
 (b) Add a modifier, reformat the code so it takes a 2x2x2 matrix.
 (c) Do things differently, possibly using flags so that we don't
     have to fill out 8 entries for every single key.

While (b) keeps compatibility with existing keymaps, both (b) and
(c) will break userland API, so we might as well choose a saner
solution.

Comments?

--=20
Quentin Garnier - cube@cubidou.net - cube@NetBSD.org
"When I find the controls, I'll go where I like, I'll know where I want
to be, but maybe for now I'll stay right here on a silent sea."
KT Tunstall, Silent Sea, Eye to the Telescope, 2004.

--aMDdG8xNveJz2ruI
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)

iQEVAwUBQlU2eNgoQloHrPnoAQI+Mwf/WdDPhvzuhUsMDqlo11yoXeOTCgh4qtCo
rPkZJTsNsiDQoGUVpTyKsOTa+WFSUBnNzSVVkELrcgO90Bl3b0IrF185mo+4SGY5
DcDJiWSc1Wv9MkXwQ0/51+eoMyGMpai6/qhkt0tsiPlLQXS86SSh1jayARDDWPj2
O0mHhhgW/c0sQXtaFlEL4lG1UaHF9vgf4I30LmHB0F6t9ihI1Zh8iMjkUimCQAUa
ht0LOr2Neolm9p2TmGxCBDPAfYrSARvFSPyxb1w2zc8T20SRHZDt3aKCMDpKfC6y
X8XATqZ4lrBEkpiiyDshEuNIqoIVoCDuWJUNWUlRX5Q0ZntofWq4aQ==
=O/LR
-----END PGP SIGNATURE-----

--aMDdG8xNveJz2ruI--