[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
keyboards
Date: Wed, 12 Aug 87 18:14 EDT
From: Brad Miller <miller at DOUGHNUT.CS.ROCHESTER.EDU>
Date: Wed 12 Aug 87 00:03:01-CDT
From: CMP.LADAI@R20.UTEXAS.EDU
(An aside: with compliments to Symbolics for their much improved keyboard
that I now have with my 3620, what exactly IS the philosophy behind
the extremely unique design of a Symbolics keyboard?)
What is "extremely unique?"
Well, the bucky keys on the new keyboards are too small. Jeeze, what
do they think, that we've never seen a TV?
The only complaint I can imagine is the position of the {} keys, which for TeX
are pretty inaccessible, vs. the pretty accessible and less useful : and
<backspace> keys... Maybe there's a way to move them? (are there hardware maps
for such things?)
Ah. I finally got tired of the altmode being in the stratosphere and
swapped it with the completely useless TAB key (I use c-I). Here's
how it's done. At the end are the forms to swap {} with the unshifted
() keys.
;;; -*- Mode: LISP; Package: USER; Syntax: Common-lisp; -*-
;;;; Move some keys around
(defun set-kbd-hardware-table (hardware-character software-character)
"Change HARDWARE-CHARACTER to generate SOFTWARE-CHARACTER. Unfortunately, you
have to know the index into the hardware kbd array; this is kbd-specific (sorry!).
SOFTWARE-CHARACTER can be either a single character or a list of the
symbol-shift permutations.
This transformation can be undone via (SETQ KBD-NEW-TABLE (KBD-MAKE-NEW-TABLE))"
;; Bugs to Gumby@AI.AI.MIT.EDU
(dotimes (shift 4)
(setf (aref si:kbd-new-table shift hardware-character)
(typecase software-character
(character (char-int software-character))
(list (if (nth shift software-character)
(char-int (nth shift software-character))
#o140000))
(integer software-character) ; mainly for shifts
(t (error "Can't make keyboard entry for ~S" software-character))))))
;;; Make tab into a useful key:
(set-kbd-hardware-table #o70 '(#\escape #\ #\ #\))
(set-kbd-hardware-table #o120 #\tab)
;;; Sometimes I forget and type shift:
(set-kbd-hardware-table #o24 '(#\. #\> #\ #\))
(set-kbd-hardware-table #o34 '(#\, #\< #\ #\))
(set-kbd-hardware-table #o116 '(#\` #\~ #\ #\))
;;; Swap the ( and {, ) and }. () are the non-numeric (unshifted) ones
(set-kbd-hardware-table #o76 '(#\{ #\[))
(set-kbd-hardware-table #o66 '(#\} #\]))
(set-kbd-hardware-table #o107 '(#\\ #\())
(set-kbd-hardware-table #o117 '(#\| #\)))