💾 Archived View for josipantolis.from.hr › gemlog › devlog-06-the-launch.gmi captured on 2024-08-18 at 17:30:40. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
Published on: 2021-12-03
I have some exciting news: Starfish, my Gemini browser for elementary OS, was published on AppCenter! In fact, if you are by any chance using elementary you can go ahead and install it right now:
One convenient thing about elementary app development these days is that it's all based on Flatpak. So you can theoretically install Starfish on other distributions too. Unfortunately the styling breaks on non-elementary distros for now. One of my planed future improvements is to fix this. I've laid out a sort of development plan on Starfish's GitHub page, so if you'd like to report a bug or request a feature head over to:
Starfish issue tracker on GitHub
With the happy news out of the way, here's a little overview of how the app currently stands featurewise.
I've most recently focused on gemtext rendering, and I'm pretty happy with the end result. I improved link handling, so now the entire row gets highlighted when mouse pointer hovers over a link. I added an overlay bar at the bottom of the windows with full link URI. These are small improvements, but I find they make a real difference in day-to-day usage of the app.
I expended a bit on the theming support I set up earlier. Now links get colored in OS level accent color. This makes them fit in with the rest of UI a bit better and was just fun to achieve. I'll probably expand on the theming in a future update. Since I'm pretty happy with how gemtext looks right now full theming support is probably little further down the line.
I added a table of contents that lists current page's headings and an option to search for a text on the current page. These make navigating larger gemtext files way easier. I can now actually find stuff on the Gemini specification page. 😅️
I'm also generally happy with site navigation. The go up and go to root actions that I've written about a while ago¹ remain useful. I find myself missing them whenever I switch to some other Gemini client that doesn't support them.
I'm proud of the Introduction to Gemini text that Starfish ships with. You can find it in online form too². I hope it helps newcomers to Geminispace find their way around. As a community we can be a bit technical, so I tried to make Gemini more approachable to non-tech users. I hope it makes a difference!
Lastly, I'm happy with how certificates work right now. My handling of server certificates was influenced by a blog post from ew0k³. I ended up just warning user if a certificate has expired, while requiring them to accept a new certificate whenever it changes. I also support client certificates, with an option to create and manage them from within the app. This helps with the same "friendly to non-technical users" agenda.
1: devlog about Gemini navigation
3: Your Gemini Browser and Server are Probably Doing Certificates Wrong, blog post by ew0k
And now for all things I'm itching to fix!
Address bar. Yoicks! It's rather bad currently. You have to write out a full Gemini URI, otherwise it will take whatever you wrote and try to resolve it as a relative link to the currently loaded URI. I'm yet to encounter a situation in which this would be useful. I'm planning on integrating address bar with one of Gemini search engines and just offer search results for non-URI entries. I'm also planning to implement some sort of history, so that suggestions of previously visited sites pop-up as a user types.
Image, download and input pages are also in dire need of attention. I originally implemented them as sort of minimum viable solutions. And yeah, they are functional (for a most part), but far from intuitive or easy to use. So I'll be revisiting them soon!
Lastly, there's a general issue of navigation. I did not pay too much attention to keyboard shortcuts and "selectability" of various Gtk widgets. Sure, Ctrl+r will reload the current page. But any kind of keyboard based navigation will break the first time a user ties to follow a gemtext link. After making keyboard navigation a first class citizen I'm planning to take a look at integrating Gtk TextView, which is used to render gemtext, with a screen reader. This is a prerequisite for making the app accessible for visually impaired users.
Plus, there are smaller updates such as defining an icon for gemtext files or adding support for favicon protocol¹.
1: RFC: Adding Emoji Favicons to Gemini by Michael
All in all, I'm thrilled that the app is out in the wilds! And I still have a lot of improvement ideas for it.