Skip to content

ecliptik/geomys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geomys

A Gopher browser for classic 68000 Macintosh systems, from the Mac Plus and up. Implements RFC 1436 and RFC 4266 with a full Macintosh GUI. Supports monochrome on System 6 and 256 colors on System 7. Works with MacTCP. Cross-compiled on Linux using Retro68.

This project was 100% vibe coded using Claude Code.

Download · Features · Keyboard Shortcuts · Themes · Building · Testing · Acknowledgments · License

System 6

Geomys browsing SDF.org Geomys multi-window with search
Directory Browsing Multi-Window & Search
Geomys text page with Courier font Geomys dark mode with favorites
Text Page & Edit Menu Dark Mode & Favorites

Download

Pre-built binaries are available on the Releases page:

Edition Description Memory Download
Geomys Full build — 4 windows, all features including 256-color ~1024KB .dsk · .hqx
Geomys Lite Recommended for Mac Plus — 2 windows, core features ~505KB .dsk · .hqx
Geomys Minimal Bare-bones — 1 window, smallest binary ~297KB .dsk · .hqx

Each edition is available as .dsk (800K floppy image) and .hqx (BinHex archive). No build toolchain required — just download and run. See docs/BUILD.md for custom builds.

Requirements

  • Macintosh Plus or later (4MB RAM, 68000 CPU)
  • System 6.0.8 or System 7 with MacTCP
  • 256-color themes require Mac II or later with Color QuickDraw

Features

Gopher Protocol

  • All 19 canonical and non-canonical Gopher item types:
    • Interactive: directories (1), text files (0), CSO phonebook (2), search (7), HTML (h)
    • Telnet handoff: telnet (8) and TN3270 (T) with connection dialog and app launching
    • Download to disk: BinHex (4), DOS binary (5), UUencode (6), binary (9), document (d), GIF (g), image (I), PNG (p), RTF (r), sound (s)
    • Display: informational (i), error (3)
  • Gopher+ protocol suite: +ABSTRACT display, +SCORE search result scoring, bulk attribute fetch ($), content negotiation (+VIEWS), and +ASK interactive forms
  • Gopher+ runtime toggle in Options menu (default: off) — type indicators shown regardless
  • Binary file downloads with progress dialog
  • Image save with format/dimension detection
  • HTML tag-stripping renderer for type h pages
  • CSO/ph phonebook queries with formatted results
  • Search queries (type 7) with dialog input

Browsing

  • Web browser-style chrome: address bar, back/forward/home, stop/go/refresh
  • Multi-window browsing (up to 4 simultaneous windows)
  • Local page cache with instant back/forward navigation
  • Favorites with persistent bookmarks
  • Browsing history in the Go menu
  • Find in Page with match highlighting

Display

  • 9 built-in themes (Light, Dark, Solarized, Tokyo Night, Green Screen, Classic, Platinum)
  • 256-color on System 7; monochrome on System 6
  • ROM-based SICN/cicn icons for Gopher types and navigation buttons (color on Mac II+, mono fallback)
  • 8 fonts (Monaco, Geneva, Chicago, Courier, New York; Helvetica, Times, Palatino on System 7) with independent size selection (9, 10, 12, 14)
  • Double-buffered rendering
  • Content-aware window zoom
  • Horizontal and vertical scrolling

Classic Mac Integration

  • Telnet handoff dialog for type 8/T items (launch Flynn or NCSA Telnet on System 7)
  • Print support via Printing Manager
  • Show Clipboard and Save As per HIG standard Edit and File menus
  • List Manager for Favorites with keyboard type-ahead and scrolling
  • AppleScript support: navigate and get URL commands for scripted automation (System 7+)
  • Drag and drop: drag links to Desktop as text clippings, drop URLs to navigate (System 7.5+)
  • MultiFinder, Apple Events, Notification Manager, and stationery pad support
  • Balloon Help and SICN menu icons on System 7
  • Dynamic window sizing for large screens and multi-monitor support
  • Aligned with Apple Human Interface Guidelines (1992)

Keyboard Shortcuts

Action Keys Notes
Back Cmd+[ Previous page
Forward Cmd+] Next page
Refresh Cmd+R Reload current page
Stop Cmd+. Cancel loading
Open Cmd+L Focus address bar
Find Cmd+F Search current page
Find Again Cmd+G Next match
New Window Cmd+N Open new browser window
Close Window Cmd+W Close active window
Save Page As Cmd+S Save as text file
Print Cmd+P Print current page
Add Favorite Cmd+D Bookmark current page
Manage Favorites Cmd+B Open bookmark manager
Copy Cmd+C Copy selection to clipboard
Undo Cmd+Z Undo address bar edit
Scroll up/down Arrow keys One row at a time
Scroll page Page Up/Down One page at a time
Top/Bottom Home/End Jump to start or end
Select link Up/Down (content) Navigate links with keyboard
Follow link Return Open selected link
Cycle focus Tab Switch between address bar and content
Quit Cmd+Q Quit Geomys

Themes

Geomys ships with 9 built-in themes selectable from Options > Theme:

Theme Type Description
Light Mono White on black, default. Works on all systems.
Dark Mono Black on white. Works on all systems.
Solarized Light / Dark Color Ethan Schoonover's Solarized palette.
Tokyo Night Light / Dark Color Based on the Tokyo Night color scheme.
Green Screen Color Phosphor green on black CRT aesthetic.
Classic Color 1990s web browser colors.
Platinum Color Mac OS 8/9 Appearance Manager inspired.

Mono themes work on all systems including the Mac Plus. Color themes require a Mac II or later with Color QuickDraw (detected automatically at runtime).

To create custom themes or learn how the theme engine works, see the full Theme Guide.

Building

Requires the Retro68 cross-compilation toolchain. Build it from source (68k only):

git clone https://github.com/autc04/Retro68.git
cd Retro68 && git submodule update --init && cd ..
mkdir Retro68-build && cd Retro68-build
bash ../Retro68/build-toolchain.bash --no-ppc --no-carbon --prefix=$(pwd)/toolchain

Then build Geomys:

./scripts/build.sh

Build Presets

Geomys supports fully customizable builds. Three presets cover common configurations:

Preset Windows Features Memory
full 4 everything ~1024KB
lite 2 core browsing, themes, clipboard ~505KB
minimal 1 bare-bones, smallest binary ~297KB

The default build uses the full preset. Select a preset with --preset:

./scripts/build.sh --preset minimal    # stripped, for 1MB Macs
./scripts/build.sh --preset full       # everything, 4 windows

Individual features can be toggled with --feature / --no-feature flags. Presets are applied first, then individual flags override:

./scripts/build.sh --preset lite --gopher-plus --styles
./scripts/build.sh --max-windows 2 --color --no-cache

See docs/BUILD.md for the complete list of build flags, feature details, memory costs, and examples.

Testing

Uses Snow emulator (v1.3.1) with a Mac Plus ROM and System 6.0.8 SCSI hard drive image. Snow supports DaynaPORT SCSI/Link Ethernet emulation for MacTCP networking.

Acknowledgments

  • Claude Code by Anthropic
  • Retro68 by Wolfgang Thaller
  • Snow emulator
  • wallops by joshua stein — MacTCP wrapper (tcp.c/tcp.h), DNS resolution (dns.c/dns.h), and utility functions. ISC license.
  • subtext by joshua stein — Additional utility and networking code. ISC license.
  • Flynn — Sibling Telnet client project and architectural reference. ISC license.
  • University of Illinois Board of Trustees — TCP networking code (tcp.c, 1990-1992)

License

ISC License. See LICENSE for full details.

About

A Gopher browser for classic Macintosh 68k systems

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors