I had more free time than anticipated over the holidays so there was some nice progress with Lagrange. While v1.10 is heavily mobile-focused, there are a couple of useful improvements for the desktop, too.
Recent changes in the iOS builds:
I finally managed to sort out my Android build environment (i.e., compile all the dependencies with the NDK) and kicked off the Android port with a couple of alpha builds. So far these have minimal adaptation to the Android OS and its general UI conventions.
There is a new F-Droid repository where you can install the app and have it be updated automatically:
NOTE: This is not the same repo that I initially announced on Mastodon. That one ("lagrange-fdroid") will be replaced by this new one.
Part of the recent iOS work included fixing several glitches with swipe navigation. It's now working reliably enough to be used on the desktop, too. I've enabled it on macOS so one can do the usual macOS swipe gestures for navigating backward and forward in history.
Under the hood, I improved scroll event handling to bypass SDL entirely, processing the native events directly. In previous releases I've had to apply a custom patch to SDL to enable the per-pixel inertia scrolling events, but now that's no longer needed — the fewer custom hacks, the better.
(It should also be noted that SDL 2.0.18 did make some improvements here, too, by including the precise scroll amounts in the events in addition to the less precise step-based values.)
Actions of the three buttons on the left and the Home button on the right can be customized by right-clicking on the button and selecting a new action from the menu.
(Note that in the mobile version, toolbar actions are configured in Settings.)
The 👤 toolbar button is intended to provide additional functionality related to identities, and version 1.10 makes some improvements here. If you happen to use more than one identity on one capsule, the alternative ones are remembered (in "sitespec.ini") and the 👤 menu lets you quickly switch between them. This is much more convenient that switching between certs in the Identities sidebar.
For example, I'm using this for switching between my two AstroBotany accounts.
Viewing images is part of the app's core functionality. While I still haven't gotten around to adding a proper maximized image mode, v1.10 cleans up how inlined images are presented. Previously, the metadata (media type and size) could overlap the link's label text, so the metadata has been moved out of the way under the image.
Images now get inlined depending on the media type sent by the server even if the link does not have a common image file extension like ".jpg".
Inline downloads (when you use "Download Linked File") are now more interactive. Clicking on a finished download will attempt to open it in the operating system's default viewer app, and right-clicking on the download shows a menu of relevant actions like "Show Downloads", or (only on macOS currently) revealing where the file is using the Finder.
The information displayed when hovering on links was initially intended to be on the same line as the link itself, but that doesn't really work in many cases due to space constraints. Therefore, when I added the feature to show the full URL, it went to the traditional spot in the bottom of the window. It's been a bit weird having link hover information in two places, so I've now combined them. This also gave room to show more information. Perhaps most importantly, you can now see which identity will be used when opening a link.
The highlight on currently open links was getting a bit messy when it extended all the way to the widget edges, overlapping any elements there, so I've refined it a bit:
Another significant UI change is in the Upload dialog. One can now edit the path of the URL for the upload, to set an appropriate file name. I feel this is more intuitive than first entering a missing URL in the navbar and then opening the upload dialog.
When it comes to the page theme, there is one tweak. Links that use the Gemini subscriptions format (YYYY-MM-DD Title) are recognized and the date part will be slightly de-emphasized to improve readability of a list of entries.