Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Space-cadet keyboard
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Keyboard used on MIT Lisp machines, influential to Emacs}} [[File:Space-cadet.jpg|thumb|400px|right|The [[Symbolics]]-labeled {{dubious-span|version|reason=Someone should confirm if it was really a different ''version'' – not just a different label on an identical keyboard, or else just make this say "Symbolics-labeled space cadet keyboard"|date=March 2025}} shown here was only used with the LM-2, which was Symbolics' repackaged version of the [[Lisp machine|MIT CADR]]. Later Symbolics systems used a greatly simplified keyboard, the [[Symbolics#Symbolics keyboard|Symbolics keyboard]], that retained only the basic layout and the more commonly used function and [[modifier key]]s from the space-cadet keyboard.<ref>{{Cite web | title=Space-cadet Keyboard and Lisp Machine Keyboards | author=Xah Lee | date=2011-10-27 | url=http://xahlee.info/kbd/lisp_keyboards.html}}</ref>]] The '''space-cadet keyboard''' is a keyboard designed by John L. Kulp in 1978 and used on [[Lisp machine]]s at [[Massachusetts Institute of Technology]] (MIT),<ref>{{Cite web| title=some ideas about the keyboard design for the LISP machine | format=TXT | url=https://raw.githubusercontent.com/mietek/mit-cadr-system-software/master/src/lmdoc/kbdpro.3 | archive-url=https://web.archive.org/web/20190228004001/https://raw.githubusercontent.com/mietek/mit-cadr-system-software/master/src/lmdoc/kbdpro.3 | archive-date=2019-02-28}}</ref><ref>{{Cite web | url=https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg02212.html |title = Re: Pretty-lambdas}}</ref><ref>{{Cite web | url=https://news.ycombinator.com/item?id=2191014 |title = I know this is another "neckbeard" comment (Love that term), but anyone who ever... | Hacker News}}</ref> which inspired several still-current jargon terms{{Citation needed|date=April 2022}} in the field of [[computer science]] and influenced the design of [[Emacs]]. It was inspired by the [[Knight keyboard]], which was developed for the Knight TV system, used with MIT's [[Incompatible Timesharing System]]. == Description == The space-cadet keyboard was equipped with seven [[modifier key]]s: four keys for [[bucky bit]]s ({{Key top|Control|3=true}}, {{Key top|Meta}}, {{Key top|Super}}, and {{Key top|Hyper}}), and three shift keys, called {{Key top|Shift}}, {{Key top|Top}}, and {{Key top|Front}} (which was labeled on the ''front'' of the key; the top was labeled {{Key top|Greek}}). {{Key press|Meta}} had been introduced on the earlier Knight keyboard, while {{Key press|Hyper}} and {{Key press|Super}} were introduced by this keyboard.<ref name="jargon file">{{Cite book | title=The Jargon File | year=2007 | publisher=Xinware Corporation | pages=128 | isbn=978-1-897454-66-4 }}</ref> Each group was in a row, thus allowing easy [[Chorded keyboard|chording]], or pressing of several modifier keys; for example, {{Key press|Control|Meta|Hyper|Super}} could be pressed with the fingers of one hand, while the other hand pressed another key. Many keys had three symbols on them, accessible by means of the shift keys: a letter and a symbol on the top, and a Greek letter on the front. For example, the {{Key top|G}} key had a "G" and an [[Up arrow (symbol)|up-arrow]] ("↑") on the top, and the Greek letter [[gamma]] ("{{serif|γ}}") on the front. By pressing this key with one hand while playing an appropriate "chord" with the other hand on the shift keys, the user could get the following results: {| class="wikitable" !Key pressed !Result |- | {{Key press|G}} | <kbd>g</kbd> (lowercase G) |- | {{Key press|Shift|G}} | <kbd>G</kbd> (uppercase G) |- | {{Key press|Front|G}} | <kbd>γ</kbd> (lowercase [[gamma]]) |- | {{Key press|Front|Shift|G}} | <kbd>Γ</kbd> (uppercase gamma) |- | {{Key press|Top|G}} | <kbd>↑</kbd> (upwards arrow) |} Each of these might, in addition, be typed with any combination of the {{Key top|Control|3=true}}, {{Key top|Meta}}, {{Key top|Super}}, and {{Key top|Hyper}} keys. By combining the modifier keys, it is possible to make {{nowrap|(50 keys × 5 shift types) × 2{{sup|4 bucky keys}} {{=}} 4000 different inputs.}} This allowed the user to type very complicated mathematical text, and also to have thousands of single-character commands at their disposal. Many users were willing to memorise the command meanings of so many characters if it reduced typing time. This attitude shaped the interface of [[Emacs]].<ref name="isbn1-56592-152-6">{{Cite book|last1=Cameron|first=Debra|chapter-url=https://archive.org/stream/learninggnuemacs00came#page/408/mode/2up|title=Learning GNU Emacs|last2=Rosenblatt|first2=Bill|last3=Raymond|first3=Eric|publisher=O'Reilly|year=1996|isbn=1-56592-152-6|editor-last=Loukides|editor-first=Mike|edition=Second|location=Sebastopol, CA|pages=408–409|chapter=Emacs and X|author-link3=Eric S. Raymond|chapter-url-access=registration}}</ref>{{efn|The way the space-cadet keyboard influenced the design and usage conventions of the Emacs text editor compares with the influence the [[ADM-3A]] terminal's keyboard—notably its {{Key top|Esc}} key feature—had upon the competing [[Vi (text editor)|vi]] text editor.<ref name=xahlee>{{Cite web | url=http://xahlee.info/kbd/keyboard_hardware_and_key_choices.html | title=History of Emacs & vi Keys (Keyboard Influence on Keybinding Design) | author=Xah Lee }}</ref> In both cases, these were the keyboards used by each editor's respective original developers.}} Other users, however, thought that so many keys were excessive and objected to this design on the grounds that such a keyboard can be difficult to operate.<ref name= "jargon file" /> Emacs uses "M-" as the prefix for {{Key top|Alt}} when describing key presses: the "M-" stood for {{Key press|Meta}} on the space-cadet keyboard, and when Emacs was ported to PCs, the {{Key press|Alt}} key was used in place of {{Key press|Meta}}. This keyboard included a {{Key top|Macro}} key which had limited application support. It also included four Roman Numeral keys ({{Key press|I}}, {{Key press|II}}, {{Key press|III}}, and {{Key press|IV}}) which allowed for easy interaction with lists of four or fewer choices.<ref name="jargon file" /> == See also == * [[Lisp machine]] * [[Symbolics]] * [[Knight keyboard]] == Notes == {{notelist}} == References == {{Refbegin}} {{JargonFile}} {{Refend}} {{Reflist}} == External links == * [https://web.archive.org/web/20150112030657/http://home.comcast.net/~mmcm/kbd/SpaceCadet.html Space Cadet]: Mike McMahon's discussion of the keyboard, with illustrative pictures and technical documentation * [http://www.catb.org/jargon/html/S/space-cadet-keyboard.html Jargon File entry] on the space-cadet keyboard * [http://deskthority.net/viewtopic.php?f=2&t=98 The Lisp keyboards]: overview of the space-cadet and other famous Lisp keyboards * {{Cite web | title=Space-cadet Keyboard and Lisp Machine Keyboards | author=Xah Lee | date=2011-10-27 | url=http://xahlee.info/kbd/lisp_keyboards.html}} {{Keyboard keys}} [[Category:Computer keyboard types]] [[Category:Lisp (programming language)]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Dubious-span
(
edit
)
Template:Efn
(
edit
)
Template:JargonFile
(
edit
)
Template:Key press
(
edit
)
Template:Key top
(
edit
)
Template:Keyboard keys
(
edit
)
Template:Notelist
(
edit
)
Template:Nowrap
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Serif
(
edit
)
Template:Short description
(
edit
)