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.
Features
- Beautiful typography with full Unicode support
- 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 and split view
- Identity management — create and use TLS client certificates
- Audio playback: MP3, Ogg Vorbis, WAV
- Curses-based TUI as an alternative to the graphical interface
- And more! Open `about:help` in the app, or see help.gmi
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:
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:
Source
You can build from source on POSIX-compatible platforms:
What's new?
v1.19
- New toolbar tabs: site structure, subscription manager, vertical tabs.
- Bookmarks can be filtered in the sidebar.
- Quoted text can be shown in regular style or italics.
- Added settings to choose which toolbar tabs are shown, and on which side.
- Dropdown menu for switching between toolbar modes.
- Reorganized settings: there is again a Fonts page, and a Theme page for document theming.
- Added keybindings for sidebar shortcuts.
- Setting for hiding the tab bar. You can manage open tabs in the toolbar "Tabs" tab.
- JPEG XL images can be opened if libjxl is available when compiling. (Courtesy of Christoph Liebender.)
- Mobile: Modernized appearance of UI widgets and layout.
- Fixed various UI glitches and other bugs.
Feedback
If you have questions, comments or improvement ideas, you can reach me via:
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:
- Unable to open HTTP/HTTPS links via the default browser.
- Multiple instances of the application overwrite each other's data.
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
The repository README details the basic build steps, configuration options, and has a few platform-specific notes.
A thorough walkthrough of how to upload text and files via Titan using the (beta) version of Lagrange on an iPhone.