Gemalaya is a keyboard-driven Gemini browser written in QML (with PySide6).

Screenshots | Issues | Contact | Donate (ko-fi) | Donate (liberapay)

AppImage

Download Gemalaya's latest AppImage (x86_64)

Be sure to have all the xcb libraries installed on your system before running the AppImage (run with QT_DEBUG_PLUGINS=1 if you get an error about the xcb plugin failing to load)

Note: The AppImage's file size is about 130 Mb (~60% of that is Pyside6). The AppImage can download new updates, you should only need to download the AppImage once.

Demos

Text-to-speech demo

Screenshots gallery.

Usage

Gemalaya doesn't use a tab bar, there's just a stack layout with gemspaces in it, you'll see the gemspace index on the top-left corner. The browser will automatically generate a certificate, if you want to use an already generated certificate, copy it as $HOME/.config/gemalaya/client.{crt,key}.

To change the keyboard shortcuts, press F12 to open the configuration settings dialog.

Each link in a gemini page is assigned a number. To follow a link, just type in the number of the link on the keyboard. The link is opened after a certain timeout (you can change the timeout in the settings).

Gemalaya supports the automatic proxying of web (http/https) content by running an instance of levior. When levior is running, regular web pages can be accessed and rendered as gemtext transparently. The proxy can be disabled in the config or by passing --no-proxy when running the app.

Identities

You can create gemini identities (certificates) and assign a different color to each identity. There are 10 built-in identities, the first one (the default, automatically created) can be accessed by pressing F1, the second by pressing F2, etc .. See the Identity shortcuts section below for a complete list of shortcuts.

switch

If the certificate doesn't exist yet, an identity creation dialog will appear.

When you're changing the current identity, the identity is tied (mapped) to the gemini capsule that you are browsing. Gemini requests for this capsule will then always be made with the identity that you assigned to it (until you change the identity for this capsule).

Address bar

Search macros

In the address bar you can also use certain keywords that will be translated to a gemini URL. Here are the default keywords:

Text-to-speech

gemalaya can do text-to-speech conversion on the text contained in the Gemini pages that you browse.

To enable the text-to-speech feature, press F12, go to UI settings and check Enable text-to-speech conversion. There are 3 TTS engines supported:

If the Automatically play audio after conversion setting is enabled, when you change the focus to a text item in the page, the TTS audio file will be played automatically without requiring any user intervention. If it's not enabled, all you need to do to play the audio is to press Space or r (for read). See the TTS player shortcuts section below for a list of all the supported keyboard shortcuts by the TTS player.

Links layout

You can choose between 2 different layout modes for links:

There are a few config settings for links groups:

Keyboard shortcuts

When you access a new page (or switch between gemspaces), the top element in the page will get the focus.

These shortcuts allow you to change the currently focused item in the page. They cannot be changed (see QML's KeyNavigation docs). Pressing Tab or Shift+Tab from a links grid will cycle between the links in the grid.

Main shortcuts

Identity shortcuts

Address bar shortcuts

Text Item shortcuts

These are keyboards shortcuts specific to text items, and will only work when some text is being focused. Enable text translation first in the settings if you want to use any of the text translation shortcuts.

TTS player shortcuts

These are keyboards shortcuts specific to the text-to-speech audio player

These are keyboards shortcuts specific to links, and will only work when a link is being focused.

Scrolling the page

Press the Up, PageUp, or Down, PageDown keys to scroll the page up or down. Holding the Control and/or Shift keys while doing so will amplify the scrolling/flicking speed (the fastest being when you hold both Control and Shift).

To go to the top of the page, press the Home key. To go to the bottom of the page, press the End key.

Default locations

The main config file is stored in the following file:

$HOME/.config/gemalaya/config.yaml

The default downloads directory is:

$HOME/Downloads/gemalaya

gemalaya uses a client library called ignition, which stores the known gemini certificate fingerprints ("known hosts") in the following file:

$HOME/.local/share/gemalaya/ignition_known_hosts

Delete the known hosts file if a gemini capsule has changed its certificate after you've visited it and you see a "Untrusted certificate" message !

Themes

You can write your own theme, it should be a YAML file with the following path (on Linux), theme_name being the name of your theme. Look in the gemalaya/themes directory for an example.

$HOME/.config/gemalaya/themes/theme_name/theme_name.yaml

Then set the ui.theme config setting in the main config file which is stored in:

$HOME/.config/gemalaya/config.yaml

Project links