Dactyloidae/browser/gopher
2026-09-19 10:47:07 -07:00
..
components Pt..2 2026-09-19 10:47:07 -07:00
content/chrome Pt..2 2026-09-19 10:47:07 -07:00
defaults/preferences Pt..2 2026-09-19 10:47:07 -07:00
locale Pt..2 2026-09-19 10:47:07 -07:00
jar.mn Pt..2 2026-09-19 10:47:07 -07:00
LICENSE.txt Pt..2 2026-09-19 10:47:07 -07:00
moz.build Pt..2 2026-09-19 10:47:07 -07:00
README.md Pt..2 2026-09-19 10:47:07 -07:00

libgopher

libgopher (a fork of overbiteff) lets you browse Gopher sites directly in legacy Firefox-based browsers such as Dactyloidae.

In this tree it is built into the browser rather than installed as an add-on. The browser registers the Gopher protocol handler during startup, so gopher:// links work immediately in a new profile.

Built-in integration

The integration is split into the same pieces used by other browser-native features:

  • moz.build adds the component files, default preferences, and chrome package to the browser build.
  • components/protocol.manifest registers the Gopher protocol.
  • components/protocol.js implements Gopher networking, directory conversion, internal resources, and supported item types.
  • jar.mn packages the libgopher content and locale namespaces.
  • defaults/preferences/gopher.js initializes the build marker preference.

The browser-level build entry is browser/moz.build; no XPI installation or add-on manager registration is required.

Supported URLs

The primary entry point is any Gopher URL, for example:

gopher://gopher.floodgap.com/

There are no built-in informational about: pages; navigation starts from a normal gopher:// URL.

The protocol handler also serves the generated internal resources used by Gopher directory pages, including icons, CSS, and the page interaction script. These resources are addressed through gopher:///internal-* URLs and are resolved from the packaged content/chrome/ directory.

Gopher item types

Directory conversion includes the traditional Gopher item types for text, menus, CSO/ph, errors, archives, searches, Telnet, images, sound, HTML, movies, PNG, PDF, and generic binary content. Unknown types receive the generic icon and label instead of preventing the directory from loading.

Profile customization

The protocol handler first checks the profiles gopherchrome directory for replacements for internal CSS, JavaScript, and image resources. This allows local visual or behavior changes without editing the browser package.

The following preferences are recognized when present:

  • network.gopher.dotless — enables dotless text cleanup.
  • network.gopher.fixitype — enables the legacy item-type correction behavior.
  • network.gopher.buildmark — records the initialized libgopher build number.

Only the build marker is given a default value by the built-in preference file; the other options remain opt-in.