A high-quality visual cross-platform gemini browser.
- Document rendering
text/gemini
text/html
(reduced feature set)text/markdown
text/*
image/*
video/*
audio/*
- Multi-protocol support
- Outline generation (Video)
- Favourite Sites
- Navigation history
- Tabbed interface
- Survives ConMans torture suite
- Special link highlighting for different targets
- Color Themes
- Custom document color theme
- Automatic light/dark theme based on the host name
- Dark/Light UI theme
- Crossplatform supports
- Linux
- Windows
- FreeBSD
- NetBSD
- OpenBSD
- MacOS X
- Haiku
- Latest Qt5 version with
widgets
andnetwork
modules
There's a small Makefile
provided that does all necessary steps and creates a build directory, then copies the build artifact from the build directory. Just do make
in the root directory, it should work.
Or you can use the usual Qt5 build process:
mkdir build
cd build
qmake ../src/kristall.pro
make
- It seems like Qt wants
libzstd.so.3.1
instead oflibzstd.so.3.2
. Just symlink that file into the build directory - Use
make
and notgmake
to build the project.
- Requires packages
qt5-default
qt5-qmake
qtmultimedia5-dev
make
g++
- Requires packages
qt5
qt5-multimedia
- set env variable
QT_SELECT=5
Compile OpenSSL with the following steps:
- Install Perl (either ActiveState or Strawberry)
- Install NASM
- Add both to your PATH
- Clone OpenSSL
- Open a Visual Studio Developer Command Prompt (or a command prompt that has ran vcvarsall.bat). You will need Administrator privileges for the install step
- In the OpenSSL root directory, run
perl Configure VC-WIN32
if compiling for 32 bit,perl Configure VC-WIN64A
for 64 bit - Run
nmake
- Run
nmake install
to install OpenSSL inC:\Program Files\OpenSSL
Use QtCreator to build ./src/kristall.pro
with default settings.
Use the Makefile
to build build/kristall
instead of the default target. There is currently no auto-recognition of MacOS (where qmake will output a kristall.app
file), so you have to be a bit more manual.
- Install the following packages with
pkgman
:qt5
qt5_devel
qt5_tools
- Use
make
to build th executable
The provided desktop file can be installed into the local system
ln -s Kristall.desktop ~/.local/share/applications/kristall.desktop
Link the kristall
executable to your applications menu:
cd ~/config/settings/deskbar/menu/Applications/
ln -s /path/to/kristall .
- Thanks to James Tomasino for helping out with understanding gopher
- Thanks to Vane Vander for providin the Haiku build instructions
- Thanks to James Tomasino, styan and tiwesdaeg for improving the
Makefile
- Thanks to Alex Naskos for providing windows build instructions
- TLS Handling
- Allow user to ignore TLS errors
- Enable TOFU for HTTPS/Gemini
- Enable Client Certificate Management
- Add option: "Transient certificates survive an application reboot and are stored on disk""
- Add management for client certificates
- Rename/delete certificates
- Rename/delete/merge groups
- Import/export PEM certificates and keys
- Ask if the client certificate should be disabled when switching host and/or protocol
- Improve redirect handling
- Option how to handle redirects: "automatic, ask when cross-host, ask always"
- Option to set maximum number of redirects
- UX improvements
- Auto-expanding outline
- Escape in the URL bar reverts to the current location
- auto-highlighting/following outline
- Improved favourites
- Allow custom favourite title (not the URL itself)
- Allow grouping favourites into a single-hierarchy folder structure
- Improve style import
- Direct preview instead of importing it as a preset. Allow user to save preset then manually
- Changelog in the help menu
- Survive full torture suite
- Correctly parse mime parameters
- Correctly parse charset (0013, 0014)
- Correctly parse other params (0015)
- Correctly parse undefined params (0016)
- Correctly parse mime parameters
- Recognize home directories with /~home and such and add "substyles"
- Add favicon support
- Add auto-generated "favicons"
- Check if the site follows this guideline:
#<ICON> Title
where<ICON>
is a unicode emoji - Opt-In: Regularly check for
domain/favicon.txt
- Opt-In: Regularly check for
domain/favicon.ico
- FTP
- Search for FTP library or use self-written one?
- Improve UX
- Provide text search function
- Replace Qt markdown with standalone markdown renderer
- Enable markdown theming
- Improve Unicode/Emoji support
- Seems to need multiple font families per font?
- Add text/kristall-theme mime
- Will use a preview document instead of displaying the content
- Allow import of themes
- File extension is
.kthm
- Implement more protocols
- Gopher
- Support more media types (include uudecode and hexbin decoder)
- Gopher
xq: When using torsocks(1) on kristall QNetworkInterface complains loudly about not being permitted to create an IPv6 socket..
MAC needs different default font: https://usercontent.irccloud-cdn.com/file/OrkuXDfQ/image.png
Audio doesn't stop when you load other media. This is a bit of shit.
Status bar is broken: It doesn't seem to map to tabs, if you have multiple open, which was a bit confusing (and would also be a really cool addition for easy comparison of responses).