``` __ __ __ ___ | /\ / _` |__) /\ |\ | / _` |__ |___ /~~\ \__> | \ /~~\ | \| \__> |___ ``` # Release notes ## 1.1 * Added identity importing: existing client certificates in PEM format can be imported from the current page, from clipboard, or from drag-and-dropped files. * Added a bold UI font. It is used for unread feed entries and default dialog buttons. * Added support for Finger links (courtesy of John Cowan). * Added option to show full link URL when hovering on it. * Added keybindings for page reload, opening link in new tab via home row keys (${SHIFT+}F), and hovering on a link via home row keys (H). * Better alignment of quick lookup result icons and labels. * Remote bookmarks are grouped under their source in the bookmark list. * A bookmark's icon is updated after loading the page so it matches the site. * Trusting a new server certificate manually will update the current page without reloading. * Middle-clicking on a tab title closes the tab. * Fixed timestamps of visited URLs. Your browsing history will be erased but can still be found in "visited.txt". ## 1.0.3 * Improved font glyph caching: only rasterize glyphs when drawing text, and retry after failure. This makes initial document layout faster and avoids issues with permanently lost glyphs. * Fixed parts of text disappearing when the glyph cache fills up. The cache also uses less memory now. * Fixed percent-encoding of spaces when copying URLs to clipboard. * Fixed feed entry context menu showing the wrong menu item for Mark as Read/Unread. * Fixed parentheses and brackets being trimmed from feed entry titles. * Fixed quotes appearing continuous even when there are empty lines in between. * Fixed quote border line not showing up on empty quote lines. * Fixed handling of redirection in a background tab — redirected URL would open in the current tab. * Fixed Gemini URL normalization with regard to default port. * Fixed a very minor memory leak. * Fixed missing "gopher:" URL scheme registration on macOS. ## 1.0.2 * Fixed URL input field showing the wrong URL when opening tabs in the background. * Fixed trusting a renewed server certificate when multiple tabs are open. * Fixed opening sidebar feed entries in new/background tab with modifier keys. * Fixed editing identity notes. The entered new notes were not being applied. * Server certificate domain name check accepts a matching CN even when SAN doesn't match. ## 1.0.1 * Fixed percent-encoding of the query string. * Fixed cursor positioning in input fields. ## 1.0 * Added remote bookmarks. Any bookmarked 'text/gemini' page with the "remotesource" tag is a source of remote bookmarks. Each link on the page is shown as a remote bookmark in Bookmarks. * Added a way to export bookmarks via the special page "about:bookmarks". The page can also list all bookmarks by tag or by creation date. * Added context menu item for duplicating a bookmark. * Import all links on a page as bookmarks. (Importing tags is not supported in this version.) * Links can be bookmarked via context menu. * Open links with an unrecognized scheme in the default browser. * Open sidebar items in new/background tab via context menu or modifier keys. * "Edit Feed..." menu item shows the Feed Settings dialog. * Removed unimplemented menu items. ## 0.13.2 * Added a little spinner to indicate ongoing requests. * Fixed very thin progress bar on HiDPI displays. * Fixed link to Help page from the Identities sidebar tab. * Fixed incorrect text colors in the UI (e.g., selected lookup result). * macOS: Disable menu shortcuts for navigation when editing text to prevent accidental page changes. ## 0.13.1 * Fixed build failure on Linux. ## 0.13 * Support for Internationalized Domain Names (IDN) in network requests. * Percent-encoded URL paths are shown decoded in the UI, and encoded in outgoing requests. * Added option to disable decoding of percent-encoded paths for the UI. * Quick search via URL bar shows entries from subscribed feeds. * Added keybindings for zooming. * Improved usability of page content searching (${CTRL+}F, Escape). * Clicking on a certificate warning shows the Certificate Status dialog. * macOS: Keyboard shortcuts in native menus are updated according to bindings. * Tweaked handling of Emojis in monospace text. They are given more space as needed, but the original monospace spacing is restored after whitespace. * Fira Mono replaced with Iosevka Term Extended. * Fixed use of variable-width fonts in input fields. * Fixed handling of Unicode joiners and modifiers (by ignoring them, since we lack the glyphs). * Fixed a layout issue with sidebars where the bottommost content line was occasionally not visible. * Fixed exit when a hook program didn't read its input. * Fixed crash when using an identity (with LibreSSL on OpenBSD). ## 0.12.1 * 'text/*' content falls back to plain text. * Minimized visual artifacts in Unicode box-drawing characters (overlapping/gaps) by fine-tuning glyph scaling. * Fixed truncated tab titles when opening tabs in background. * Fixed possible exit if hook program not found (SIGPIPE). * REQUEST_URL is set in the environment when running MIME hooks. * "about:debug" lists the configured MIME hooks. * macOS: Fixed excessive CPU usage while idling. ## 0.12 * Added MIME hooks: pipe Gemini responses through external programs for arbitrary processing. (See "about:help" for usage.) * Added a right-hand sidebar; have a sidebar on the right or on both sides at once. * Added a clear warning banner when there is an issue with the server's TLS certificate. * Follow Weiph/pikkulogs — subscribe to new headings on pages. * Added UI for subscribing: feed name, entry type (Gemini feed or new headings). * Added keyboard shortcut ${SHIFT+}${CTRL+}D for subscribing to page. * Feeds sidebar is capped to 100 entries. "about:feeds" shows all known entries. * Network connections have a timeout in case server doesn't respond at all. * Adjusted spacing before/after links to reflect use of empty lines in the source. * Clicking on page area unfocuses URL input field. * Added keybindings for switching tabs. * Gopher: Query links have a 🔍 icon. * Fixed handling of "file:///" URIs on Windows. * Fixed misaligned Unicode box-drawing characters. * Fixed missing error page if status code is unknown (torture test 34). * Fixed detection of invalid headers (torture test 39). * Fixed rendering of soft hyphens (torture test 50). ## 0.11 * Added feed subscriptions. A subscription is any bookmark with the "subscribed" tag. Subscribed feeds are refreshed in the background while Lagrange is running. * Added a new sidebar tab for feeds. * Added "about:feeds" to show entries from all subscriptions on one page. * Added icons for special bookmark tags, and context menu items for toggling "homepage" and "subscribed". * Improved stability: fixed data races, undefined behavior, thread leaks. * Wide preformatted blocks can be scrolled horizontally with the mouse wheel or trackpad. * Line widths are slightly narrower for improved readability. * Light mode UI color palette is less saturated, more sepia-toned. * Tall menus/dialogs can be scrolled with the mouse wheel. * Improved download progress updates: never update more often than the UI can be refreshed. * macOS: Control-Click works as a right mouse click. * Unix: Location of `xdg-open` is no longer hardcoded. * Fixed large downloads (10 MB+) stopping prematurely due to a decryption error. * Fixed window contents not being updated during window resizing. * Fixed selection/search markers disappearing when scrolling down. * Fixed displaying of "about:" URLs in history. * Fixed build on FreeBSD (tested on 12.1). ## 0.10 * Added option to load inline images when pressing Space or ↓ for a more focused reading experience — just keep tapping a single key to proceed. If an image link is visible, it will be loaded instead of scrolling. This option is disabled by default. * Added context menu item to save inline images to Downloads. * Added an option to use a proxy server for Gemini requests. * Added a new keyboard link navigation mode focusing on the home row keys. The default keybinding for this is "F". * Added a keybinding to activate keyboard link modifier mode. The keyboard link keys are active while the modifier is held down. The default is ${ALT}. * Clearing and resetting keybindings via a context menu. * Added a Window tab in the Preferences dialog; moved some of the settings around for better organization. * Improved page search visualization: if the match is inside a link URL, the link icon is now highlighted. Previously these matches were not visualized in any way. * Improvements to URI parsing with regard to RFC 3986. Cases that are handled better are double slashes, query-only relative URIs, relative URIs that begin with a tilde, IPv6 literals, username in the authority. * Replaced EB Garamond with Tinos for improved readability. * Replaced Kosugi Maru with Noto Sans CJK JP for better glyph coverage. * Fixed font sizing of level 3 headings. * Fixed download progress indicators sometimes remaining visible even after leaving the page. ## 0.9 * Clicking on the top banner of a page (where the site icon and hostname are shown) navigates to the root directory of the site. * Added menu items and keybindings for navigating to site root or the parent directory. * Added option to use a monospace body text font on all Gemini and/or Gopher pages. * Remember redirect source URLs as visited but not shown in the History tab. Note that "visited.txt" is no longer fully compatible if opened in an older version of Lagrange. * "gopher:" scheme is allowed in command line arguments. * XDG: .desktop file declares support for opening Gopher URLs. * Fixed an issue where copying the URL input field would not place anything on the clipboard. * Fixed the Lagrange window visibly changing position during launch. * Fixed crash when a single percent sign was typed in an input field. * macOS: Fixed native menu keyboard shortcuts causing redundant command activations. * macOS: Fixed assigning keybindings when there is an equivalent native menu shortcut. ## 0.8.1 * Fixed potential lockup when navigating back to a query prompt. * macOS: Improved handling of scroll wheel events from a mouse. ## 0.8 * Added support for Gopher. * Added support for the full palette of 8-bit ANSI foreground colors. * Added option to disable smooth scrolling. * Added button to manually set server certificate as trusted (if the certificate is valid but untrusted). * Added keybindings for Back/Forward navigation. * Added a context menu item for opening HTTP links in the default browser even when a proxy is configured. * Revised identity creation dialog: changed field order, added warning about temporary identities not being saved. * ${CTRL+}Click opens tab in background, ${SHIFT+}${CTRL+}Click opens as foreground tab. The same modifier keys work with keyboard navigation. * Improved word wrapping of emoticons (:D). * Automatic redirects allowed when the destination URL uses the same scheme as the originating URL. For example, when using a proxy, HTTP(S) is allowed to automatically redirect to other HTTP(S) URLs. * Windows: Fixed handling of drag-and-dropped and command line file paths. ## 0.7.2 * Fixed parsing of the server's response. In some cases it was possible that the response was only partially read. * Fixed handling of TLS/SSL connection being closed without the socket being closed. ## 0.7.1 * Fixed build on OpenBSD. * Fixed build with LibreSSL. * Fixed a potential crash at app shutdown. * Fixed a potential crash when a thread exits. * Fixed a potential lockup when a thread exits. * Linux/Unix: Open "mailto:" links with xdg-open instead of the web browser. ## 0.7 * Basic set of user-configurable key bindings. * Sidebar: Added a "New Identity" button and a link to "about:help" if there are no identities. * Faster drawing of certain UI elements: site icon and current heading in the left margin, unfocused input fields, timestamp at the end of the page. * History is not updated until a network request finishes. * Improved opening connections when multiple IP addresses are found for a hostname. * Fixed handling of TLS/SSL errors and hostname lookup problems — an error page is shown. * Fixed an issue where window contents were not being updated immediately after the window gets exposed when using, e.g., openbox or dwm. ## 0.6 * Added an indicator to visualize progress of network requests. * Added new color themes for page content: Colorful Light, Black, Gray, Sepia, High Contrast. * Added page content color theme selection in Preferences. * Added quote indicator option: icon or vertical line. * Added a new font for Korean glyphs. * Smoother smooth scrolling, making it easier to keep one's eyes on the content throughout the motion. * Windows: Register Lagrange as a handler of "gemini:" URLs. * macOS: Fixed glitchy window dragging during audio playback. * Fixed timestamps of cached pages. ## 0.5 * Added MP3 support in the audio player (using mpg123). => https://mpg123.org/ mpg123: MPEG audio player and decoder library * Added volume control in the audio player. * Metadata in Vorbis and MP3 audio content (title, artist, etc.) is shown in the audio player menu. * Added new serif fonts: EB Garamond and Literata. * Allow configuring separate fonts for headings and body text for better visual distinction. * Preferences dialog remembers the previously open tab. * Paste from clipboard on middle mouse button click. * Open links in new tab with middle mouse button. * Fixed failure to find resources when launching via PATH. * Fixed color saturation setting not affecting the default color theme. ## 0.4.1 * Set keyboard focus to URL input field after opening a new tab. * Pause other audio players when a new one is started. One can still choose to have multiple audio players playing simultaneously by unpausing them again. * Fixed dismissing an audio player that is still downloading content. The partially downloaded data is discarded. * Fixed saving pages whose name starts with a tilde. * Fixed saving pages restored from cache. * Windows: The app is now distributed as an installer created with Inno Setup. * Windows: All binaries are signed. ## 0.4 * Added audio playback with support for streaming. Supported audio formats in this release are WAV (PCM, mono/stereo, 8/16/24/32 integer/float) and Ogg Vorbis. Shoutout to Sean Barrett et al. for stb_vorbis: => https://github.com/nothings/stb stb: single-file public domain libraries for C/C++ * Added inline audio player that works like inline images. Clicking on an audio link opens the audio player below the link (works for URLs that have file extension .wav/.ogg). * Visual fine-tuning: increased Fira Sans line spacing; list bullets use an accent color; adjusted accent colors in the light mode palette. * Sidebar has a maximum width — the document must remain visible. * Windows: Support for HiDPI displays and the system UI scaling factor. The UI will be scaled according to your settings automatically without having to adjust the UI scaling in Preferences. * macOS: Use OpenGL on 10.13 for potentially better compatibility. * Fixed a memory leak when closing tabs. * Fixed unnecessary continual window redrawing related to the scrollbar hover outline. ## 0.3 * Added style customization. * Added new font option: Fira Sans. * Added a setting for maximum line width. * Added a setting for adjusting color saturation. * Added an option for "Outline on scrollbar": page outline appears when mouse is hovering over the scrollbar. * Added an option for site icon and current top heading that appear when the window is wide enough. * Added tabs in Preferences for better grouping. * Added "Open Link in Background Tab" in link context menus. * More flexible text selection behavior when starting on empty space. * Smaller first paragraph font size. * Fixed centering of popups so they remain centered when window is resized. * Fixed sizing and alignment of Unicode symbols in preformatted text. * Fixed sizing of Japanese glyphs in UI text (e.g., tab titles). ## 0.2.1 * Fixed window size/state restoration issues, e.g., after window is maximized. * Windows: Fixed text disappearing when window is resized. ## 0.2 * Added an icon for quote paragraphs. * Added Downloads folder to Preferences. * Added "Save to Downloads" menu item (${CTRL+}S) for saving page contents. * Added a download progress indicator in the URL input field. * Added a progress indicator for inline image fetching. * Added `--sw` option to force software rendering. * Added macOS touch bar buttons for Back, Forward, Find, New Tab, and sidebar modes. * Home button opens a random bookmark with the "homepage" tag. * Improved context menu when right-clicking on links or the page. * Recognize and handle "mailto:" links. * Fixed behavior of images on single-image pages; cannot be hidden like inline images. * Fall back to software rendering automatically if accelerated graphics are not available. * Minor bug fixes. ## 0.1.1 * Fixed a potential crash at startup. * Fixed bug where user's query input is handled by all tabs. * Default sidebar mode is Bookmarks. * Windows: Fixed opening HTTP links in the default web browser. ## 0.1 * The major version zero is reserved for non-feature-complete releases. * 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. * Light and dark UI themes. * Select and copy text with the mouse. * Find text on the page. * Open image links inline on the same page. * Open links via keyboard shortcuts. * Instant back/forward navigation. * Smooth scrolling. * Scaling page content (50%...200%). * Scaling factor for the UI (for arbitrary monitor DPI). * Persistent app state — tabs and history are restored on next run.