💾 Archived View for gemini.rmf-dev.com › repo › Vaati › Vgmi › files › df875cb6f3261779b89648168332e… captured on 2023-12-28 at 15:41:19. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
0 # Vgmi
1
2 Gemini client written in C with vim-like keybindings
3
4 ## Screenshots
5
6 =>img/img1.png On Konsole 1.6.6
7 =>img/img2.png On gnome terminal
8 =>img/img3.png On uxterm
9 =>img/img4.png On st
10
11 ## Statically linked binaries
12
13 ### x86_64
14 =>/static/vgmi/vgmi_linux_x86_64 Linux
15 =>/static/vgmi/vgmi_openbsd_x86_64 OpenBSD
16 =>/static/vgmi/vgmi_netbsd_x86_64 NetBSD
17 =>/static/vgmi/vgmi_freebsd_x86_64 FreeBSD
18 =>/static/vgmi/vgmi_illumos_x86_64 Illumos
19
20 ### aarch64
21 =>/static/vgmi/vgmi_linux_aarch64 Linux
22 =>/static/vgmi/vgmi_freebsd_aarch64 FreeBSD
23
24 ## Bug reports
25
26 If you find a bug you can open an issue on Github :
27 =>https://github.com/RealMelkor/Vgmi Github
28
29 ## Keybindings
30
31 * k - Scroll up
32 * j - Scroll down
33 * gT - Switch to the previous tab
34 * gt - Switch to the next tab
35 * h - Go back to the previous page
36 * l - Go forward to the next page
37 * gg - Go at the top of the page
38 * G - Go at the bottom of the page
39 * / - Open search mode
40 * : - Open input mode
41 * u - Open input mode with the current url
42 * b - Open about:bookmarks in a new tab
43 * f - Open about:history in a new tab
44 * r - Reload the page
45 * [number]Tab - Select link
46 * Tab - Follow selected link
47 * Shift+Tab - Open selected link in a new tab
48
49 You can prefix a movement key with a number to repeat it.
50
51 ## Commands
52
53 * :q - Close the current tab
54 * :qa - Close all tabs, exit the program
55 * :o [url] - Open an url
56 * :s [search] - Search the Geminispace using geminispace.info
57 * :nt [url] - Open a new tab, the url is optional
58 * :add [name] - Add the current url to the bookmarks, the name is optional
59 * :[number] - Scroll to the line number
60 * :gencert - Generate a client-certificate for the current capsule
61 * :forget [host] - Forget the certificate for the host
62 * :download [name] - Download the current page, the name is optional
63 * :help - Open about:help in a new tab
64
65 ## Sandboxing
66
67 ### FreeBSD
68 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.
69
70 ### OpenBSD
71 On OpenBSD, Vgmi uses unveil(2) to limit access to the filesystem and pledge(2) to restrict the capabilities of the program.
72
73 ### Linux
74 On Linux, Vgmi uses seccomp(2) to restrict system calls and landlock(7) to restrict the filesystem.
75
76 ### Illumos and Solaris
77 On Illumos and Solaris, Vgmi uses privileges(7) to isolate the parser processes.
78
79 On top of sandboxing the main process, Vgmi forks itself to parse foreign data
80 in completely isolated and sandboxed processes.
81
82 ## Dependencies
83
84 => https://www.libressl.org/ LibreSSL - fork of OpenSSL developed by the OpenBSD project
85 => https://github.com/termbox/termbox2 termbox2 - terminal rendering library
86
87 ### Optional dependency
88 => https://github.com/nothings/stb/blob/master/stb_image.h stb-image - image loading library
89
90 ## Building
91
92 Executing the build.sh script will download all dependencies and build Vgmi.
93