Lagrange v1.1

A new release of Lagrange is upon us! After recovering from my vacation, I've been rounding things out by implementing a bunch of your feature requests and fixing more bugs.

⚠︎ Breaking changes

There are a couple of important things to note when upgrading.

When you first launch v1.1 your navigation history will be empty. This is because there is a new incompatible file format for the URL history, and the contents of the old one are considered invalid. Please use v1.0 to bookmark any pages that you regularly look up via the history. (See the end of the post for details.)

If you run both v1.0 and v1.1, note that the newer internal state files created by v1.1 are not readable in v1.0. This includes the currently open tabs, navigation history, and identities. In practice, v1.1 keeps these in new files but imports the old data when upgrading.

Addendum: v1.1.1

If you have a custom XDG_CONFIG_HOME directory, Lagrange will now use it. Copy your user files from "~/.config/lagrange" to the new location while the app is not running.

Importing certificates

It has been possible to manually copy .crt/.key files to Lagrange's "idents" directory, but now there is a GUI for importing certificates. It tries to be smart by allowing different input methods:

Limiting cache size

Lagrange keeps the page content cache in memory at runtime. This enables searching contents of navigated pages via the quick search feature. In previous versions the only restriction on cache size was that the navigation stack was limited to 50 entries per tab. However, if you opened a lot of tabs and loaded many large pages, it was possible that the cache grew quite large.

There is now a setting in Preferences for configuring the maximum cache size. The default is 10 MB. This should be large enough for typical Gemtext pages, while exceptional pages such as gemini://tanso.net/rfc/ will get quickly deleted from the cache. If you rely on the page content search feature, increasing the cache size may be a good idea providing you have some RAM to spare.

Open the Debug Information page to see the contents of the cache in more detail:

Navigation improvements

There is a new option in Preferences for displaying full link URLs in the bottom of the window when hovering over a link. This gives better visibility on exactly where links will take you, although I suspect in normal use this feature is less useful.

The home row keyboard navigation mode has been improved. There is a new mode for opening links in new tabs, and for activating hover on a link (to see the aforementioned full URL like with a mouse). Also, if there aren't enough keys available for all the visible links, pressing Period will reassign the keys for the next set of links. This way you can access all the links via the keyboard.

UI tweaks

A bold UI font was added to highlight important elements such as default buttons in dialogs. Bold text also makes it easier to notice unread entries on the Feeds tab when using the light mode UI.

In the Bookmarks list, bookmarks from remote sources are now grouped in a "folder" under the source bookmark. This doesn't actually behave like a folder except for the placement of the list items — in the future, I may use this design to implement actual bookmark folders.

Minor enhancements:

Other great stuff

Lagrange can now open Finger links. These use a fancy new icon:

There was an embarrassing bug in the "visited.txt" file that stores timestamps of all navigated pages for the History tab: the timestamps were shifting by a few hours when launching the app. This had some curious side effects like some feed entries switching back to unread state. Now the timestamps are saved in a different format, but this means that your previous navigation history will be cleared. The new navigation history is kept in a file named "visited.2.txt", so you can still manually open the old "visited.txt" in a text editor to look up any old URLs if necessary. Sorry for the inconvenience!

Speaking of the internal files, the binary ones now use an ".lgr" extension. These continue to use Lagrange's own internal data formats. The renaming makes really no difference in practice except it makes me slightly happier to get rid of the nondescript ".binary" files.

📅 2021-01-28

🏷 Lagrange

CC-BY-SA 4.0