[comp.sys.sgi] source for alterative keyboards for sgi?

haberman@s1.msi.umn.edu (Joe Habermann) (04/28/91)

This probably has been asked before.  I apologize if its
a FAQ.

Does anyone sell a keyboard for SGI systems whose mapping
is a little more C- and <esc> friendly?  Oh, and that 
stupid caps-lock can be missing completely.

Thanks,

Joe Habermann
haberman@msi.umn.edu

ken@uh.msc.umn.edu (Ken Chin-Purcell) (04/28/91)

Joe Habermann writes:

> Does anyone sell a keyboard for SGI systems whose mapping
> is a little more C- and <esc> friendly?  Oh, and that 
> stupid caps-lock can be missing completely.

Hi Joe...  This has come up before here, so I'll contribute the
following magic incantation to switch key meanings via NeWS.
I got this from someone else, and I haven't bothered to 
figure how it works or what other key codes are....  Maybe
someone could post how to find out what a key's keyval is?

From my user.ps, to switch the left hand Caps Lock and Ctrl keys:

/replacekeys { % origkeyvals_array changedkeyvals_array -> -
        {
                /changedvals exch def
                /origvals exch def
                /keysdict origvals length dict def
                keysdict begin
                        0 1 origvals length 1 sub {
                                dup origvals exch get changedvals
                                3 2 roll get def
                        } for
                end
                createevent dup begin
                        /Name origvals def
                        /Priority 2 def
                        /Exclusivity true def
                end
                expressinterest
                {
                        awaitevent dup dup begin
                        /Name get keysdict exch get /Name exch def
                        end
                        redistributeevent
                } loop
        } fork pop pop pop
} def

% lcap  ctrl      ctrl  lcap
[ 28420 28419 ] [ 28419 28420 ] replacekeys

--  Ken Chin-Purcell, Graphics, AHPCRC, Minnesota Supercomputer Ctr.
--  also known as ken@msc.edu and 612-626-8090

jim@baroque.Stanford.EDU (James Helman) (04/28/91)

This can also be done under X:

	xmodmap -e 'clear lock'
	xmodmap -e 'add control = Caps_Lock'

But while on the question on third party keyboards, does anyone make a
split keyboard for 4Ds?  (A split keyboard is one with left and right
halves which can be independently positioned to reduce ulnar
deviation, i.e. the angle between your forearm and hand, which is a
contributing factor in carpal tunnel syndrome.)

-jim

Jim Helman
Department of Applied Physics			Durand 012
Stanford University				FAX: (415) 725-3377
(jim@KAOS.stanford.edu) 			Work: (415) 723-9127

dwallach@soda.berkeley.edu (Dan Wallach) (04/28/91)

Here's a "complete" list of keycodes to use and the code to use them.
I don't know how correct this is, as I haven't gone and changed my
whole keyboard around (YET)...

Dan


/replacekeys { % origkeyvals_array changedkeyvals_array -> -
        {
                /changedvals exch def
                /origvals exch def
                /keysdict origvals length dict def
                keysdict begin
                        0 1 origvals length 1 sub {
                                dup origvals exch get changedvals
                                3 2 roll get def
                        } for
                end
                createevent dup begin
                        /Name origvals def
                        /Priority 2 def
                        /Exclusivity true def
                end
                expressinterest
                {
                        awaitevent dup dup begin
                        /Name get keysdict exch get /Name exch def
                        end
                        redistributeevent
                } loop
        } fork pop pop pop
} def

% Capslock becomes CTRL
% Right CTRL becomes Capslock

[28420 28561]
[28419 28420] replacekeys

% 28423 Escape
% 28562 F1
% 28563 F2
% 28564 F3
% 28565 F4
% 28566 F5
% 28567 F6
% 28568 F7
% 28569 F8
% 28570 F9
% 28571 F10
% 28572 F11
% 28573 F12
% 28574 Print Screen
% 28575 Scroll Lock
% 28576 Pause
% 28471 ` and ~
% 28424 1 and !
% 28430 2 and @
% 28431 3 and #
% 28438 4 and $
% 28439 5 and %
% 28446 6 and ^
% 28447 7 and &
% 28454 8 and *
% 28455 9 and (
% 28462 0 and )
% 28463 - and _
% 28470 = and +
% 28477 Backspace
% 28577 Insert
% 28578 Home
% 28579 Page Up
% 28582 Keypad Num Lock
% 28583 Keypad /
% 28584 Keypad *
% 28492 Keypad -
% 28425 Tab and Backtab
% 28426 q
% 28432 w
% 28433 e
% 28440 r
% 28441 t
% 28448 y
% 28449 u
% 28456 i
% 28457 o
% 28464 p
% 28465 [ and {
% 28472 ] and }
% 28473 \ and |
% 28478 Delete
% 28580 End
% 28581 Page Down
% 28483 Keypad 7
% 28484 Keypad 8
% 28491 Keypad 9
% 28585 Keypad +
% 28420 Caps Lock
% 28427 a
% 28428 s
% 28434 d
% 28435 f
% 28442 g
% 28443 h
% 28450 j
% 28451 k
% 28458 l
% 28459 ; and :
% 28466 ' and "
% 28467 Enter
% 28479 Keypad 4
% 28485 Keypad 5
% 28486 Keypad 6
% 28422 Shift (left side)
% 28436 z
% 28437 x
% 28444 c
% 28445 v
% 28452 b
% 28453 n
% 28460 m
% 28461 , and <
% 28468 . and >
% 28469 / and ?
% 28421 Shift (right side)
% 28497 uparrow
% 28474 Keypad 1
% 28480 Keypad 2
% 28481 Keypad 3
% 28498 Keypad Enter
% 28419 Ctrl (left side)
% 28559 Alt (left side)
% 28499 Spacebar
% 28560 Alt (right side)
% 28561 Ctrl (right side)
% 28489 leftarrow
% 28490 downarrow
% 28496 rightarrow
% 28475 Keypad 0
% 28482 Keypad .