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.
Screenshot (showing "about:lagrange" on macOS)
Prebuilt binaries for Windows and macOS can be found on git.skyjake.fi:
https://git.skyjake.fi/skyjake/lagrange/releases
If you have questions, comments or improvement ideas, you can reach me via:
GitHub: Bug reports & feature requests
This is how to build Lagrange in a Unix-like environment. The required tools are a C11 compiler (e.g., Clang or GCC), CMake and pkg-config.
❶ Download and extract a source tarball. Alternatively, you may also clone the repository and its submodules:
git clone --recursive --branch release \ https://git.skyjake.fi/skyjake/lagrange
❷ Check that you have the dependencies installed: SDL2, OpenSSL, libpcre, zlib, libunistring. For example, on macOS this would do the trick (using Homebrew):
brew install cmake sdl2 openssl@1.1 pcre libunistring
Or on Ubuntu:
sudo apt install cmake libsdl2-dev libssl-dev libpcre3-dev \ zlib1g-dev libunistring-dev
❸ Create a build directory.
❹ In your empty build directory, run CMake:
cmake {path_of_lagrange_sources}
❺ Build it:
cmake --build .
❻ Now you can run "lagrange", "lagrange.exe", or "Lagrange.app".
To install to "/dest/path":
cmake {path_of_lagrange_sources} -DCMAKE_INSTALL_PREFIX=/dest/path cmake --build . --target install
This will also install an XDG .desktop file for launching the app.
When compiling on macOS, there are a couple of things to note: Homebrew's OpenSSL needs to be manually added to pkg-config's search path, and SDL requires a small patch to enable smooth trackpad momentum scrolling to work as expected.