> rev3: Almost there! Minor nits below, then ok.
> Index: dev/hid/hidkbd.c > +static const struct hidkbd_translation apple_iso_trans[] = { > + { 53, 100 }, /* less -> grave */ > + { 100, 53 } > +}; > + > +static const struct hidkbd_translation apple_iso_mba_trans[] = { > + { 53, 100 }, /* less -> grave */ > + { 100, 53 } > +}; No need for two copies of that table. Keep the first one (shortest name) and update hidkbd_apple_mba_munge() accordingly. > Index: dev/hid/hidkbdsc.h > @@ -67,6 +67,7 @@ struct hidkbd { > struct hid_location sc_capsloc; > struct hid_location sc_scroloc; > struct hid_location sc_compose; > + struct hid_location sc_fn; Since the name is generic, consider adding a comment, for example /* optional extra input source used by sc_munge below */