Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A gopher and gemini client for the modern internet

License

NotificationsYou must be signed in to change notification settings

jansc/ncgopher

Repository files navigation

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:

img

img

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.


Debian-based Linux

sudo apt install build-essential pkg-config libssl-dev libncurses-dev libsqlite3-dev

Arch-based Linux

sudo pacman -S base-devel pkg-config openssl ncurses sqlite

OpenBSD

doas pkg_add sqlite3 rust

MSYS2 (Windows, MINGW64 terminal)

pacman -S base-devel mingw-w64-x86_64-pkgconf mingw-w64-x86_64-rust mingw-w64-x86_64-ncurses mingw-w64-x86_64-openssl mingw-w64-x86_64-sqlite3

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:

KeyCommand
Arrow keysMove around in text
EnterOpen the link under the cursor
EscGo to menubar
SpaceScroll down one page
gOpen new URL
GEdit current URL
bNavigate back
qClose application
sSave current page
rReload current page
iShow link under cursor
aAdd bookmark for current page
lGo to next link
LGo to previous link
jMove one line down
kMove one line up
/Search in text
nMove to next search result
NMove to previous search result

Here is an exampleconfig.toml with all the keybindings defined:

[keybindings]open_new_url ='o'edit_current_url ='e'navigate_back ='h'close ='q'save_page ='s'reload_page ='r'show_link ='i'add_bookmark ='b'next_link ='l'previous_link ='L'move_down ='j'move_up ='k'search_in_text ='/'next_search_result ='n'previous_search_result ='N'show_help ='?'

Mouse support

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


[8]ページ先頭

©2009-2025 Movatter.jp