💾 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

View Raw

More Information

-=-=-=-=-=-=-

Go Back

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