Subject: Re: CONTROL-ALT-Fn
To: None <tech-kern@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 04/28/2007 11:44:14
>>> I'm just curious you know where the console switch focus
>>> CONTROL-ALT-Fn defined in the NetBSD source?
>> [...dunno, try tech-kern...]
> As Hubert pointed me to this list, my question is, someone know where
> exactly the CONTROL-ALT-Fn defined in the kernel?

In -current, I don't know - but I recently had occasion to puzzle this
out under 3.1, and I found that it was a question of putting the right
keysyms on the right keycodes.  Unless the wscons paradigm has been
reworked substantially in -current, it presumably will be the same
there.

Here, for example, are excerpts from the keyboard mapping I load on my
WorkPad.

keycode 1	= Cmd_Debugger Escape
keycode 59	= Cmd_Screen0 F1
keycode 60	= Cmd_Screen1 F2
keycode 61	= Cmd_Screen2 F3
keycode 62	= Cmd_Screen3 F4
keycode 63	= Cmd_Screen4 F5
keycode 64	= Cmd_Screen5 F6
keycode 65	= Cmd_Screen6 F7
keycode 66	= Cmd_Screen7 F8
keycode 67	= Cmd_Screen8 F9
keycode 68	= Cmd_Screen9 F10
keycode 221	= Cmd voidSymbol

I use the Windows key (keycode 221) as a dedicated command modifier
key, rather than using control+alt.  (If I wanted control+alt, I'd put
Cmd1 on one of them and Cmd2 on the other.)  Then the other Cmd_*
entries say what a key does when typed in conjunction with Cmd - so
Windows+Esc drops into ddb, Windows+F1 flips to screen 0, etc.

Where is this mapping initialized?  I don't know.  In my case I found a
rather bizarre default: "wsconsctl map" printed only about eight lines,
even though I had a full working keyboard - but if I saved that output
and fed it back through wsconsctl, I got the almost-nonexistent mapping
implied by those lines.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B