THIS DIFF IS OUTDATED: use "kbd fr.dvorak" instead in OpenBSD 4.4 This patch allows you to use the bépo keyboard layout (a French Dvorak keyboard layout: http://www.clavier-dvorak.org/) in console mode. To use it - you will need to rebuild the kernel, install the patched wsksymdef.h file: cp /usr/src/sys/dev/wscons/wsksymdef.h /usr/include/dev/wscons and rebuild the kbd(8) and wsconsctl(8) tools: cd /usr/src/sbin/kbd && make obj depend all install cleandir cd /usr/src/sbin/wsconsctl && make depend obj all install cleandir then you can put "bepo" in your /etc/kbdtype or simply use kbd(8) to switch to the bépo layout: echo bepo>/etc/kbdtype kbd bepo You can eventually rebuild the keyboard driver of xenocara if you want to automatically use the bépo keyboard layout in your X11 session (without xorg.conf): cd /usr/xenocara/driver/xf86-input-keyboard \ && make -f Makefile.bsd-wrapper obj build cleandir then you should place the xkb definitions of the bépo layout in the file /etc/X11/xkb/symbols/pc/bepo. An alternative installation method (which doesn't require a kernel rebuild) is to use wsconsctl(8), see: http://www.clavier-dvorak.org/wiki/Installation_sur_OpenBSD --- /usr/src/sys/dev/pckbc/wskbdmap_mfii.c Thu Dec 20 11:57:51 2007 +++ sys/dev/pckbc/wskbdmap_mfii.c Thu Dec 20 12:00:27 2007 @@ -299,6 +299,59 @@ KC(184), KS_Mode_switch, KS_Multi_key, }; +static const keysym_t pckbd_keydesc_bepo[] = { +/* pos normal shifted altgr shift-altgr */ + KC(2), KS_quotedbl, KS_1, KS_quotedbl, KS_onesuperior, + KC(3), KS_guillemotleft, KS_2, KS_less, KS_twosuperior, + KC(4), KS_guillemotright, KS_3, KS_greater, KS_threesuperior, + KC(5), KS_parenleft, KS_4, KS_bracketleft, + KC(6), KS_parenright, KS_5, KS_bracketright, + KC(7), KS_underscore, KS_6, + KC(8), KS_plus, KS_7, KS_plusminus, KS_degree, + KC(9), KS_minus, KS_8, KS_minus, KS_acute, + KC(10), KS_slash, KS_9, KS_division, + KC(11), KS_asterisk, KS_0, KS_multiply, + KC(12), KS_equal, KS_asciicircum, KS_notsign, + KC(13), KS_percent, KS_mu, + KC(16), KS_b, KS_B, KS_bar, KS_brokenbar, + KC(17), KS_eacute, KS_Eacute, KS_ampersand, KS_dead_acute, + KC(18), KS_p, KS_P, KS_section, KS_paragraph, + KC(19), KS_o, KS_O, KS_onehalf, KS_onequarter, + KC(20), KS_egrave, KS_Egrave, KS_grave, KS_dead_grave, + KC(21), KS_ccedilla, KS_Ccedilla, KS_cedilla, + KC(22), KS_v, KS_V, KS_L2_caron, + KC(23), KS_d, KS_D, KS_eth, KS_ETH, + KC(24), KS_l, KS_L, KS_sterling, + KC(25), KS_f, KS_F, KS_ordfeminine, + KC(26), KS_z, + KC(27), KS_w, KS_W, KS_L2_breve, KS_macron, + KC(30), KS_a, KS_A, KS_ae, + KC(31), KS_u, KS_U, KS_ugrave, + KC(32), KS_i, KS_I, KS_dead_diaeresis, + KC(33), KS_e, KS_E, KS_currency, + KC(34), KS_comma, KS_question, KS_questiondown, + KC(35), KS_c, KS_C, KS_copyright, KS_cent, + KC(36), KS_t, KS_T, KS_thorn, KS_THORN, + KC(37), KS_s, KS_S, KS_ssharp, + KC(38), KS_n, KS_N, KS_ntilde, + KC(39), KS_r, KS_R, KS_registered, + KC(40), KS_m, KS_M, KS_masculine, + KC(41), KS_at, KS_numbersign, + KC(43), KS_dead_circumflex, KS_exclam, KS_exclamdown, + KC(44), KS_agrave, KS_Agrave, KS_asciitilde, KS_dead_tilde, + KC(45), KS_y, KS_Y, KS_backslash, KS_yen, + KC(46), KS_h, KS_H, KS_braceleft, + KC(47), KS_period, KS_colon, KS_braceright, KS_periodcentered, + KC(48), KS_k, KS_K, KS_dollar, + KC(49), KS_apostrophe, KS_semicolon, + KC(50), KS_q, KS_Q, KS_oslash, + KC(51), KS_g, KS_G, KS_dead_abovering, + KC(52), KS_x, + KC(53), KS_j, + KC(86), KS_ecircumflex, KS_Ecircumflex, KS_slash, + KC(184), KS_Mode_switch, KS_Multi_key, +}; + static const keysym_t pckbd_keydesc_it[] = { /* pos normal shifted altgr shift-altgr */ KC(3), KS_2, KS_quotedbl, KS_twosuperior, @@ -988,6 +1041,7 @@ KBD_MAP(KB_DE, KB_US, pckbd_keydesc_de), KBD_MAP(KB_DE | KB_NODEAD, KB_DE, pckbd_keydesc_de_nodead), KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), + KBD_MAP(KB_BEPO, KB_US, pckbd_keydesc_bepo), 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), --- /usr/src/sys/dev/wscons/wsksymdef.h Thu Dec 20 11:57:51 2007 +++ sys/dev/wscons/wsksymdef.h Thu Dec 20 11:37:40 2007 @@ -732,6 +732,7 @@ #define KB_SI 0x1900 #define KB_CF 0x1a00 #define KB_LV 0x1b00 +#define KB_BEPO 0x1c00 #define KB_NODEAD 0x000001 /* disable dead accents */ #define KB_DECLK 0x000002 /* DEC LKnnn layout */ @@ -770,7 +771,8 @@ { KB_PL, "pl" }, \ { KB_SI, "si" }, \ { KB_CF, "cf" }, \ - { KB_LV, "lv" } + { KB_LV, "lv" }, \ + { KB_BEPO, "bepo" } #define KB_VARTAB \ { KB_NODEAD, "nodead" }, \