You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
ncgopher is a gopher, gemini and finger client for the modern internet. It usesncurses and is written in Rust.
gopher
Gopher was developed in 1991 at the University of Minnesota, and namedafter the school's mascot. Gopher is a menu-driven interface thatallows a user to browse for text information served off of variousgopher servers.
gemini
Gemini is a new application-level internet protocol for the distributionof arbitrary files, with some special consideration for serving alightweight hypertext format which facilitates linking between files.
Screenshot
Obligatory screenshot:
Features
Gopher, gemini and finger support
Ncurses interface
Keyboard commands for navigation
Bookmarks support including custom title
History of visited gopher holes
Download of text files and gophermaps (Save as…)
Download of binary files
Menu for easy configuration
Mouse support in some terminals
TLS support
Darkmode!
External commands for HTML, images and Telnet
Vi-like search in text
Bookmarks, history and option to disable history recording
Installation
Arch Linux
Arch Linux users can install ncgopher using pacman:
sudo pacman -S ncgopher-git
NixOS
NixOS users can install ncgopher using nix-env:
nix-env -iA nixos.ncgopher
FreeBSD
doas pkg install ncgopher
NetBSD
NetBSD users can install ncgopher using pkgin:
pkgin install ncgopher
All other systems
ncgopher has no fancy installation process right now. There are some externaldependencies which have to be installed. First and foremost you will of courseneed to have Rust installed. Further dependencies are theopenssl,ncursesandsqlite3 libraries. If these are not installed, the build will fail butyou will most likely be able to tell what is missing.
If you know how to install the listed dependencies on your operating system and it isnot listed, please make a pull request to add it.
After installing these dependencies run
cargo install ncgopher
To install the latest development version:
git clone https://github.com/jansc/ncgopher.gitcd ncgophercargo buildcargo run
Key bindings
During alpha, many operations are still not implemented. Key bindings can bechanged by adding akeybindings section in yourconfig.toml, if you want tochange them from the defaults below:
Key
Command
Arrow keys
Move around in text
Enter
Open the link under the cursor
Esc
Go to menubar
Space
Scroll down one page
g
Open new URL
G
Edit current URL
b
Navigate back
q
Close application
s
Save current page
r
Reload current page
i
Show link under cursor
a
Add bookmark for current page
l
Go to next link
L
Go to previous link
j
Move one line down
k
Move one line up
/
Search in text
n
Move to next search result
N
Move to previous search result
Here is an exampleconfig.toml with all the keybindings defined:
ncgopher supports mouse interaction for menus and buttons in dialogs.If you want to select text, most terminal support selection whilepressingSHIFT.
Debugging
The software is still in beta, and it is also my first applicationwritten in Rust. Expect lots of bugs and badly written Rust code.
If the application crashes, I'd be interested in a log file.To produce one, please rerun the program with the command line flag-d and afile name to store the log in, for example "error.log".It should look something like this:ncgopher -d error.logThis will append log messages toerror.log (the file will be created if itdoes not exist).With this, try to reproduce the bug and take note of the backtrace output.
If you know how to do that and you installed the source, you can run theprogram withRUST_BACKTRACE to get a backtrace too.
License
ncgopher is licensed under the BSD 2-clause license.
Copyright (c) 2019-2022 The ncgopher Authors. Parts of thestatus bar implementation are Copyright (c) 2019, Henrik Friedrichsen
About
A gopher and gemini client for the modern internet