Lagrange

Lagrange is a cross-platform 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.

Screenshot (showing "skyjake.fi/lagrange/")

Features

help.gmi (release branch)

Downloads

Prebuilt binaries are available for Windows 64-bit, macOS 10.13 or later (arm64 and x86_64), Linux AppImage (x86_64 and armhf), and Android:

Download Lagrange

Mobile

At the moment, Lagrange is not available on the iOS App Store or Google Play Store. Instead, beta versions can be downloaded from TestFlight and as APKs:

iOS: Beta releases on TestFlight
Android: Latest beta APK (~22 MB)

Source

You can build from source on POSIX-compatible platforms:

Source code and resources (.tar.gz, 11.4 MB)

What's new?

News and announcements (@lagrange@skyjake.fi)
Git tags Gemini feed
Releases RSS feed

v1.19

Release announcement

Feedback

If you have questions, comments or improvement ideas, you can reach me via:

s/Lagrange
Bug reports and feature requests
GitHub issue tracker
Codeberg: PRs only
UI translations (Weblate)
@jk@skyjake.fi
Email (plain or encrypted)

Known issues

Flatpak

Flatpak applications run in a sandbox that limits their access to the rest of the system. At the moment, Lagrange has not been fully adapted to use Flatpak Portal APIs, so the following are known issues:

Wayland

The environment variable `SDL_VIDEODRIVER=wayland` can be used to force SDL to use Wayland instead of X11. However, SDL does not have full support for Wayland at the moment. You should set the Lagrange CMake build option ENABLE_POPUP_MENUS to NO. If there are issues with resizing windows, also set ENABLE_RESIZE_DRAW to NO.

Documentation and tutorials

OS-specific installation instructions
How to compile (in README.md)

The repository README details the basic build steps, configuration options, and has a few platform-specific notes.

Alex Schroeder: Capsule update using Lagrange on the phone

A thorough walkthrough of how to upload text and files via Titan using the (beta) version of Lagrange on an iPhone.

See also

Gemlog posts about Lagrange
Font Library
Authors and contributors 🥇
Emoji test page
Home