Home | History | Annotate | Download | only in pckbport
History log of /src/sys/dev/pckbport/wskbdmap_mfii.c
RevisionDateAuthorComments
 1.36  24-May-2025  nia wskbd(4): Define USB and PS/2 keymaps for KB_PL

This is the de-facto standard "Polish programmers" QWERTY keyboard,
what X11 simply calls "Polish". It's a simple variation of US QWERTY
with some extra characters when right alt is pressed.

Defining this layout is slightly optimistic, since even with latin-2
fonts loaded and the appropriate locale set, wscons seems to struggle
to input most of these characters.

Regardless, this allows the supposedly supported "pl" encoding
to not fail loading with an error message, and allows X11 to
auto-detect the keyboard layout (defining KB_PL and as an alias of
KB_US also accomplishes this goal), with room for proper UTF-8
support in the future.

PR port-amd64/57234 "# wsconsctl -k -w encoding=pl" *should* work.
PR kern/57844 wscons doesn't support encoding=pl contrary to wskbd(4) man page
PR install/58405 Selecting Polish keyboard type in sysinst is useless
 1.35  22-Sep-2021  nia branches: 1.35.10;
wscons: add definitions for BÉPO, a standardized, Dvorak-style optimized
keyboard layout for French
 1.34  11-May-2021  nia wscons: add support for the Neo 2 German keyboard layout

Neo is an optimized layout for German and English, similar to
Dvorak for English. It can be used to type most Latin-based languages
and has separate layers for symbols and directional commands.
 1.33  13-Jul-2020  nia branches: 1.33.6; 1.33.8;
Canadian French keyboard layout for ukbd/pckbd
 1.32  13-Jul-2020  nia Add keyboard layout for Latin American Spanish to ukbd/pckbd
 1.31  12-Jul-2020  nia Add Icelandic keyboard layout to ukbd/pckbd.
 1.30  12-Jul-2020  nia Add Estonian layout as a variation of Swedish for ukbd and pckbd
 1.29  12-Jul-2020  nia Bring br.nodead closer to X11
 1.28  12-Jul-2020  nia Add support for the Brazilian keyboard layout to pckbd and ukbd.

This is significantly different from the European Portugese layout,
and was pieced together from Wikipedia, X11 layout files, and to
some extent with trial and error.

Thanks to lun-4 for helping test this.

PR kern/44570
 1.27  11-Jan-2020  nia Support the combination of KB_SWAPCTRLCAPS and UK layout.
 1.26  19-Feb-2018  maya branches: 1.26.4; 1.26.10; 1.26.12;
Add Turkish keyboard layout.

from berte in PR kern/53011.
 1.25  14-Jul-2014  mbalmer branches: 1.25.20;
Add a belgian keyboard layout, based on the french keyboard layout.
Fixes PR install/46871.
 1.24  11-Jun-2014  riastradh Nuke trailing whitespace.
 1.23  13-Oct-2012  jdc branches: 1.23.10;
Add the extra keys found on the Tadpole SPARCle to the keysym list.
 1.22  22-Jul-2011  christos branches: 1.22.2; 1.22.8; 1.22.12;
fixes from gilbert dot fernandes at orange dot fr
 1.21  22-Jul-2011  christos fixes from OpenBSD
 1.20  22-Jul-2011  christos PR/35473: Wigcher Spanninga: Add Dutch keyboard support to wscons
 1.19  28-Jul-2009  ahoka Add hungarian qwertz keyboard layout.
 1.18  13-Jun-2009  tonnerre Add support for Swiss german kezboard to wskbd.

Contributed by Marc Balmer.
 1.17  06-Apr-2009  mkirby Add a Czech (QWERTY) keyboard layout, and teach wscons about latin 2 characters.

Original code from Lubomir Kundrak, adapted to current and cleaned up by me.

Fixes PR kern/16216

ok agc@ jdc@
 1.16  03-Feb-2009  ghen branches: 1.16.2;
Enable Colemak altgr keys.
 1.15  21-May-2008  ghen branches: 1.15.6; 1.15.8;
Add support for the Colemak keyboard layout variant, see http://colemak.com
 1.14  28-Apr-2008  martin branches: 1.14.2;
Remove clause 3 and 4 from TNF licenses
 1.13  06-Jan-2008  christos branches: 1.13.6; 1.13.8; 1.13.10;
defflag one moe variable.
 1.12  09-Dec-2007  jmcneill branches: 1.12.2;
Merge jmcneill-pm branch.
 1.11  01-Apr-2006  christos branches: 1.11.12; 1.11.26; 1.11.32; 1.11.34; 1.11.40; 1.11.44; 1.11.46;
Greek console keymap from Eye of the Beholder
 1.10  11-Dec-2005  christos branches: 1.10.4; 1.10.6; 1.10.8; 1.10.10; 1.10.12;
merge ktrace-lwp.
 1.9  05-May-2005  abs branches: 1.9.2;
Fix for portuguese keymap '4' and '+' keys, from Rui Paulo
 1.8  24-Apr-2005  abs Fix for Portuguese keymap from Rui Paulo
 1.7  27-Feb-2005  perry branches: 1.7.2;
nuke trailing whitespace
 1.6  11-Jan-2005  uwe branches: 1.6.2; 1.6.4;
Add KB_ES | KB_MACHDEP placeholder for Jornada 680/690 Spanish (ABE).
 1.5  04-Oct-2004  hubertf Add & document WSKBD_USONLY: In order to strip down the space usage of wscons,
all keymaps except the US english one can be removed from the kernel
with this option, which results in a space gain of about 10kB.

XXX it would be nice if we could strip down more kernel facilities
 1.4  14-Aug-2004  mycroft Allow keypad PgUp/PgDn to scroll as well.
 1.3  08-Aug-2004  christos by popular demand, bind the scroll keys by default.
 1.2  17-Mar-2004  uwe branches: 1.2.2; 1.2.4;
Add KB_FR | KB_MACHDEP placeholder. Need it for the Jornada 680/690
French (ABF) keyboard layout (to be enabled soon).
 1.1  13-Mar-2004  bjh21 Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it. This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111. The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers. To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned. Thy just use rather more function pointers than before. Tested
on i386 and (with a new host driver) acorn32. Compiled on several other
affected architectures.
 1.2.4.10  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.4.9  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.2.4.8  17-Jan-2005  skrll Sync with HEAD.
 1.2.4.7  19-Oct-2004  skrll Sync with HEAD
 1.2.4.6  21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.4.5  18-Sep-2004  skrll Sync with HEAD.
 1.2.4.4  25-Aug-2004  skrll Sync with HEAD.
 1.2.4.3  12-Aug-2004  skrll Sync with HEAD.
 1.2.4.2  03-Aug-2004  skrll Sync with HEAD
 1.2.4.1  17-Mar-2004  skrll file wskbdmap_mfii.c was added on branch ktrace-lwp on 2004-08-03 10:50:14 +0000
 1.2.2.2  22-Aug-2004  tron branches: 1.2.2.2.2;
Pull up revision 1.4 (requested by recht in ticket #774):
Allow keypad PgUp/PgDn to scroll as well.
 1.2.2.1  22-Aug-2004  tron Pull up revision 1.3 (requested by recht in ticket #774):
by popular demand, bind the scroll keys by default.
 1.2.2.2.2.1  16-May-2005  riz Pull up revisions 1.8-1.9 (requested by abs in ticket #1506):
Fix for Portuguese keymap from Rui Paulo

Fix for portuguese keymap '4' and '+' keys, from Rui Paulo
 1.6.4.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.6.2.1  29-Apr-2005  kent sync with -current
 1.7.2.2  09-May-2005  tron Pull up revision 1.9 (requested by abs in ticket #268):
Fix for portuguese keymap '4' and '+' keys, from Rui Paulo
 1.7.2.1  09-May-2005  tron Pull up revision 1.8 (requested by abs in ticket #268):
Fix for Portuguese keymap from Rui Paulo
 1.9.2.2  21-Jan-2008  yamt sync with head
 1.9.2.1  21-Jun-2006  yamt sync with head.
 1.10.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.10.10.1  19-Apr-2006  elad sync with head.
 1.10.8.1  11-Apr-2006  yamt sync with head
 1.10.6.1  22-Apr-2006  simonb Sync with head.
 1.10.4.1  09-Sep-2006  rpaulo sync with head
 1.11.46.1  11-Dec-2007  yamt sync with head.
 1.11.44.1  26-Dec-2007  ad Sync with head.
 1.11.40.1  18-Feb-2008  mjf Sync with HEAD.
 1.11.34.1  09-Jan-2008  matt sync with HEAD
 1.11.32.1  03-Aug-2007  jmcneill Pull in power management changes from private branch.
 1.11.26.1  04-Sep-2008  skrll Sync with netbsd-4.
 1.11.12.1  08-Jun-2008  bouyer Pull up following revision(s) (requested by ghen in ticket #1155):
sys/dev/wscons/wsksymdef.h: revision 1.61
x11/bin/xkbcomp/symbols/pc/Makefile: revision 1.5
sys/dev/sun/wskbdmap_sun.c: revision 1.15
x11/bin/xkbcomp/symbols/Makefile: revision 1.6
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.15
share/man/man4/pckbd.4: revision 1.15
distrib/sets/lists/xbase/mi: revision 1.57
sys/dev/usb/ukbdmap.c: revision 1.20
distrib/sets/lists/xbase4/mi: revision 1.21
xsrc/xfree/xc/programs/xkbcomp/symbols/colemak: revision 1.1
xsrc/xfree/xc/programs/xkbcomp/symbols/pc/colemak: revision 1.1
Add support for the Colemak keyboard layout variant, see http://colemak.com
 1.12.2.1  08-Jan-2008  bouyer Sync with HEAD
 1.13.10.4  19-Aug-2009  yamt sync with head.
 1.13.10.3  20-Jun-2009  yamt sync with head
 1.13.10.2  04-May-2009  yamt sync with head.
 1.13.10.1  16-May-2008  yamt sync with head.
 1.13.8.2  04-Jun-2008  yamt sync with head
 1.13.8.1  18-May-2008  yamt sync with head.
 1.13.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.14.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.15.8.6  08-Aug-2014  msaitoh Pull up following revision(s) (requested by mbalmer in ticket #1915):
sys/dev/usb/ukbdmap.c: revision 1.29
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.25
Add a belgian keyboard layout, based on the french keyboard layout.
Fixes PR install/46871.
 1.15.8.5  15-Nov-2009  snj Pull up following revision(s) (requested by mbalmer in ticket #1144):
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.18
Add support for Swiss german kezboard to wskbd.
Contributed by Marc Balmer.
 1.15.8.4  01-Nov-2009  bouyer Apply patch, requested by ahoka in ticket #1111:
sys/dev/pckbport/wskbdmap_mfii.c patch
sys/dev/wscons/wsksymdef.h patch
sys/dev/wscons/wskbdutil.c patch
Add hungarian keyboard layout.
 1.15.8.3  28-Oct-2009  bouyer Back out ticket #1111, it breaks the build.
 1.15.8.2  27-Oct-2009  bouyer Apply patch, requested by ahoka in ticket #1111:
sys/dev/pckbport/wskbdmap_mfii.c: patch
Add hungarian keyboard layout
 1.15.8.1  16-Feb-2009  snj branches: 1.15.8.1.4;
Pull up following revision(s) (requested by ghen in ticket #427):
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.16
sys/dev/usb/ukbdmap.c: revision 1.22
Enable Colemak altgr keys.
 1.15.8.1.4.1  21-Apr-2010  matt sync to netbsd-5
 1.15.6.2  28-Apr-2009  skrll Sync with HEAD.
 1.15.6.1  03-Mar-2009  skrll Sync with HEAD.
 1.16.2.2  23-Jul-2009  jym Sync with HEAD.
 1.16.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.22.12.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.22.12.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.22.8.1  07-Aug-2014  msaitoh Pull up following revision(s) (requested by mbalmer in ticket #1099):
sys/dev/usb/ukbdmap.c: revision 1.29
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.25
Add a belgian keyboard layout, based on the french keyboard layout.
Fixes PR install/46871.
 1.22.2.1  30-Oct-2012  yamt sync with head
 1.23.10.1  10-Aug-2014  tls Rebase.
 1.25.20.1  11-Apr-2018  martin Pull up following revision(s) (requested by maya in ticket #735):

sys/dev/wscons/wsksymdef.h: revision 1.67
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.26

Add Turkish keyboard layout.

from berte in PR kern/53011.
 1.26.12.1  17-Jan-2020  ad Sync with head.
 1.26.10.2  13-Jul-2020  martin Pull up following revision(s) (requested by nia in ticket #1002):

sys/dev/wscons/wsksymdef.h: revision 1.68
sys/dev/wscons/wsksymdef.h: revision 1.69
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.28
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.29
sys/dev/hid/hidkbdmap.c: revision 1.10
share/man/man4/pckbd.4: revision 1.23
share/man/man4/wskbd.4: revision 1.18
share/man/man4/wskbd.4: revision 1.19
share/man/man4/pckbd.4: revision 1.25
sys/dev/wscons/wsksymdef.h: revision 1.70
sys/dev/wscons/wsksymdef.h: revision 1.71
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.30
sys/dev/wscons/wsksymdef.h: revision 1.72
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.31
sys/dev/wscons/wsksymdef.h: revision 1.73
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.32
sys/dev/pckbport/wskbdmap_mfii.c: revision 1.33
sys/dev/hid/hidkbdmap.c: revision 1.4
sbin/wsconsctl/wsconsctl.8: revision 1.30
sys/dev/hid/hidkbdmap.c: revision 1.5
etc/wscons.conf: revision 1.20
sys/dev/hid/hidkbdmap.c: revision 1.6
etc/wscons.conf: revision 1.21
sys/dev/hid/hidkbdmap.c: revision 1.7
sys/dev/hid/hidkbdmap.c: revision 1.8
sys/dev/hid/hidkbdmap.c: revision 1.9

Add support for the Brazilian keyboard layout to pckbd and ukbd.

This is significantly different from the European Portugese layout,
and was pieced together from Wikipedia, X11 layout files, and to
some extent with trial and error.

Thanks to lun-4 for helping test this.

PR kern/44570
Update lists of keyboard layouts to add Turkish and Brazilian

Bring br.nodead closer to X11

Add Estonian layout as a variation of Swedish for ukbd and pckbd

Add KB_TR for uhid keyboards (it was PS/2 only, this seems wrong)

Add Icelandic keyboard layout to ukbd/pckbd.

Add keyboard layout for Latin American Spanish to ukbd/pckbd

Canadian French keyboard layout for ukbd/pckbd

Clarify that KB_TR is the "Q" layout - there's two standards for Turkish.

Move description of keyboard layouts to wskbd.4, add newer layouts

Previously, the best reference was pckbd.4. This does not make much
sense to read if you are on, say, an evbarm device with only USB.
wsconsctl.8 contained a vaguer description of supported language names,
which isn't very useful because you can't pass full language names
to the command. Point readers to wskbd.4 instead.

Note in the wskbd.4 page that while all layouts are generally supported
by pckbd(4) and ukbd(4), older keyboard interfaces might only support
a subset.

wskbd.4: Add KB_LA

Point readers at wskbd.4
 1.26.10.1  21-Jan-2020  martin Pull up following revision(s) (requested by nia in ticket #635):

sys/dev/pckbport/wskbdmap_mfii.c: revision 1.27
share/man/man4/pckbd.4: revision 1.22
sys/dev/hid/hidkbdmap.c: revision 1.2

Support the combination of KB_SWAPCTRLCAPS and UK layout.
Note some more layouts that work with KB_SWAPCTRLCAPS.
 1.26.4.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.33.8.1  31-May-2021  cjep sync with head
 1.33.6.1  13-May-2021  thorpej Sync with HEAD.
 1.35.10.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed