Gypsy (software)

Gypsy was the first document preparation system based on a mouse and graphical user interface to take advantage of those technologies to virtually eliminate modes. Its operation would be familiar to any user of a modern personal computer. It was the second WYSIWYG document preparation program, a successor to the Bravo on the Xerox Alto personal computer.

It was designed and implemented at Xerox PARC in 1975 by Larry Tesler and Timothy Mott, with advice from Dan Swinehart and other colleagues. The code was built on Bravo as a base and the developers of Bravo, including Tom Malloy, Butler Lampson and Charles Simonyi provided technical support to the effort. It was produced for use at Ginn & Co., a Xerox subsidiary in Lexington, Massachusetts, which published textbooks.

Drag-through selection, double-click, and cut-copy-paste were quickly adopted by Dan Ingalls for Smalltalk, beginning with Smalltalk-76. The ideas and techniques were refined in the Apple Lisa and Macintosh and spread from there to most modern document preparation systems.

Differences from Bravo
Although similar in capabilities to the then-current version of Bravo, the user interface of Gypsy was radically different. In both Bravo and Gypsy, a command operated on the current selection. But Bravo had modes and Gypsy didn't. In Bravo, the effect of pressing a character key depended on the current mode, while in Gypsy, pressing a character key by itself always typed the character.

For example, in Bravo's Command Mode, pressing "I" entered Insert Mode. In that mode, pressing character keys typed characters into a holding area ("buffer") until the Escape key was pressed, at which time the buffer contents were inserted before the selection and the editor returned to Command Mode. In Gypsy, no command or buffer was needed to insert new text. The user simply selected an insertion point with the mouse and typed the new text. Each inserted character went directly into the document at the insertion point, which was automatically positioned after the new character.

Among other differences between Gypsy and the then-current version of Bravo were:
 * To select text in Bravo, the user clicked the first and last characters to be selected, each with a different mouse button. In Gypsy, the user could drag from the first to the last character while holding a mouse button down.
 * In addition to cut-copy-paste, Gypsy introduced double-click to select a word as well as the ability to change the style of a text selection to bold, italic or underlined by pressing the Control key (also called "Look") while pressing "B", "I", or "U".
 * To minimize memorization and modes, the least frequently used commands in Gypsy appeared in a clickable menu. Each menu item could have parameters as in dialog boxes today. For example, the Scan (find) command took one parameter, which the user entered modelessly before clicking the command name, "Scan".