*BSD News Article 23370


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!goanna.cs.rmit.oz.au!yallara!lm
From: lm@yallara.cs.rmit.OZ.AU (Luke Mewburn)
Newsgroups: comp.os.386bsd.bugs
Subject: [NetBSD 0.9] pccons hack for no capslock
Date: 6 Nov 1993 09:36:32 GMT
Organization: Technical Support Group, Dept. of Computer Science, RMIT
Lines: 130
Message-ID: <2bfr70$416@goanna.cs.rmit.oz.au>
Reply-To: zak@rmit.edu.au
NNTP-Posting-Host: yallara.cs.rmit.oz.au
Summary: capslock is now another control key
Keywords: hack, pccons, capslock, no_X11_I_Can_Do_That_With_xmodmap_OK_?

A while ago I hacked pccons.c to make capslock a control key, and
right-shift/capslock actually perform capslock. That was in NetBSD 0.8

When NetBSD 0.9 came around, my patch didn't apply correctly. So, I
went around and did it again. This time, it's much simpler - capslock
is a control key, and there's no way to actually get caps lock.
(BTW: my patch also undefs FAT_CURSOR, so you may wanna redef it. I
was too lazy to make a dummy pccons.c with that change removed ;)


Oh, before all you X freaks tell me to use xmodmap, two comments:
- I don't run X at home, so xmodmap is rather useless don't you think?
- I know how to do that. Here's what I put in my .xsession at work:
	xmodmap ~/.Xkeymap
  and here's .Xkeymap
	remove	Lock =		Caps_Lock
	keycode	0x11 =		Control_L
	add	Control =	Control_L
  (probably specific to my NCD, but hey, it will stop people starting
  a 600 article thread asking/telling how to do it under Xfree-86 :)


Without further ado, here's the patch: (for /sys/arch/i386/isa/pccons.c)

--- cut here --- file: dl/caps09.dif
*** pccons.c.OLD	Mon Sep  6 11:25:33 1993
--- pccons.c	Fri Sep 17 00:12:09 1993
***************
*** 119,126 ****
  };
  
  /* block cursor so wfj does not go blind on laptop hunting for
- 	the verdamnt cursor -wfj */
  #define	FAT_CURSOR
  
  #define	COL		80
  #define	ROW		25
--- 119,127 ----
  };
  
  /* block cursor so wfj does not go blind on laptop hunting for
  #define	FAT_CURSOR
+ 	the verdamnt cursor -wfj */
+ #define NO_CAPSLOCK
  
  #define	COL		80
  #define	ROW		25
***************
*** 1451,1456 ****
--- 1452,1458 ----
  					num ^= 1;
  					update_led();
  					break;
+ #ifndef NO_CAPSLOCK
  				case CAPS:
  					if (dt & 0x80) {
  						lock_down &= ~CAPS;
***************
*** 1462,1467 ****
--- 1464,1470 ----
  					caps ^= 1;
  					update_led();
  					break;
+ #endif /* !NO_CAPSLOCK */
  				case SCROLL:
  					if (dt & 0x80) {
  						lock_down &= ~SCROLL;
***************
*** 1528,1536 ****
--- 1531,1541 ----
  			case NUM:
  				lock_down &= ~NUM;
  				break;
+ #ifndef  NO_CAPSLOCK
  			case CAPS:
  				lock_down &= ~CAPS;
  				break;
+ #endif /* !NO_CAPSLOCK */
  			case SCROLL:
  				lock_down &= ~SCROLL;
  				break;
***************
*** 1540,1545 ****
--- 1545,1553 ----
  			case ALT:
  				alt_down = 0;
  				break;
+ #ifdef NO_CAPSLOCK
+ 			case CAPS:
+ #endif /* NO_CAPSLOCK */
  			case CTL:
  				ctrl_down = 0;
  				break;
***************
*** 1563,1568 ****
--- 1571,1577 ----
  				num ^= 1;
  				update_led();
  				break;
+ #ifndef NO_CAPSLOCK
  			case CAPS:
  				if (lock_down & CAPS)
  					break;
***************
*** 1570,1575 ****
--- 1579,1585 ----
  				caps ^= 1;
  				update_led();
  				break;
+ #endif /* !NO_CAPSLOCK */
  			case SCROLL:
  				if (lock_down & SCROLL)
  					break;
***************
*** 1589,1594 ****
--- 1599,1607 ----
  			case ALT:
  				alt_down = 0x80;
  				break;
+ #ifdef NO_CAPSLOCK
+ 			case CAPS:
+ #endif /* NO_CAPSLOCK */
  			case CTL:
  				ctrl_down = 1;
  				break;
--- cut here ---

--
Luke Mewburn			Programmer, Technical Support Group,
Email: <zak@rmit.edu.au>	Department of Computer Science, RMIT