Module Name: src Committed By: nia Date: Sun Jul 12 01:35:59 UTC 2020
Modified Files: src/sys/dev/hid: hidkbdmap.c src/sys/dev/pckbport: wskbdmap_mfii.c src/sys/dev/wscons: wsksymdef.h Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/dev/hid/hidkbdmap.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/pckbport/wskbdmap_mfii.c cvs rdiff -u -r1.67 -r1.68 src/sys/dev/wscons/wsksymdef.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/hid/hidkbdmap.c diff -u src/sys/dev/hid/hidkbdmap.c:1.3 src/sys/dev/hid/hidkbdmap.c:1.4 --- src/sys/dev/hid/hidkbdmap.c:1.3 Fri Apr 24 13:29:46 2020 +++ src/sys/dev/hid/hidkbdmap.c Sun Jul 12 01:35:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hidkbdmap.c,v 1.3 2020/04/24 13:29:46 rhialto Exp $ */ +/* $NetBSD: hidkbdmap.c,v 1.4 2020/07/12 01:35:59 nia Exp $ */ /* * Copyright (c) 1999,2001 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hidkbdmap.c,v 1.3 2020/04/24 13:29:46 rhialto Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hidkbdmap.c,v 1.4 2020/07/12 01:35:59 nia Exp $"); #include <sys/types.h> #include <dev/wscons/wsksymdef.h> @@ -619,6 +619,40 @@ static const keysym_t hidkbd_keydesc_hu[ KC(230), KS_Mode_switch, KS_Multi_key }; +static const keysym_t hidkbd_keydesc_br[] = { +/* pos normal shifted altgr shift-altgr */ + KC(6), KS_c, KS_C, KS_copyright, KS_copyright, + KC(8), KS_e, KS_E, KS_currency, KS_currency, + KC(16), KS_m, KS_M, KS_mu, KS_mu, + KC(20), KS_q, KS_Q, KS_slash, KS_slash, + KC(21), KS_r, KS_R, KS_registered, KS_registered, + KC(26), KS_w, KS_W, KS_question, KS_question, + KC(30), KS_1, KS_exclam, KS_onesuperior, KS_exclamdown, + KC(31), KS_2, KS_at, KS_twosuperior, KS_onehalf, + KC(32), KS_3, KS_numbersign, KS_threesuperior, KS_threequarters, + KC(33), KS_4, KS_dollar, KS_sterling, KS_onequarter, + KC(34), KS_5, KS_percent, KS_cent, KS_cent, + KC(35), KS_6, KS_dead_diaeresis, KS_notsign, KS_diaeresis, + KC(46), KS_equal, KS_plus, KS_section, KS_dead_ogonek, + KC(47), KS_dead_acute, KS_dead_grave, KS_acute, KS_grave, + KC(48), KS_bracketleft, KS_braceleft, KS_ordfeminine, KS_macron, + KC(49), KS_bracketright, KS_braceright, KS_masculine, KS_masculine, + KC(50), KS_bracketright, KS_braceright, KS_masculine, KS_masculine, + KC(51), KS_ccedilla, KS_Ccedilla, KS_dead_acute, KS_dead_hungarumlaut, + KC(52), KS_dead_tilde, KS_dead_circumflex, KS_asciitilde, KS_asciicircum, + KC(53), KS_apostrophe, KS_quotedbl, KS_notsign, KS_notsign, + KC(56), KS_semicolon, KS_colon, KS_dead_dotaccent, KS_abovedot, + KC(100), KS_backslash, KS_bar, KS_masculine, KS_dead_breve, + KC(135), KS_slash, KS_question, KS_degree, KS_questiondown, + KC(230), KS_Mode_switch, KS_Multi_key, +}; + +static const keysym_t hidkbd_keydesc_br_nodead[] = { +/* pos normal shifted altgr shift-altgr */ + KC(47), KS_apostrophe, KS_grave, KS_dead_acute, KS_dead_grave, + KC(52), KS_asciitilde, KS_asciicircum, KS_dead_tilde, KS_dead_circumflex, +}; + #define KBD_MAP(name, base, map) \ { name, base, sizeof(map)/sizeof(keysym_t), map } @@ -636,6 +670,8 @@ const struct wscons_keydesc hidkbd_keyde KBD_MAP(KB_FR, KB_US, hidkbd_keydesc_fr), KBD_MAP(KB_FR | KB_SWAPCTRLCAPS,KB_FR, hidkbd_keydesc_swapctrlcaps), KBD_MAP(KB_BE, KB_FR, hidkbd_keydesc_be), + KBD_MAP(KB_BR, KB_US, hidkbd_keydesc_br), + KBD_MAP(KB_BR | KB_NODEAD, KB_BR, hidkbd_keydesc_br_nodead), KBD_MAP(KB_DK, KB_US, hidkbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, hidkbd_keydesc_dk_nodead), KBD_MAP(KB_IT, KB_US, hidkbd_keydesc_it), Index: src/sys/dev/pckbport/wskbdmap_mfii.c diff -u src/sys/dev/pckbport/wskbdmap_mfii.c:1.27 src/sys/dev/pckbport/wskbdmap_mfii.c:1.28 --- src/sys/dev/pckbport/wskbdmap_mfii.c:1.27 Sat Jan 11 21:43:11 2020 +++ src/sys/dev/pckbport/wskbdmap_mfii.c Sun Jul 12 01:35:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: wskbdmap_mfii.c,v 1.27 2020/01/11 21:43:11 nia Exp $ */ +/* $NetBSD: wskbdmap_mfii.c,v 1.28 2020/07/12 01:35:59 nia Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.27 2020/01/11 21:43:11 nia Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.28 2020/07/12 01:35:59 nia Exp $"); #include "opt_wskbdmap.h" #include <sys/types.h> @@ -827,6 +827,39 @@ static const keysym_t pckbd_keydesc_iope KC(87), KS_Cmd_Screen9, KS_f10, KC(88), KS_f11, }; + +static const keysym_t pckbd_keydesc_br[] = { +/* pos normal shifted altgr shift-altgr */ + KC(2), KS_1, KS_exclam, KS_onesuperior, KS_exclamdown, + KC(3), KS_2, KS_at, KS_twosuperior, KS_onehalf, + KC(4), KS_3, KS_numbersign, KS_threesuperior, KS_threequarters, + KC(5), KS_4, KS_dollar, KS_sterling, KS_onequarter, + KC(6), KS_5, KS_percent, KS_cent, KS_cent, + KC(7), KS_6, KS_dead_diaeresis, KS_notsign, KS_diaeresis, + KC(13), KS_equal, KS_plus, KS_section, KS_dead_ogonek, + KC(16), KS_q, KS_Q, KS_slash, KS_slash, + KC(17), KS_w, KS_W, KS_question, KS_question, + KC(18), KS_e, KS_E, KS_currency, KS_currency, + KC(19), KS_r, KS_R, KS_registered, KS_registered, + KC(26), KS_dead_acute, KS_dead_grave, KS_acute, KS_grave, + KC(27), KS_bracketleft, KS_braceleft, KS_ordfeminine, KS_macron, + KC(39), KS_ccedilla, KS_Ccedilla, KS_dead_acute, KS_dead_hungarumlaut, + KC(40), KS_dead_tilde, KS_dead_circumflex, KS_asciitilde, KS_asciicircum, + KC(41), KS_apostrophe, KS_quotedbl, KS_notsign, KS_notsign, + KC(43), KS_bracketright, KS_braceright, KS_masculine, KS_masculine, + KC(46), KS_c, KS_C, KS_copyright, KS_copyright, + KC(50), KS_m, KS_M, KS_mu, KS_mu, + KC(53), KS_semicolon, KS_colon, KS_dead_dotaccent, KS_abovedot, + KC(86), KS_backslash, KS_bar, KS_masculine, KS_dead_breve, + KC(115), KS_slash, KS_question, KS_degree, KS_questiondown, + KC(184), KS_Mode_switch, KS_Multi_key, +}; + +static const keysym_t pckbd_keydesc_br_nodead[] = { +/* pos normal shifted altgr shift-altgr */ + KC(26), KS_apostrophe, KS_grave, KS_dead_acute, KS_dead_grave, + KC(40), KS_asciitilde, KS_asciicircum, KS_dead_tilde, KS_dead_circumflex, +}; #endif /* WSKBD_USONLY */ #define KBD_MAP(name, base, map) \ @@ -846,6 +879,8 @@ const struct wscons_keydesc pckbd_keydes KBD_MAP(KB_SF | KB_NODEAD, KB_SF, pckbd_keydesc_sg_nodead), KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), KBD_MAP(KB_BE, KB_FR, pckbd_keydesc_be), + KBD_MAP(KB_BR, KB_US, pckbd_keydesc_br), + KBD_MAP(KB_BR | KB_NODEAD, KB_BR, pckbd_keydesc_br_nodead), KBD_MAP(KB_DK, KB_US, pckbd_keydesc_dk), KBD_MAP(KB_DK | KB_NODEAD, KB_DK, pckbd_keydesc_dk_nodead), KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), Index: src/sys/dev/wscons/wsksymdef.h diff -u src/sys/dev/wscons/wsksymdef.h:1.67 src/sys/dev/wscons/wsksymdef.h:1.68 --- src/sys/dev/wscons/wsksymdef.h:1.67 Mon Feb 19 14:34:17 2018 +++ src/sys/dev/wscons/wsksymdef.h Sun Jul 12 01:35:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: wsksymdef.h,v 1.67 2018/02/19 14:34:17 maya Exp $ */ +/* $NetBSD: wsksymdef.h,v 1.68 2020/07/12 01:35:59 nia Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -655,6 +655,7 @@ action(KB_USER, 0, 0x0100, "user", , "Us action(KB_US, 0, 0x0200, "us", , "US-English") \ action(KB_UK, 0, 0x0700, "uk", , "UK-English") \ action(KB_BE, 0, 0x1300, "be", , "Belgian") \ +action(KB_BR, 0, 0x1800, "br", , "Brazilian") \ action(KB_CZ, 0, 0x1500, "cz", , "Czech") \ action(KB_DK, 0, 0x0400, "dk", , "Danish") \ action(KB_NL, 0, 0x1600, "nl", , "Dutch") \