Gemini client written in C with vim-like keybindings.
Standard | Vim | Action |
---|---|---|
Up Arrow | k | Scroll up |
Down Arrow | j, Enter | Scroll down |
Ctrl+PgUp | gT | Switch to the previous tab |
Ctrl+PgDn | gt | Switch to the next tab |
Alt+Left | h | Go back to the previous page |
Alt+Right | l | Go forward to the next page |
Home | gg | Scroll to the top of the page |
End | G | Scroll to the bottom of the page |
Ctrl+f | / | Open search mode |
- | : | Open input mode |
- | u | Open input mode with the current URL |
Ctrl+b | - | Open about:bookmarks in a new tab |
Ctrl+h | - | Open about:history in a new tab |
Ctrl+r, F5 | - | Reload the page |
Ctrl+g | n | Jump to next search occurrence |
- | N | Jump to previous search occurrence |
- | [number]Tab | Select link |
Left mouse | Tab | Open link |
Middle mouse | Shift+Tab | Open link in a new tab |
You can prefix a movement key with a number to repeat it.
Command | Description |
---|---|
:q | Close the current tab |
:qa | Close all tabs, exit the program |
:e | Refresh the page |
:o [URL] | Open an URL |
:s [search] | Search the Geminispace using the default search engine |
:nt [URL] | Open a new tab, the URL is optional |
:add [name] | Add the current URL to the bookmarks, the name is optional |
:[number] | Scroll to the line number |
:gencert | Generate a client-certificate for the current capsule |
:forget [host] | Forget the certificate for the host |
:download [name] | Download the current page, the name is optional |
:help | Open about:help in a new tab |
On FreeBSD, Vgmi uses capsicum(4) to limit the filesystem and to enter capability mode, it also uses cap_net(3) for networking while in capability mode.
On OpenBSD, Vgmi uses unveil(2) to limit access to the filesystem and pledge(2) to restrict the capabilities of the program.
On Linux, Vgmi uses seccomp(2) to restrict system calls and landlock(7) to restrict the filesystem.
On Illumos and Solaris, Vgmi uses privileges(7) to isolate the parser processes.
In addition to sandboxing the main process, Vgmi forks itself to parse foreign data in completely isolated and sandboxed processes.
- stb-image - image loading library
Executing the build.sh script will download all dependencies and build Vgmi.