amfora/README.md

147 lines
7.1 KiB
Markdown
Raw Normal View History

2020-06-18 23:54:48 +03:00
# Amfora
2020-06-19 02:10:45 +03:00
<center> <!-- I know, that's not how you usually do it :) -->
2020-06-19 02:13:40 +03:00
<img src="logo.png" alt="amphora logo" width="30%">
2020-06-24 20:39:49 +03:00
<h6>Image modified from: amphora by Alvaro Cabrera from the Noun Project</h6>
2020-06-19 02:10:45 +03:00
</center>
2020-08-28 00:57:19 +03:00
[![travis build status](https://img.shields.io/travis/com/makeworld-the-better-one/amfora)](https://https://travis-ci.com/github/makeworld-the-better-one/amfora)
2020-06-19 00:23:54 +03:00
[![go reportcard](https://goreportcard.com/badge/github.com/makeworld-the-better-one/amfora)](https://goreportcard.com/report/github.com/makeworld-the-better-one/amfora)
[![license GPLv3](https://img.shields.io/github/license/makeworld-the-better-one/amfora)](https://www.gnu.org/licenses/gpl-3.0.en.html)
2020-06-19 02:10:45 +03:00
<center> <!-- I know, that's not how you usually do it :) -->
2020-06-19 02:13:40 +03:00
<a href="https://raw.githubusercontent.com/makeworld-the-better-one/amfora/master/demo-large.gif">
2020-06-19 02:10:45 +03:00
<img src="demo-large.gif" alt="Demo GIF" width="80%">
2020-06-19 02:13:40 +03:00
</a>
2020-06-19 02:10:45 +03:00
</center>
###### Recording of v1.0.0
2020-06-19 00:23:54 +03:00
Amfora aims to be the best looking [Gemini](https://gemini.circumlunar.space/) client with the most features... all in the terminal. It does not support Gopher or other non-Web protocols - check out [Bombadillo](http://bombadillo.colorfield.space/) for that.
2020-08-11 19:11:03 +03:00
It also aims to be completely cross platform, with full Windows support. If you're on Windows, I would not recommend using the default terminal software. Use [Windows Terminal](https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701) instead. Note that some of the application colors might not display correctly on Windows, but all functionality will still work.
2020-06-18 23:54:48 +03:00
2020-06-21 00:17:34 +03:00
It fully passes Sean Conman's client torture test, including the new Unicode tests. It mostly passes the Egsam test.
2020-06-18 23:54:48 +03:00
2020-06-19 02:25:08 +03:00
## Installation
### Binary
2020-09-02 18:05:14 +03:00
Download a binary from the [releases](https://github.com/makeworld-the-better-one/amfora/releases) page. On Unix-based systems you might have to make the file executable with `chmod +x <filename>`. You rename the file to just `amfora` for easy access, and move it to `/usr/local/bin/`.
2020-06-27 23:41:13 +03:00
On Windows, make sure you click "Advanced > Run anyway" after double-clicking, or something like that.
Unix systems can install the desktop entry file to get Amfora to appear when they search for applications:
```bash
curl -sSL https://raw.githubusercontent.com/makeworld-the-better-one/amfora/master/amfora.desktop -o ~/.local/share/applications/amfora.desktop
update-desktop-database ~/.local/share/applications
```
2020-06-19 02:25:08 +03:00
### Arch Linux
2020-08-04 18:14:32 +03:00
Arch Linux users can install Amfora from AUR. It has the package name `amfora`, and is maintained by @pboyd.
```
yay -S amfora
```
2020-08-04 18:14:32 +03:00
### Homebrew
If you use [Homebrew](https://brew.sh/), you can install the package maintained by @Jackymancs4.
```
brew install jackymancs4/tap/amfora
```
You can update it with:
```
brew upgrade amfora
```
### From Source
2020-08-26 00:22:49 +03:00
This section is for programmers who want to install from source. Make sure you're using Go 1.13 at least, as earlier versions will fail to build.
2020-09-02 18:05:14 +03:00
The recommended way of installing Amfora fom source is using the Makefile. Note that this requires GNU Make, so use the `gmake` (not `make`) command on macOS. You may have to install it with `brew install make`. On Windows, you can install [Chocolatey](https://chocolatey.org/install) and run `choco install make`.
2020-09-02 19:55:33 +03:00
Note that the Makefile currently assumes that git is available, and that it is inside a git repository.
```
2020-09-02 18:05:14 +03:00
git clone https://github.com/makeworld-the-better-one/amfora
cd amfora
make
sudo make install # Not for Windows!
2020-09-02 19:55:33 +03:00
sudo make desktop # Optional, installs .desktop file. Not for Windows or macOS
```
2020-09-02 18:05:14 +03:00
Because you installed with the Makefile, running `amfora -v` will tell you exactly what commit the binary was built from.
2020-06-18 23:54:48 +03:00
## Usage
Just call `amfora` or `amfora <url>` on the terminal. On Windows it might be `amfora.exe` instead.
2020-06-18 23:54:48 +03:00
To determine the version, you can run `amfora --version` or `amfora -v`.
2020-06-18 23:54:48 +03:00
The project keeps many standard terminal keybindings and is intuitive. Press <kbd>?</kbd> inside the application to pull up the help menu with a list of all the keybindings, and <kbd>Esc</kbd> to leave it. If you have used Bombadillo you will find it similar.
It is designed with large terminals in mind, but should look and work well at any reasonable terminal size.
It was tested with left-to-right languages, and will likely not work as well with right-to-left languages like Arabic.
2020-06-18 23:54:48 +03:00
## Features / Roadmap
2020-06-21 00:17:34 +03:00
Features in *italics* are in the master branch, but not in the latest release.
2020-06-18 23:54:48 +03:00
- [x] URL browsing with TOFU and error handling
- [x] Tabbed browsing
- [x] Support ANSI color codes on pages, even for Windows
- [x] Styled page content (headings, links)
- [x] Basic forward/backward history, for each tab
- [x] Input (Status Code 10 & 11)
2020-06-24 20:39:49 +03:00
- [x] Multiple charset support (over 55)
- [x] Built-in search (uses GUS by default)
- [x] Bookmarks
- [x] Download pages and arbitrary data
2020-07-29 03:18:38 +03:00
- [x] Theming
2020-09-02 02:55:06 +03:00
- [x] Emoji favicons
2020-06-18 23:54:48 +03:00
- See `gemini://mozz.us/files/rfc_gemini_favicon.gmi` for details
- Disabled by default, enable in config
2020-09-02 02:55:06 +03:00
- [x] Proxying
2020-09-01 21:55:52 +03:00
- Schemes like Gopher or HTTP can be proxied through a Gemini server
2020-08-06 20:55:43 +03:00
- [ ] Subscribe to RSS and Atom feeds and display them
- Subscribing to page changes, similar to how Spacewalk works, will also be supported
2020-08-28 02:02:12 +03:00
- *In progress on `feeds` branch*
2020-07-01 20:39:13 +03:00
- [ ] Stream support
2020-06-18 23:54:48 +03:00
- [ ] Full client certificate UX within the client
- Create transient and permanent certs within the client, per domain
- Manage and browse them
- Similar to [Kristall](https://github.com/MasterQ32/kristall)
2020-06-18 23:54:48 +03:00
- https://lists.orbitalfox.eu/archives/gemini/2020/001400.html
- [ ] Table of contents for pages
- [ ] Search in pages with <kbd>Ctrl-F</kbd>
2020-06-18 23:54:48 +03:00
- [ ] Support Markdown rendering
2020-06-22 06:39:33 +03:00
- [ ] History browser
2020-06-18 23:54:48 +03:00
## Configuration
2020-06-22 18:56:55 +03:00
The config file is written in the intuitive [TOML](https://github.com/toml-lang/toml) file format. See [default-config.toml](./default-config.toml) for details. By default this file is available at `~/.config/amfora/config.toml`, or `$XDG_CONFIG_HOME/amfora/config.toml`, if that variable is set.
2020-06-18 23:54:48 +03:00
On Windows, the file is in `%APPDATA%\amfora\config.toml`, which usually expands to `C:\Users\<username>\AppData\Roaming\amfora\config.toml`.
2020-08-29 23:17:14 +03:00
## Known Bugs
2020-08-31 19:09:54 +03:00
- Pasting on Windows is truncated, the full paste content won't be added. ([#43](https://github.com/makeworld-the-better-one/amfora/issues/43))
- ANSI codes aren't displaying properly ([#59](https://github.com/makeworld-the-better-one/amfora/issues/59))
2020-08-29 23:17:14 +03:00
You can also check out [all the issues with the bug label](https://github.com/makeworld-the-better-one/amfora/issues?q=is%3Aopen+is%3Aissue+label%3Abug).
2020-06-18 23:54:48 +03:00
## Libraries
Amfora ❤️ open source!
- [cview](https://gitlab.com/tslocum/cview/) for the TUI
- It's a fork of [tview](https://github.com/rivo/tview) with PRs merged and active support
- It uses [tcell](https://github.com/gdamore/tcell) for low level terminal operations
- [Viper](https://github.com/spf13/viper) for configuration and TOFU storing
- [go-gemini](https://github.com/makeworld-the-better-one/go-gemini), my forked and updated Gemini client/server library
2020-07-11 03:05:34 +03:00
- My [progressbar fork](https://github.com/makeworld-the-better-one/progressbar)
- [go-humanize](https://github.com/dustin/go-humanize)
2020-06-18 23:54:48 +03:00
## License
This project is licensed under the GPL v3.0. See the [LICENSE](./LICENSE) file for details.