Re: [Patch] Support F13-F24 on PC-122 terminal keyboard

2013-03-21 Thread Miod Vallat
  Well, it conflicts with the codes listed in the `USB HID to PS/2 Scan
  Code Translation Table'
 
 Yes, but that document just lists the codes that Windows translates to
 internally when a USB keyboard is in use.  I have no reason to believe
 that any PS/2 device actually uses them in hardware, and good reason to
 believe that they don't, (and wouldn't).

Hmm. You're right. According to 
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-5.html
the IBM 122 key keyboard, which seems to be the most common 122-key
keyboard around, matches the scan codes from your diff.

  If your IBM keyboard uses different scancodes for
  the extra function keys, then it would be better to handle them with a
  specific submap, as already done in the declk or iopener submaps.
 
 I'm happy to use a submap for 122 key terminal keyboards, anyway.

I think this would be easier. But on the other hand this would restrict
the use of the extra keys to the us layout. So for the sake of
hypothetical localized 122 key keyboards, I think your diff is the way
to go, with a range test added to the PS/2-to-USB map converter to skip
those keys.

 Since most of these functions do not relate to OpenBSD, I set mine to
 switch between virtual consoles.  However, this required a hack to the
 kernel to disable the need to hold down control and alt to select VC,
 because that is hard-coded in wskbd.c.

That's a different story. We probably need a way to know that a given
key has been assigned only one function, and remove the need for the two
main command modifiers to be down in that case.

Miod



Re: [Patch] Support F13-F24 on PC-122 terminal keyboard

2013-03-19 Thread Creamy
Hi Miod,

Thanks for looking at my patches...

  The following patch adds the keycodes for F13-F24 on a standard PC-122
  terminal keyboard.
  
  Doesn't seem to conflict with anything else I've found.
 
 Well, it conflicts with the codes listed in the `USB HID to PS/2 Scan
 Code Translation Table'

Yes, but that document just lists the codes that Windows translates to
internally when a USB keyboard is in use.  I have no reason to believe
that any PS/2 device actually uses them in hardware, and good reason to
believe that they don't, (and wouldn't).

The unofficial 'standard' for terminal keyboard designed for Windows
based terminal emulators is to send control-F1 for F13, ^F2 for F14, etc.
They also send other strange combinations for the other extra keys on
a terminal keyboard.  The reason for this is because the terminal
emulator software is designed to be usable with a 'normal' keyboard as
well.

Even 122 key USB keyboards do this, rather than send the USB HID codes
listed in the document above.  For example, Unicomp PS/2 terminal
keyboards are switchable between this mode I just described, and the
mode where they send the codes I listed in my patch.  Unicomp USB
terminal keyboards always send the multi-key sequences, and never send
unique USB HID codes for the 'extra' keys.

As far as I know, other manufacturers do the same thing.

 I have no objection against adding the F13-F24 scan codes to the pckbd
 and ukbd drivers; but then I'd rather go with the scan codes listed in
 the above document.

Please don't add them at all, unless you are sure that there are real
keyboards which use those codes.  I have never seen one.

It will cause funny behavior with a real terminal keyboard if you add
those codes for F13-F24, as some of them overlap, and will cause the
wrong F key to be interpreted.

 If your IBM keyboard uses different scancodes for
 the extra function keys, then it would be better to handle them with a
 specific submap, as already done in the declk or iopener submaps.

I'm happy to use a submap for 122 key terminal keyboards, anyway.

However, whilst F13-F24 have a definite use, the function keys on the left
of the keyboard were traditionally used for OS-specific functions and
have no standard layout.

Since most of these functions do not relate to OpenBSD, I set mine to
switch between virtual consoles.  However, this required a hack to the
kernel to disable the need to hold down control and alt to select VC,
because that is hard-coded in wskbd.c.

If some keymaps have dedicated keys for VC-switch, whilst others do not,
we need some way to handle this if it's eventually going to be in the
main tree.

I am happy to produce the patch making a submap for 122 key terminal
keyboards, but how would you like it done exactly?

-- 
Creamy



[Patch] Support F13-F24 on PC-122 terminal keyboard

2013-03-14 Thread Creamy
The following patch adds the keycodes for F13-F24 on a standard PC-122
terminal keyboard.

Doesn't seem to conflict with anything else I've found.
-- 
Creamy
--- wskbdmap_mfii.c.origTue May 24 13:23:46 2011
+++ wskbdmap_mfii.c Thu Mar 14 13:10:56 2013
@@ -130,6 +130,18 @@
 KC(83),KS_KP_Delete,   KS_KP_Decimal,
 KC(87),  KS_Cmd_Screen10,  KS_f11,
 KC(88),  KS_Cmd_Screen11,  KS_f12,
+KC(91),KS_f13,
+KC(92),KS_f14,
+KC(93),KS_f15,
+KC(99),KS_f16,
+KC(100),   KS_f17,
+KC(101),   KS_f18,
+KC(102),   KS_f19,
+KC(103),   KS_f20,
+KC(104),   KS_f21,
+KC(105),   KS_f22,
+KC(106),   KS_f23,
+KC(107),   KS_f24,
 KC(127),   KS_Pause, /* Break */
 KC(156),   KS_KP_Enter,
 KC(157), KS_Cmd1,  KS_Control_R,