Package: mcross
McRoss is a minimal and usablegemini://browser written in python and tkinter, meaning it Just Works (tm) on any
self-respecting desktop OS. I use and test it on Linux & Windows, but it should
also run fine on macOS or any of the BSDs.It currently looks like this:Surfing plaintext and gemini content is already working well. The catch is it
currently doesn't support downloading binary content and TOFU TLS verification.
See feature checklist below for more details.See myblog postfor the rationale behind this project.InstallationDependencies are:python3.7+tkinteridlelibidlelibis supposed to be included in the standard library but some linux
distros split it into a separate package which you'll need to install manually.
I know at leastUbuntu and Void Linuxdo this.On Ubuntu:sudoaptinstallpython3python3-pippython3-tkidle3
pip3install--usermcross# make sure ~/.local/bin is in $PATH first of coursemcrossOn Arch:sudopacman-Spythontk
pipinstall--usermcrossAlso consider usingpipxfor a cleaner,
better isolated installation.Better distribution methods to be explored later.
Maybe it's finally time to try nuitka?UsageRunmcross -hto get a full list of CLI arguments. The same arguments can
also be defined in a TOML config file: runmcross-infoto know where this
file should be for your OS. For example, running mcross like this:mcross--background-colorpink-t"Ubuntu"is the same as putting this in$HOME/.config/mcross/mcross.tomlfor linux:background-color="pink"text-font="Ubuntu"The priority is CLI arg > config file > default.Keyboard shortcuts:Ctrl-l: jump to address bar.HoldAltto see possible button shortcuts underlined. This is what Qt callsAccelerator Keys.DevelopmentTo get started:pyenvinstall3.7.7
pyenvvirtualenv3.7.7mcross
pyenvactivate
poetryinstall
mcross# to publish, first bump version in pyproject.toml thenpoetrypublish--buildThere are 2 McRoss-related mailing lists:~nhanb/mcross-devel: discuss and
submit your patches here~nhanb/mcross-announce:
low-volume announcement-only listIf you're not familiar with the mailing list workflow, check outgit-send-email.ioandmailing list etiquette.useplaintext.emailalso has useful plaintext setup tips for various email clients, though I don't
necessarily agree with its "plaintext or nothing" stance.Feature checklistback-forward buttonshandle redirectsnon-blocking I/O using curiomore visual indicators: waiting cursor, status barparse gemini's advanced line typesrendertext/*mime types with correct charsethandlebinary/*mime typesconfigurable document stylinghuman-friendly distributionTOFU TLS (right now it always accepts self-signed certs)Long term high-level goals:Easy for end users to installIf the wordscargo buildexists in the installation guide for your G U I
application then I'm sorry it's not software made for people touse.What-you-see-is-what-you-writeA rendered text/gemini viewport should preserve its original text content.
This way once you've read a gemini page on the browser, you already know how to
write one. No "View Source" necessary.Responsive & pleasant to useThe Castor browser doesn't have visual indicators at all, for example, when
clicking on a link it just appears to do nothing until the new page is
completely loaded. That is A Bad Thing (tm).LightweightIn terms of both disk space & memory/cpu usage.
The python/tkinter combo already puts us at a pretty good starting point.Server bugs/surprisesForces gemini:// in requestSpec says protocol part is optional, but if I omit that one the server will
respond with53 No proxying to other hosts!.NewlineSpec says a newline should be \r\n but the server running
gemini.circumlunar.space just uses \n every time.LicenseCopyright (C) 2020 Bùi Thành NhânThis program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License version 3 as published by
the Free Software Foundation.This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with
this program.  If not, seehttps://www.gnu.org/licenses/.ForksMcRoss development is... conservative and sporadic.
If that bothers you, check outpicrosswhich is a nice fork with more
features (TOFU, tabs, among other things).