Lagrange is a desktop GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines.
Like Gemini, Lagrange has been designed with minimalism in mind. It depends on a small number of essential libraries. It is written in C and uses SDL for hardware-accelerated graphics. OpenSSL is used for secure communications.
- Beautiful typography using Unicode fonts
- Autogenerated page style and Unicode icon for each Gemini domain
- Smart suggestions when typing the URL — search bookmarks, history, identities
- Sidebar for page outline, managing bookmarks and identities, and viewing history
- Multiple tabs
- Identity management — create and use TLS client certificates
- Audio playback: MP3, Ogg Vorbis, WAV
- And more! Open `about:help` in the app, or see help.gmi
On macOS you can install via a Homebrew tap:
$ brew tap skyjake/lagrange
$ brew install lagrange
On Linux and other platforms, you'll need to compile the source tarball (CMake).
- (v1.0.3) Bug fixes: improved font glyph caching; percent-encoding copied URLs; incorrect trimming of feed entry titles; quote blocks break on empty lines; quote border line on empty lines; redirection in background tab; missing "gopher:" macOS scheme handling. Default port is omitted from Gemini URLs.
- (v1.0.2) Bug fixes: wrong URL in navbar after opening tab in background; trusting server certificate with multiple open tabs; opening feed entries with modifier keys; editing identity notes; verifying domain with CN vs. SAN.
- (v1.0.1) Fixed cursor positioning in input fields and percent-encoding of query strings.
- Remote bookmarks: use links on any Gemini page as additional bookmarks.
- Exporting and importing local bookmarks.
- Bookmark links via context menu.
- Opening sidebar items in a new/background tab.
- Links with an unrecognized scheme can be opened in the default browser.
If you have questions, comments or improvement ideas, you can reach me via: