Re: font and keyboard

pete hilton <[email protected]>
Newsgroups gmane.os.netbsd.ports.hpcmips
Message-ID <[email protected]>
On Wednesday 13 December 2006 06:23 am, Thomas Isenbarger wrote:
> I would like to change the console font smaller (or possibly change
> it to something else).  Is this possible and easily done?  Do I do it
> through wsconctl?
>
> Also, is there a way to map the Alt, Windows, and Fn keys to meta
> keys for things like emacs?
>
> Thanks,
> Tom Isenbarger
Hi there,
              I made several changes to get the pageup/pagedown keys etc 
(those which need to be pressed with the "alt" key) to work.  I also changed 
"numlock" to be "insert". This is for the IBM Z50.

In r3.0 I hit the following:-

/usr/src/sys/dev/hpc/hpckbdkeymap.h
/usr/src/sys/dev/hpc/hpckbd.c
/usr/src/sys/dev/pckbport/wskbdmap_mfii.c
/usr/src/sys/dev/wscons/wsemul_vt100_keys.c

I have attached a diff file to show what I did but YMMV

cheers
pete
:

-- 
pete hilton
[email protected]
  
IsaBella --- ICE Explorer #1070
netbsd.r3.keyboard.diffs (text/x-diff, 3.7 KB)
Diffing ./usr/src/sys/dev/hpc/hpckbdkeymap.h
38a39
> #define KEY_ALT         56      /* Alt key */ 
230c231
< /*30*/	IGN,	 14,	 69,	 14,	IGN,	 43,	 28,	 57,
---
> /*30*/	IGN,	 14,	210,	 83,	IGN,	 43,	 28,	 57,


Diffing ./usr/src/sys/dev/hpc/hpckbd.c
82a83
> 	int			hc_alt_state;
201a203
> 	hc->hc_alt_state = WSCONS_EVENT_KEY_UP;
337,343c339,350
< 	if (flag) {
< 		type = WSCONS_EVENT_KEY_DOWN;
< 	} else {
< 		type = WSCONS_EVENT_KEY_UP;
< 	}
< 
< 	if ((key = hc->hc_keymap[scancode]) == UNK) {
---
> 	if (flag)
>       {
> 	    type = WSCONS_EVENT_KEY_DOWN;
> 	}
>       else
>       {
> 	    type = WSCONS_EVENT_KEY_UP;
> 	};
> 
> 	key = hc->hc_keymap[scancode];
>         
> 	if ( key == UNK) {
377a385,418
> 
>         if ( key == KEY_ALT )
>         {
>             hc->hc_alt_state = type;
>         };
> 
>         /*
>          * For Z50 Workpad .. make dependent on platid
>          * change the alt-shifted arrow keys
>          * so we can process them asif they were seperate keys
>          */
>         if ( hc->hc_alt_state ==  WSCONS_EVENT_KEY_DOWN )
>         {
>             switch (key)
>             {
>                 case 200: /* up to page up     */
>                     key = 201;
>                 break;
> 
>                 case 208: /* down to page down */
>                     key = 209;
>                 break;
> 
>                 case 203: /* left to home      */
>                     key = 199;
>                 break;
> 
>                 case 205: /* right to end      */
>                     key = 207;
>                 break;
> 
>             };
>         };
>         
379c420
< 		if (hpckbd_putevent(hc, type, hc->hc_keymap[scancode]) == 0)
---
> 		if (hpckbd_putevent(hc, type, key) == 0)
386c427
< 			n = pckbd_encode(type, hc->hc_keymap[scancode], data);
---
> 			n = pckbd_encode(type, key, data);
390c431
< 			wskbd_input(hc->hc_wskbddev, type, hc->hc_keymap[scancode]);
---
> 			wskbd_input(hc->hc_wskbddev, type, key);


Diffing ./usr/src/sys/dev/pckbport/wskbdmap_mfii.c
109,118c109,118
<     KC(59),  KS_Cmd_Screen0,	KS_f1,
<     KC(60),  KS_Cmd_Screen1,	KS_f2,
<     KC(61),  KS_Cmd_Screen2,	KS_f3,
<     KC(62),  KS_Cmd_Screen3,	KS_f4,
<     KC(63),  KS_Cmd_Screen4,	KS_f5,
<     KC(64),  KS_Cmd_Screen5,	KS_f6,
<     KC(65),  KS_Cmd_Screen6,	KS_f7,
<     KC(66),  KS_Cmd_Screen7,	KS_f8,
<     KC(67),  KS_Cmd_Screen8,	KS_f9,
<     KC(68),  KS_Cmd_Screen9,	KS_f10,
---
>     KC(59),  KS_Cmd_Screen0,	KS_f1,         KS_F1, 
>     KC(60),  KS_Cmd_Screen1,	KS_f2,         KS_F2,
>     KC(61),  KS_Cmd_Screen2,	KS_f3,         KS_F3,
>     KC(62),  KS_Cmd_Screen3,	KS_f4,         KS_F4,
>     KC(63),  KS_Cmd_Screen4,	KS_f5,         KS_F5,
>     KC(64),  KS_Cmd_Screen5,	KS_f6,         KS_F6,
>     KC(65),  KS_Cmd_Screen6,	KS_f7,         KS_F7,
>     KC(66),  KS_Cmd_Screen7,	KS_f8,         KS_F8,
>     KC(67),  KS_Cmd_Screen8,	KS_f9,         KS_F9,
>     KC(68),  KS_Cmd_Screen9,	KS_f10,         KS_F10,
134,135c134,136
<     KC(87), 			KS_f11,
<     KC(88), 			KS_f12,
---
>     KC(84), 			KS_BackSpace,
>     KC(87), 			KS_f11,         KS_F11,
>     KC(88), 			KS_f12,         KS_F12,
147c148
<     KC(200),			KS_Up,
---
>     KC(200),			KS_Up, 
152c153
<     KC(208),			KS_Down,
---
>     KC(208),			KS_Down, 


Diffing ./usr/src/sys/dev/wscons/wsemul_vt100_keys.c
63a64,78
> static char *vt100_Fkeys[] = {
> 	"\033[51~",	/* F1 */
> 	"\033[52~",    	/* F2 */
> 	"\033[53~",	/* F3 */
> 	"\033[54~",	/* F4 */
> 	"\033[55~",	/* F5 */
> 	"\033[57~",	/* F6 */
> 	"\033[58~",	/* F7 */
> 	"\033[59~",	/* F8 */
> 	"\033[60~",	/* F9 */
> 	"\033[61~",	/* F10 */
> 	"\033[63~",	/* F11 */
> 	"\033[64~",	/* F12 */
> };
> 
95c110
< 		*out = vt100_fkeys[in - KS_F1];
---
> 		*out = vt100_Fkeys[in - KS_F1];
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.