All Projects → jansc → Ncgopher

jansc / Ncgopher

Licence: other
A gopher and gemini client for the modern internet

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Ncgopher

Kn
A collection of shell functions for Kubernetes native dabbling
Stars: ✭ 49 (-7.55%)
Mutual labels:  cli
Git Req
Check out merge requests from your GitLab/GitHub hosted repositories from the command line with just the request number.
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Cryptex
Gemini, GDAX, Bitfinex, Poloniex, Binance, Kraken, Cryptopia, Koinex, BitGrail and CoinMarketCap cryptocurrency exchange API clients in Swift / iOS SDK. Check prices and account balances using Sample iOS app.
Stars: ✭ 51 (-3.77%)
Mutual labels:  gemini
Cli
💻 Decentraland command-line interface
Stars: ✭ 49 (-7.55%)
Mutual labels:  cli
Pectin
Rollup-related tools for incremental transpilation of packages in Lerna-based monorepos
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Sonos Cli
🎶 Command Line Interface for Sonos
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Textusm
Online tool for Generate a User Story Map from indented text.
Stars: ✭ 49 (-7.55%)
Mutual labels:  cli
Cli
Unlock Music Project - CLI Edition
Stars: ✭ 51 (-3.77%)
Mutual labels:  cli
Cli
The command line vault (Windows, macOS, & Linux).
Stars: ✭ 1,044 (+1869.81%)
Mutual labels:  cli
Serverless Toolkit
CLI tool to develop, debug and deploy Twilio Functions
Stars: ✭ 51 (-3.77%)
Mutual labels:  cli
Taro dva typescript
Taro dva Typescript Project technology
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Picofeed
A minimal terminal rss reader
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Lenz
Console based MAP 🗺 : with lots of features 🤩
Stars: ✭ 51 (-3.77%)
Mutual labels:  cli
Ascii Combat
A simple CLI text adventure game, created for learning purposes, feel free to contribute.
Stars: ✭ 49 (-7.55%)
Mutual labels:  cli
Aegea
Amazon Web Services Operator Interface
Stars: ✭ 51 (-3.77%)
Mutual labels:  cli
Rdoc
colourised R docs in the terminal
Stars: ✭ 49 (-7.55%)
Mutual labels:  cli
Pitchfork Npm
An Unofficial Pitchfork Music API client for Node.js
Stars: ✭ 50 (-5.66%)
Mutual labels:  cli
Foxshot
Capture web page screenshots using headless Firefox!
Stars: ✭ 52 (-1.89%)
Mutual labels:  cli
Mssql Cli
A command-line client for SQL Server with auto-completion and syntax highlighting
Stars: ✭ 1,061 (+1901.89%)
Mutual labels:  cli
Cliwrap
Library for running command line processes
Stars: ✭ 1,057 (+1894.34%)
Mutual labels:  cli

ncgopher

ncgopher is a gopher and gemini client for the modern internet. It uses ncurses and is written in Rust.

gopher

Gopher was developed in 1991 at the University of Minnesota, and named after the school's mascot. Gopher is a menu-driven interface that allows a user to browse for text information served off of various gopher servers.

gemini

Gemini is a new application-level internet protocol for the distribution of arbitrary files, with some special consideration for serving a lightweight hypertext format which facilitates linking between files.

Screenshot

Obligatory screenshot:

img

img

Features

  • Gopher and gemini 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!
  • Common search providers in search menu for quick access
  • External commands for HTML, images and Telnet

Installation

Arch Linux

Arch Linux users can install ncgopher using pacman:

sudo pacman -S ncgopher

NixOS

NixOS users can install ncgopher using nix-env:

nix-env -iA nixos.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 external dependencies which have to be installed. First and foremost you will of course need to have Rust installed. Further dependencies are the openssl, ncurses and sqlite3 libraries. If these are not installed, the build will fail but you will most likely be able to tell what is missing.


Debian-based Linux

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

Arch-based Linux

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

If you know how to install the listed dependencies on your operating system and it is not 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.git
cd ncgopher
cargo build
cargo run

Key bindings

During alpha, the keybindings are not configurable and many operations are still not implemented.

|------------+--------------------------------|
| 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                   |
| 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  |
| n          | Go to next link                |
| p          | Go to previous link            |
| j          | Move one line down             |
| k          | Move one line up               |
|------------+--------------------------------|

Mouse support

ncgopher supports mouse interaction for menus and buttons in dialogs. If you want to select text, most terminal support selection while pressing SHIFT.

Debugging

The software is still in beta, and it is also my first application written 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 a file name to store the log in, for example "error.log". It should look something like this: ncgopher -d error.log This will append log messages to error.log (the file will be created if it does 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 the program with RUST_BACKTRACE to get a backtrace too.

License

ncgopher is licensed under the BSD 2-clause license.

Copyright (c) 2019-2021 The ncgopher Authors. Parts of the status bar implementation are Copyright (c) 2019, Henrik Friedrichsen

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].