<component type="desktop-application">
<id>fi.skyjake.clagrange</id>
<name>clagrange</name>
<summary>A Beautiful Gemini Client</summary>
<description>
<p>Beautiful Gemini client</p>
</description>
<pkgname>lagrange</pkgname>
<launchable type="desktop-id">fi.skyjake.clagrange.desktop</launchable>
<icon type="cached" width="64" height="64">lagrange_fi.skyjake.clagrange.png</icon>
<icon type="remote" width="64" height="64">fi/skyjake/clagrange/f49df2887e1641b60fa169059b5e12bc/icons/64x64/lagrange_fi.skyjake.clagrange.png</icon>
<icon type="remote" width="128" height="128">fi/skyjake/clagrange/f49df2887e1641b60fa169059b5e12bc/icons/128x128/lagrange_fi.skyjake.clagrange.png</icon>
<icon type="stock">fi.skyjake.clagrange</icon>
<categories>
<category>Network</category>
</categories>
<provides>
<mediatype>x-scheme-handler/gemini</mediatype>
<mediatype>x-scheme-handler/gopher</mediatype>
<mediatype>x-scheme-handler/spartan</mediatype>
</provides>
</component>
<component type="desktop-application">
<id>fi.skyjake.Lagrange</id>
<name>Lagrange</name>
<summary>A Beautiful Gemini Client</summary>
<project_license>BSD-2-Clause</project_license>
<developer_name>Jaakko Keränen</developer_name>
<description>
<p>
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.
</p>
<p>
Like the Gemini protocol, 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.
</p>
</description>
<pkgname>lagrange</pkgname>
<launchable type="desktop-id">fi.skyjake.Lagrange.desktop</launchable>
<icon type="cached" width="64" height="64">lagrange_fi.skyjake.Lagrange.png</icon>
<icon type="remote" width="64" height="64">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/icons/64x64/lagrange_fi.skyjake.Lagrange.png</icon>
<icon type="remote" width="128" height="128">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/icons/128x128/lagrange_fi.skyjake.Lagrange.png</icon>
<icon type="stock">fi.skyjake.Lagrange</icon>
<url type="homepage">https://gmi.skyjake.fi/lagrange</url>
<url type="bugtracker">https://github.com/skyjake/lagrange/issues</url>
<url type="contact">https://skyjake.fi/@jk</url>
<categories>
<category>Network</category>
</categories>
<provides>
<binary>lagrange</binary>
<mediatype>x-scheme-handler/gemini</mediatype>
<mediatype>x-scheme-handler/gopher</mediatype>
<mediatype>x-scheme-handler/spartan</mediatype>
</provides>
<screenshots>
<screenshot type="default">
<image type="source" width="2380" height="1377">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/screenshots/image-1_orig.png</image>
<image type="thumbnail" width="1248" height="722">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/screenshots/image-1_1248x722.png</image>
<image type="thumbnail" width="752" height="435">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/screenshots/image-1_752x435.png</image>
<image type="thumbnail" width="624" height="361">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/screenshots/image-1_624x361.png</image>
<image type="thumbnail" width="224" height="129">fi/skyjake/Lagrange/cebc120343b69d427e2e1dba78dfaeb7/screenshots/image-1_224x129.png</image>
</screenshot>
</screenshots>
<releases>
<release type="stable" version="1.18.3" timestamp="1728864000">
<description>
<ul>
<li>TUI: Fixed background colors in reduced color modes (less than 256 colors).</li>
</ul>
<p>The full release notes can be viewed inside the app by opening
the "about:version" page.</p>
</description>
<url>https://github.com/skyjake/lagrange/releases/tag/v1.18.3</url>
</release>
<release type="stable" version="1.18.2" timestamp="1728777600">
<description>
<ul>
<li>Misfin: URI format has changed to "misfin:address?message" instead of the previously used "misfin://address". The optional query string ("message") is used as the initial message contents if the upload dialog's text editor is empty.</li>
<li>Increased number of concurrent feed subscription requests (now 10, was 4).</li>
<li>Potential workaround for a crash during feed refresh.</li>
<li>Fixed redirection counting (and related warnings) when requesting Titan URIs.</li>
<li>Fixed perpetual load spinner animation when redirected to a Titan URL.</li>
<li>Updated UI translations.</li>
</ul>
<p>The full release notes can be viewed inside the app by opening
the "about:version" page.</p>
</description>
<url>https://github.com/skyjake/lagrange/releases/tag/v1.18.2</url>
</release>
<release type="stable" version="1.18.1" timestamp="1727568000">
<description>
<ul>
<li>TUI: Fixed potentially garbled output.</li>
<li>TUI: Only link Curses statically when using CMake option `ENABLE_STATIC`.</li>
<li>Updated UI translations.</li>
</ul>
<p>The full release notes can be viewed inside the app by opening
the "about:version" page.</p>
</description>
<url>https://github.com/skyjake/lagrange/releases/tag/v1.18.1</url>
</release>
<release type="stable" version="1.18" timestamp="1726790400">
<description>
<ul>
<li>Support for sending Misfin messages. "misfin://" links are opened in the upload dialog. You must import a Misfin identity before you can send a message.</li>
<li>Misfin: Identity sidebar indicates which identities are for Misfin.</li>
<li>Support for the Guppy protocol. Contributed by Dima Krasner.</li>
<li>Titan: Support for the "edit" parameter in opened Titan links. The target's contents are downloaded and displayed in the upload dialog's text editor. After editing the contents are uploaded back to the server.</li>
<li>Option to disable all TLS security warnings.</li>
<li>Opus audio playback using libopusfile (optional dependency). Contributed by Martin Chang.</li>
<li>The Curses-based `clagrange` can be built in addition to the GUI, not only separately. Removed the TUI build script.</li>
<li>Improved UI focus navigation: arrow keys move focus to an adjacent widget.</li>
<li>Context menus are keyboard-navigable with arrow keys, and the first letter of labels acts as a shortcut key to move focus on the item.</li>
<li>Bookmarked URLs are automatically updated after permanent redirection. (The original URL is still saved in bookmarks.ini.)</li>
<li>Line width expands dynamically (up to window size) to account for wide content like preformatted blocks and plain text lines.</li>
<li>The file path can be entered manually in the upload dialog. Previously only drag-and-drop was supported.</li>
<li>Right-clicking on the site banner shows a link context menu. (Linking to the capsule's root URL.)</li>
<li>Show a confirmation popup when saving something to the downloads folder.</li>
<li>Menubar: When opened via keyboard, reopen the most recently opened menu instead of "File".</li>
<li>The Return key is now a (hardcoded) keyboard shortcut for focusing the navbar URL field.</li>
<li>Page Information: Clarified meaning of "fingerprint". The type of hash (SHA-256) and what it was calculated from are specified (full certificate or just the public key).</li>
<li>Updated UI symbols for "Go to Root", remote bookmarks, and the navbar bookmark indicator/button.</li>
<li>Gopher: Proper parsing of Telnet line types `8` and `T`.</li>
<li>Noto Emoji font updated to support Unicode 15.1.</li>
<li>TUI: Often needed keyboard shortcuts are shown in place of menubar when the menubar is inactive, to make the UI more approachable.</li>
<li>TUI: Improved UI layout, targeting a minimum resolution of 80x25.</li>
<li>TUI: Improved text-mode rendering of various widgets.</li>
<li>Titan URLs were incorrectly opening the upload dialog when navigating through history.</li>
<li>Titan request in an open tab was resubmitted with empty content when launching the app.</li>
<li>Default Titan upload identity was sometimes chosen incorrectly; should match the active Gemini identity.</li>
<li>Upload dialog was missing a couple of UI strings for drag-and-drop errors.</li>
<li>Gopher: Gemtext formatting (headings, quotes, etc.) found on Gopher menu pages is now escaped so it doesn't unintentionally affect the visual presentation.</li>
<li>Gopher: Allow port number to be blank on `i` lines.</li>
<li>Query shortcuts (bang snippets) that already contain a `?` character were prefixed by a redundant `?`.</li>
<li>Link ordinals/letters (when navigating with Alt/Option or home row keys) now start at the actual top of the view.</li>
<li>Incorrect event handling order with multiple windows when there is a focused widget.</li>
<li>Missing focus indication in empty lists and the Snippets list.</li>
<li>Holding down Alt/Option (link number modifier key) while opening a query link would prevent the prompt dialog from having input focus.</li>
<li>Incorrect glyph spacing in a mixed-font preformatted block (fallback glyphs from different fonts).</li>
<li>Lede paragraph highlighting was misbehaving with monospace body font; now gets disabled.</li>
<li>Glyphs were sometimes partially cut off due to excessive background clearing on adjacent lines.</li>
<li>TUI: Color escapes were not applied when rendering.</li>
<li>TUI: Submenu chevron symbols were missing.</li>
<li>TUI: Potential hang when wrapping text.</li>
</ul>
<p>The full release notes can be viewed inside the app by opening
the "about:version" page.</p>
</description>
<url>https://github.com/skyjake/lagrange/releases/tag/v1.18.0</url>
</release>
</releases>
<content_rating type="oars-1.1"/>
</component>