Go back

Vgmi by Vaati

View account

Gemini client written in C with vim-like keybindings
git clone https://gmi.rmf-dev.com/Vaati/Vgmi

Log

Files

Refs

License

Readme

Readme

Vgmi

Gemini client written in C with vim-like keybindings

Screenshots

On Konsole 1.6.6

On gnome terminal

On uxterm

On st

Statically linked binaries

x86_64

Linux

OpenBSD

NetBSD

FreeBSD

Illumos

aarch64

Linux

FreeBSD

Bug reports

If you find a bug you can open an issue on Github :

Github

Keybindings

You can prefix a movement key with a number to repeat it.

Commands

Sandboxing

FreeBSD

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.

OpenBSD

On OpenBSD, Vgmi uses unveil(2) to limit access to the filesystem and pledge(2) to restrict the capabilities of the program.

Linux

On Linux, Vgmi uses seccomp(2) to restrict system calls and landlock(7) to restrict the filesystem.

Illumos and Solaris

On Illumos and Solaris, Vgmi uses privileges(7) to isolate the parser processes.

On top of sandboxing the main process, Vgmi forks itself to parse foreign data

in completely isolated and sandboxed processes.

Dependencies

LibreSSL - fork of OpenSSL developed by the OpenBSD project

termbox2 - terminal rendering library

Optional dependency

stb-image - image loading library

Building

Executing the build.sh script will download all dependencies and build Vgmi.