Rainer Joswig
Hamburg, Germany
Email: joswig@lisp.de

Home > Lisp News > 27. July 2008

Using the original Symbolics Keyboard with the Mac

I'm using a 17 inch MacBook Pro as my main hacking machine. For mobile use it replaces a full workstation. At home I'm often using it with a 30 inch Cinema Display. Then the laptop is closed and I'm using only the external screen and one of Apple's new and nice Alu keyboards. The German keyboard layout is a bit less useful for programming compared to the US keyboard layout. But generally it is a very usable keyboard, which is very flat and compact.

I also have one new style and one old style Symbolics Keyboard. Those can only be used with a real Symbolics Lisp Machine console (which is a bit fragile and getting old) or with the MacIvory. For the MacIvory there is a ADB (Apple Desktop Bus) keyboard and mouse adapter, so that the original Symbolics keyboard and mouse can be used for example with an Apple Macintosh Quadra. The adapter also needs a special system extension from Symbolics which runs under the old Mac OS. There is also some support for using the Symbolics keyboard with the (old) Mac OS applications (and not only with Genera). The Genera manuals explain the use of the Symbolics keyboard with Mac OS (pre OSX) applications. The MacIvory embedded Lisp Machine does not run on any computer that supports Mac OS X though. The only Macs that are compatible are 68k (68020, 68030 and 68040) Macs running a Mac OS prior to Mac OS X.


Above picture is from a recent Lisp meeting in Hamburg. Stefan Richter (front) provided the location. Hans Hübner hacks in the background. There is the Symbolics keyboard attached to a MacIvory.

I have one of those original ADB adapters from Symbolics and they work fine. Unfortunately they are hard to get. If you are looking for one, feel lucky if you get one. The adapter is more rare than the keyboard. Sometimes David Schmidt from Symbolics has keyboards for sale.

Up to now these were the only options how to use a Symbolics keyboard. Relatively new is a PS2 to Symbolics keyboard adapter that has been put together by Alexander Kurz (http://www.kbdbabel.org, open source keyboard protocol translator project) and Hans Hübner. There are around 30 existing and Hans sold those for 30 Euros. He added also a USB to PS2 adapter (mine is a but fragile, so I bought one from Belkin - expensive). By chaining together both adapters it is now possible to use the original Symbolics keyboard on a computer that has an USB port for connecting keyboards. Yeah!

Who are the potential users? Potential users are

  • programmer who need a keyboard with excellent ergonomics,
  • Lisp programmers who type a lot of Lisp code and need special keys (like non-shifted parentheses),
  • Emacs users (the keyboard has the modifier keys you were dreaming of and more) and
  • Symbolics users who use a Lisp Machine via an X11 server.
Probably that's not a huge market, but if are used to use excellent tools, then the Symbolics keyboard attached to a modern computer is something to check out. If you ever heard people praise their Apple Extended Keyboard or the IBM keyboard, those are toys compared to the Symbolics keyboard, which has the added bonus for me that it is very compact and supports the Lisp programmer.

There are still some keyboard mapping problems to sort out, but Hans should be able to resolve those with a new chip for his Symbolics to PS2 adapter. Most other keyboard mapping changes can be made on Operating System level. For Mac OS X there is an application called Ukulele which can create and edit Mac OS X keyboard layouts. The program is easy to use and in a few minutes I had adapted a Logitech keyboard layout to my Symbolics keyboard. The keyboard layout file should then be placed in the directory ~/Library/Keyboard Layouts/ . Logout and Login again - then Mac OS X should have noticed the keyboard layout new file. In System Preferences > Country Settings > Keyboard Menu one can add the new keyboard layout to the keyboard menu in the menubar.

With some special key configuration it should also be possible to take advantage of the special keys on the Symbolics keyboard while using the LispWorks integrated development environment or Aquamacs (a nice Macintosh version of GNU Emacs). The keyboard for example has a Complete key which triggers input completion in various contexts on the Lisp Machine. It also has Suspend, Resume, Abort keys which on the Lisp Machine trigger functionality in the command loop (a kind of of REPL (Read Eval Print Loop) on steroids) and the condition system. Conceptually Resume calls the next CONTINUE restart and Abort calls the next ABORT restart. Suspend would start a new REPL for the current process. One can imagine that these keys could also find good use with a Common Lisp development environment like LispWorks.

Very useful to customize the keyboard actions is the software 'Keyboard Maestro' for Mac OS X. I have been able to use the current keyboard mapping and do some useful extensions. So for example I get special characters with the SYMBOL key as a prefix (though not as a modifier key). Umlaut ü is now SYMBOL u. The SELECT key prefix works, too. SELECT e activates now Aquamacs version of GNU Emacs. SELECT f activates the finder. l=LispWorks, t=Terminal, m=Mail, N=MT-Newswatcher, v=Vorschau (Preview), b=browser (Safari), k=Keynote, ... COMPLETE now is meta-control-i for completion in LispWorks. ABORT does COMMAND-.

The REFRESH key now is used to check new mail in Mail, reload a web page in the web browser or check for new news in the News reader.

After typing a bit with the Symbolics keyboard I feel right at home. It has a feel to it that no other keyboard has - especially for a Lisp developer. I can report that the Symbolics keyboard works extremely well attached to my Mac.

LOCAL is the Mac's command key (which is not that usable and takes a bit of time to learn). RUBOUT sits to the left and deletes a character (that's relatively easy to learn). To the right we have the usual RETURN key, but next to the RETURN key there is a LINE key. This can be used in a Lisp Editor (for example with LispWorks) to insert a newline and indent. When one types a lot of Lisp code, one might use the COMPLETE key for completion, LINE for newline+indent and the parentheses are available without pressing shift. This really makes source code entry faster.

Other settings I have made: PAGE scrolls page-wise (shift-PAGE scrols up), SCROLL scrolls down a line (shift-SCROLL up a line, control-SCROLL goes left, control-shift-SCROLL goes right, ...). I have also made the changes to the RUBOUT key so that there can be exceptions to some programs (seems like carbon programs might need that).

Many thanks to Alexander Kurz and Hans Hübner, who have made it possible to use the original Symbolics keyboard with a modern computer.

Links:
Alexander Kurz, kbdbabel, open source keyboard protocol translator project
Hans Hübner, Symbolics to PS2 keyboard adapter
Symbolics
Pictures of Symbolics equipment by Peter Paine
The Perfect Keyboard For Gnu Emacs And XML: The Symbolics/Apple MacIvory
Ukulele, Keyboard Layout Editor for Mac OS X
Microsoft keyboard layout creator
Unicode and Keyboards on Windows
SharpKeys
Map (external version) from Mac OS Keyboard character set to Unicode 4.0 and later
DoubleCommand for Mac OS X
Keyboard Maestro for Mac OS X
Logitech has a keyboard with a similar form factor
Hans Hübner's use of a 'Teensy' board to connect a Symbolics keyboard to USB

Keywords:
LISPM MAC-OS-X SYMBOLICS

Feedback for this Lisp news item.
Please add to the Number 272 the Number 1 and put the result in the Number input field below.
Name:
Email:

Feedback:



Terms of use: no crawlers, no wget, no site copying, use of pictures and text only with permission. No excessive rss feed checking.

Website by Rainer Joswig, Copyright 2003-2009, feedback to joswig@lisp.de