[comp.sys.sun] Dvorak keyboard for SPARC

todd@uunet.uu.net (11/27/90)

I use the Dvorak keyboard arrangement. I'd be grateful for the executable
and/or source for any programs that remap a SPARC station keyboard to the
dvorak arrangement. Ideally, I'd like to be able to use dvorak with
SunView, OpenWindow and motif, but I'd be happy with any one of the above.

Thanks in advance to all.

bob@morningstar.com (12/05/90)

|I use the Dvorak keyboard arrangement. I'd be grateful for the executable
|and/or source for any programs that remap a SPARC station keyboard to the
|dvorak arrangement. Ideally, I'd like to be able to use dvorak with
|SunView, OpenWindow and motif, but I'd be happy with any one of the above.

Xmodmap should work with OW and Motif (both being X thingies), but I don't
know about SunView.  To do QWERTY on a Sun Type 4 keyboard, say "xmodmap
~/.xmodmap.qwerty".  To do Dvorak, say "xmodmap "/.xmodmap.dvorak".  The
modmaps, and a convenient reminder background bitmap, will follow.
(Thanks to Karl Fox for working these out.)

QWERTY xmodmap:

keycode 61 = Q
keycode 62 = W
keycode 63 = E
keycode 64 = R
keycode 65 = T
keycode 66 = Y
keycode 67 = U
keycode 68 = I
keycode 69 = O
keycode 70 = P

keycode 84 = A
keycode 85 = S
keycode 86 = D
keycode 87 = F
keycode 88 = G
keycode 89 = H
keycode 90 = J
keycode 91 = K
keycode 92 = L
keycode 93 = semicolon colon

keycode 107 = Z
keycode 108 = X
keycode 109 = C
keycode 110 = V
keycode 111 = B
keycode 112 = N
keycode 113 = M
keycode 114 = comma less
keycode 115 = period greater
keycode 116 = slash question

Dvorak xmodmap:

keycode 61 = slash question
keycode 62 = comma less
keycode 63 = period greater
keycode 64 = P
keycode 65 = Y
keycode 66 = F
keycode 67 = G
keycode 68 = C
keycode 69 = R
keycode 70 = L

keycode 84 = A
keycode 85 = O
keycode 86 = E
keycode 87 = U
keycode 88 = I
keycode 89 = D
keycode 90 = H
keycode 91 = T
keycode 92 = N
keycode 93 = S

keycode 107 = semicolon colon
keycode 108 = Q
keycode 109 = J
keycode 110 = K
keycode 111 = X
keycode 112 = B
keycode 113 = M
keycode 114 = W
keycode 115 = V
keycode 116 = Z

Dvorak reminder background bitmap:

#define dvorak_width 130
#define dvorak_height 42
#define dvorak_x_hot 0
#define dvorak_y_hot 0
static char dvorak_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0xec, 0xf8, 0x8f, 0xff, 0xf8, 0x8f, 0xff, 0xf8, 0x0f, 0xff,
   0xf1, 0x1f, 0xff, 0xf1, 0x1f, 0xff, 0x01, 0x00, 0x04, 0x50, 0x00, 0x05,
   0x50, 0x00, 0x05, 0x90, 0x00, 0x0a, 0xa0, 0x00, 0x0a, 0xa0, 0x00, 0x02,
   0x00, 0x04, 0x52, 0x00, 0x05, 0x50, 0x1e, 0x25, 0x92, 0x7c, 0x8a, 0xa3,
   0x38, 0xca, 0xa3, 0x04, 0x02, 0xec, 0x04, 0x52, 0x00, 0x05, 0x50, 0x22,
   0x25, 0x92, 0x04, 0x4a, 0xa4, 0x44, 0x4a, 0xa4, 0x04, 0x02, 0x00, 0x04,
   0x51, 0x00, 0x05, 0x50, 0x22, 0x45, 0x91, 0x04, 0x4a, 0xa0, 0x04, 0x4a,
   0xa4, 0x04, 0x02, 0x00, 0x84, 0x50, 0x00, 0x05, 0x50, 0x1e, 0x85, 0x90,
   0x1c, 0x4a, 0xa0, 0x04, 0xca, 0xa3, 0x04, 0x02, 0xec, 0x44, 0x50, 0x10,
   0x85, 0x51, 0x02, 0x85, 0x90, 0x04, 0x4a, 0xa6, 0x04, 0x4a, 0xa1, 0x04,
   0x02, 0x00, 0x24, 0x50, 0x10, 0x85, 0x51, 0x02, 0x85, 0x90, 0x04, 0x4a,
   0xa4, 0x44, 0x4a, 0xa2, 0x04, 0x02, 0x00, 0x24, 0x50, 0x08, 0x05, 0x50,
   0x02, 0x85, 0x90, 0x04, 0x8a, 0xa7, 0x38, 0x4a, 0xa4, 0x7c, 0x02, 0x00,
   0x04, 0x50, 0x00, 0x05, 0x50, 0x00, 0x05, 0x90, 0x00, 0x0a, 0xa0, 0x00,
   0x0a, 0xa0, 0x00, 0x02, 0x00, 0xf8, 0x8f, 0xff, 0xf8, 0x8f, 0xff, 0xf8,
   0x0f, 0xff, 0xf1, 0x1f, 0xff, 0xf1, 0x1f, 0xff, 0x01, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xe0, 0x3f, 0xfe, 0xe3, 0x3f, 0xfe, 0xe3, 0x3f, 0xfc,
   0xc7, 0x7f, 0xfc, 0xc7, 0x7f, 0xfc, 0x07, 0x00, 0x10, 0x40, 0x01, 0x14,
   0x40, 0x01, 0x14, 0x40, 0x02, 0x28, 0x80, 0x02, 0x28, 0x80, 0x02, 0x08,
   0x00, 0x10, 0x42, 0x71, 0x94, 0x4f, 0x89, 0x14, 0x47, 0xf2, 0x28, 0x91,
   0xf2, 0x29, 0x91, 0xe2, 0x08, 0xfc, 0x10, 0x45, 0x89, 0x94, 0x40, 0x89,
   0x14, 0x42, 0x12, 0x29, 0x91, 0x42, 0x28, 0x93, 0x12, 0x09, 0x00, 0x90,
   0x48, 0x89, 0x94, 0x40, 0x89, 0x14, 0x42, 0x12, 0x29, 0x91, 0x42, 0x28,
   0x93, 0x12, 0x08, 0x00, 0x90, 0x48, 0x89, 0x94, 0x43, 0x89, 0x14, 0x42,
   0x12, 0x29, 0x9f, 0x42, 0x28, 0x95, 0xe2, 0x08, 0x1c, 0x90, 0x4f, 0x89,
   0x94, 0x40, 0x89, 0x14, 0x42, 0x12, 0x29, 0x91, 0x42, 0x28, 0x99, 0x02,
   0x09, 0x00, 0x90, 0x48, 0x89, 0x94, 0x40, 0x89, 0x14, 0x42, 0x12, 0x29,
   0x91, 0x42, 0x28, 0x99, 0x12, 0x09, 0x00, 0x90, 0x48, 0x71, 0x94, 0x4f,
   0x71, 0x14, 0x47, 0xf2, 0x28, 0x91, 0x42, 0x28, 0x91, 0xe2, 0x08, 0x00,
   0x10, 0x40, 0x01, 0x14, 0x40, 0x01, 0x14, 0x40, 0x02, 0x28, 0x80, 0x02,
   0x28, 0x80, 0x02, 0x08, 0x00, 0xe0, 0x3f, 0xfe, 0xe3, 0x3f, 0xfe, 0xe3,
   0x3f, 0xfc, 0xc7, 0x7f, 0xfc, 0xc7, 0x7f, 0xfc, 0x07, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0xfe, 0xe3, 0x3f, 0xfe, 0xe3, 0x3f, 0xfe, 0xc3,
   0x7f, 0xfc, 0xc7, 0x7f, 0xfc, 0xc7, 0x7f, 0x00, 0x00, 0x01, 0x14, 0x40,
   0x01, 0x14, 0x40, 0x01, 0x24, 0x80, 0x02, 0x28, 0x80, 0x02, 0x28, 0x80,
   0xec, 0x00, 0x01, 0x14, 0x47, 0x81, 0x94, 0x48, 0x89, 0x24, 0x8f, 0x12,
   0x29, 0x91, 0x12, 0x29, 0x9f, 0x00, 0x00, 0x01, 0x94, 0x48, 0x81, 0x94,
   0x44, 0x89, 0x24, 0x91, 0xb2, 0x29, 0x91, 0x12, 0x29, 0x90, 0x00, 0x00,
   0x41, 0x94, 0x48, 0x81, 0x94, 0x42, 0x51, 0x24, 0x91, 0xf2, 0x29, 0x91,
   0x12, 0x29, 0x88, 0x00, 0x00, 0x01, 0x94, 0x48, 0x81, 0x94, 0x41, 0x21,
   0x24, 0x8f, 0x52, 0x29, 0x91, 0xa2, 0x28, 0x84, 0x00, 0x00, 0x41, 0x94,
   0x4a, 0x81, 0x94, 0x42, 0x51, 0x24, 0x91, 0x12, 0x29, 0x95, 0xa2, 0x28,
   0x82, 0x00, 0x00, 0x41, 0x94, 0x44, 0x89, 0x94, 0x44, 0x89, 0x24, 0x91,
   0x12, 0x29, 0x8a, 0x42, 0x28, 0x81, 0x00, 0x00, 0x21, 0x14, 0x4b, 0x71,
   0x94, 0x48, 0x89, 0x24, 0x8f, 0x12, 0x29, 0x8a, 0x42, 0x28, 0x9f, 0x00,
   0x00, 0x01, 0x14, 0x40, 0x01, 0x14, 0x40, 0x01, 0x24, 0x80, 0x02, 0x28,
   0x80, 0x02, 0x28, 0x80, 0xcc, 0x00, 0xfe, 0xe3, 0x3f, 0xfe, 0xe3, 0x3f,
   0xfe, 0xc3, 0x7f, 0xfc, 0xc7, 0x7f, 0xfc, 0xc7, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

guy@uunet.uu.net (Guy Harris) (12/12/90)

>Xmodmap should work with OW and Motif (both being X thingies), but I don't
>know about SunView.

If you're running 4.1, you should be able to make a file for "loadkeys"
that gives you a Dvorak-keyboard layout for SunView and for the raw
console.  If you're not running 4.1, you'd have to write your own program
to do all the translation-table modification that "loadkeys" does, or get
such a program from somebody (I don't have such a program).