Recreating the Canon Cat Document Interface
Posted3 months agoActive3 months ago
lab.alexanderobenauer.comTechstory
calmpositive
Debate
40/100
Canon CatDocument InterfaceHuman-Computer Interaction
Key topics
Canon Cat
Document Interface
Human-Computer Interaction
The article recreates the Canon Cat document interface, sparking a discussion about its innovative design and potential modern implementations, with commenters sharing their experiences and insights.
Snapshot generated from the HN discussion
Discussion Activity
Light discussionFirst comment
3h
Peak period
5
14-16h
Avg / period
2
Comment distribution16 data points
Loading chart...
Based on 16 loaded comments
Key moments
- 01Story posted
Oct 15, 2025 at 10:42 AM EDT
3 months ago
Step 01 - 02First comment
Oct 15, 2025 at 1:59 PM EDT
3h after posting
Step 02 - 03Peak activity
5 comments in 14-16h
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 16, 2025 at 6:51 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45593390Type: storyLast synced: 11/20/2025, 7:50:26 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Bootstrapping Computing looks interesting.
Sounds like it had the problem of not using a custom keyboard.
I had a lot of fun with this emulator on Archive.org, and included some quick notes about using it with macOS: https://archive.org/details/canoncat
Archived Twitter thread: https://threadreaderapp.com/thread/1150798839294627842.html
Gist with links to the actual scripts behind the scenes: https://gist.github.com/vitorio/4e5d8de0db5c56b6816b95817c20...
Some of us already do something like this by keeping a big ever-growing notes buffer with the date at the beginning of each day's work.
I think the real genius of the interface is reducing it down to a set of dedicated keys that always work. It is hard to explain how good an interface feels if you can get it down to one action. The closest common analog I can think of is the X11 single click paste. When you spell it out "well, copy/paste changes from [select, ctl+c, click, ctl+v] to [select, click]" it does not sound like much. But It flows so much better and I have to admit I get all sorts of grumpy when going back to a windows machine and I do not have my single click paste. On reflection drag/drop might be close to single click paste. But I never do it. Does anyone use drag/drop for common editing?
I believe I did have a co-worker who used drag-and-drop for common editing in NEdit in 02005. On that team we used pair programming, so I had the opportunity to observe my co-workers' editor habits in detail. In more recent work I have not had that opportunity.
> The less common strategy is the incremental search, a popular example of which is found in EMACS, an editor used with the UNIX operating system (Stallman 1993). In most implementations of incremental searches, as with the delimited search, the user first summons a dialog box that contains a field in which the user can enter the pattern. When he types the first character of the pattern, however, the system uses this character alone as a complete pattern and immediately begins to search for the first instance of that character in the chosen search direction. If an instance of that first character is found before the next character of the pattern is typed, the instance is selected ...
HandyFind, which has an ambiguous relationship with Raskin, says:
> Being able to find words as you type has been a popular feature in editors used by software programmers for a long time. The feature usually goes by the name "Incremental Search". The initial idea and implementation was done circa 1974 by researchers at MIT and later included in the popular word processor named "EMACS" (Richard Stallman, 1979). Recently, this feature has become more widespread and is sometimes referred to as Find As You Type, Search As You Type, Type Ahead, Inline Search, Interactive Search, Look-Ahead Search or Word-Wheeling. The claim that incremental search and LEAPing should be a fundamental part of making software easier to use was argued by Jef Raskin in his excellent book The Humane Interface, along with many other great ideas!
(http://www.handykeys.com/about.htm)
One critical difference is that Emacs incremental search is modal: sometimes (in incremental search minor mode) typing "x" adds it to your search string, and sometimes (in, say, fundamental-mode) typing "x" adds it to your document. The advance (as he saw it) of LEAP was that it's quasimodal, like Ctrl or Alt, and therefore much less prone to user error. It's also, I suspect, faster to use (though I've never had a Cat to try on); you'd think that going to the end of the sentence by typing LEAP-. would be about as fast as typing M-e, while using Emacs incremental search in the same way requires typing C-s . RET. That is:
vs. which is just a significantly longer sequence of actions that must be carried out perfectly. (Actually you can release S and . in the sequence as late as you want, assuming you don't have key jamming problems, but you still need six steps instead of three.) I haven't modeled this with GOMS or anything but it seems like it would take longer.As for "one big text file", yes, that was the major finding of Danny O'Brien's ethnographic work on "Life Hacks".
Under Emacs or X11 you can nearly map every key/keybinding to anything.
Also, on The Humane Interface, and the "Undo for everything"... Emacs has desktop-mode and for sure it could be set to save/restore nearly everything. https://en.wikipedia.org/wiki/The_Humane_Interface
I actually designed a PCB / custom keyboard (well, it's just a copy of the Canon Cat layout) with the Leap, Use Front, etc keys (using an ARM dev board called Black Pill, which is probably overkill, to scan the rows/columns for key up/down events) for this reason. Right now I have it sending key codes over a serial connection to another microcontroller with a display module so you can now type on it, but I really need to get started on the actual Canon Cat style software. I'm not really planning to make it USB compatible or use any existing OS though.
> Maybe predictably, early on I found myself wanting more than one text stream. I fought that inclination to discover what’s in store down the pure Canon Cat path.
I think the Cat would let you do that if you used multiple disks? I haven't used a Canon Cat, but only read the documentation. It used a single DISK button for loading and saving, based on context. The following quote is copied from the manual for reference. I think the "beep" option is for if you've made an edit in memory but don't have the correct disk in for saving that same text stream.
[quote]
The Cat has two storage places for your text: memory and disk. Memory is the area inside the Cat where the text is stored while you are working on it. The on-screen text is a portion of the text stored in memory. The memory is kept alive by the electric current coming from the wall. If the power were cut, the text in the memory would be lost, so you need to record the text more or less permanently on a disk with the help of the disk drive.
One command, [DISK], handles all operations involving disk and memory. When you use [DISK], the Cat does one of three things:
-Plays back the disk in the drive. This means copying the information from the disk into the memory, and putting a portion of it up on the screen where you can see it and work on it.
-Records the text in memory. This means transferring the information in memory to the disk for safe storage.
-Beeps. This means the Cat makes a warning sound and does nothing, because recording or playing back might lose information.
A DISK sign appears on the ruler while the Cat is recording or playing back.
[unquote]