2024-04-17

I recently came across a GUI gemini browser in the style of
qutebrowser

https://git.sr.ht/~lufte/vimini

I had been using qutebrowser as my primary browser for some time
last year, so I was immediately intrigued when I saw this on
bbs.geminispace.org.

it's written in rust. it was fairly easy to get it compiled on my
Mac. I made a color scheme based on Catpuccin-Mocha colors for
it, and I could now use it by running `vimini` from the command
line. the only hiccup was that it failed to create an SQLite
database on startup. that's easy to fix. I simply needed to
create the ~/.local/share/vimini directory.

https://catppuccin.com/palette

*** initial version of the theme

[styles.document.colors]
background_color = [0x1e, 0x1e, 0x2e]
text_color = [0xcd, 0xd6, 0xf4]
link_color = [0x89, 0xb4, 0xfa]
pre_color = [0x94, 0xe2, 0xd5]
header1_color = [0xf5, 0xe0, 0xdc]
header2_color = [0xf5, 0xc2, 0xe7]
header3_color = [0xcb, 0xa6, 0xf7]
quote_color = [0xa6, 0xe3, 0xa1]
list_item_color = [0x74, 0xc7, 0xec]

*** note - another (minor) hiccup - the client cert

Most gemini clients I've used have you configure client
certificates by specifying two files, one to the (public) cert,
and the other to the (private) key. Vimini requires the two to be
in the same file. that's easy to do:

   cat cert.pem key.pem > certkey.pem
   echo $'[pki]\n'"client_certificate_path=\"$PWD/certkey.pem\" \
        >> ~/.config/vimini/config.toml

unfortunately, it only supports one certificate and it is enabled
for *all URLs* you visit, as of writing.

***

anyway. having to run the command from my command line to launch
it each time is a little annoying. I would generally want for GUI
apps to be MacOS "apps" in my /Applications folder, because I
wish to use Alfred to launch it -- either than or be able to be
pinned in my dock to launch it easily. this is how I launch
Lagrange. although it is quite convenient to have the binary in
my path and be able to use it for purposes such as scripting or
setting environment variables (such as $EDITOR, $BROWSER), I
don't wish to open my terminal *just to* launch a GUI app.

https://www.alfredapp.com/


turns out, creating my own minimal application given only a
binary is actually really, really easy!

A single stack exchange result was enough to get me satisfied and
move on.

https://apple.stackexchange.com/questions/224394

1. mkdir Vimini.app
2. ln -s $PWD/target/releases/vimini $PWD/Vimini.app/Vimini
  (note that according the the SE answer, the name of the binary
  must be the same as the name of the .app directory)
3. open .
4. drag the Vimini.app to /Applications
5. use cmd+shift+4 to take a snip of some thing, optionally after
  opening Vimini to use it for the screenshot
6. Select "Get Info" on the /Applications/Vimini.app.
7. Click on the (currently unset) icon on the top left corner.
8. cmd+v

and now, I have a minimal Vimini.app in my Applications with my
custom application icon!

when upgrading, I just need to cd into the source directory,
rebuild and the next time it's launched it should be on the new
release.

***

for now, my primary GUI client is probably still Lagrange. Vimini
is promising but still needs some work to be smoothly usable as a
daily driver. although Lagrange's interface is a lot more complex
and does not (yet?) support vim bindings, it still has a *lot* of
features I never know whether I might need, but would be great to
have when I want it.

I'm quite impressed how easy it was for Vimini to get up and
running, and the experience is *almost* as good as qutebrowser.
it does give the nostalgic effect, too.