2020-06-18 16:54:48 -04:00
# Amfora
2020-06-18 19:10:45 -04:00
< center > <!-- I know, that's not how you usually do it :) -->
2020-06-18 19:13:40 -04:00
< img src = "logo.png" alt = "amphora logo" width = "30%" >
2020-06-24 13:39:49 -04:00
< h6 > Image modified from: amphora by Alvaro Cabrera from the Noun Project< / h6 >
2020-06-18 19:10:45 -04:00
< / center >
2020-06-18 16:54:48 -04:00
2020-06-18 17:23:54 -04: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-18 19:10:45 -04:00
< center > <!-- I know, that's not how you usually do it :) -->
2020-06-18 19:13:40 -04:00
< a href = "https://raw.githubusercontent.com/makeworld-the-better-one/amfora/master/demo-large.gif" >
2020-06-18 19:10:45 -04:00
< img src = "demo-large.gif" alt = "Demo GIF" width = "80%" >
2020-06-18 19:13:40 -04:00
< / a >
2020-06-18 19:10:45 -04:00
< / center >
2020-06-24 11:37:32 -04:00
###### Recording of v1.0.0
2020-06-18 17:23:54 -04: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 12:11:03 -04: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 16:54:48 -04:00
2020-06-20 17:17:34 -04:00
It fully passes Sean Conman's client torture test, including the new Unicode tests. It mostly passes the Egsam test.
2020-06-18 16:54:48 -04:00
2020-06-18 19:25:08 -04:00
## Installation
2020-08-03 11:23:27 -04:00
### Binary
2020-07-02 00:13:32 -04: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 should also move the binary to `/usr/local/bin/` .
2020-06-21 19:37:23 -04:00
2020-06-27 16:41:13 -04: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:
2020-06-21 19:37:23 -04:00
```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-18 19:25:08 -04:00
2020-08-03 11:23:27 -04:00
### Arch Linux
2020-08-04 11:14:32 -04:00
Arch Linux users can install Amfora from AUR. It has the package name `amfora` , and is maintained by @pboyd .
2020-08-03 11:23:27 -04:00
```
yay -S amfora
```
2020-08-04 11:14:32 -04: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
```
2020-08-03 11:23:27 -04:00
### From Source
2020-07-10 14:37:18 -04:00
This section is for programmers who want to install from source.
Install latest release:
```
GO111MODULE=on go get -u github.com/makeworld-the-better-one/amfora
```
Install latest commit:
```
GO111MODULE=on go get -u github.com/makeworld-the-better-one/amfora@master
```
2020-06-18 16:54:48 -04:00
## Usage
2020-06-21 19:48:58 -04:00
Just call `amfora` or `amfora <url>` on the terminal. On Windows it might be `amfora.exe` instead.
2020-06-18 16:54:48 -04:00
2020-06-24 11:37:32 -04:00
To determine the version, you can run `amfora --version` or `amfora -v` .
2020-06-18 16:54:48 -04: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.
2020-07-02 00:13:32 -04:00
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 16:54:48 -04:00
## Features / Roadmap
2020-06-20 17:17:34 -04:00
Features in *italics* are in the master branch, but not in the latest release.
2020-06-18 16:54:48 -04: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 13:39:49 -04:00
- [x] Multiple charset support (over 55)
- [x] Built-in search (uses GUS by default)
- [x] Bookmarks
2020-07-10 19:49:17 -04:00
- [x] Download pages and arbitrary data
2020-07-28 20:18:38 -04:00
- [x] Theming
2020-08-05 13:31:59 -04:00
- [x] *Emoji favicons*
2020-06-18 16:54:48 -04:00
- See `gemini://mozz.us/files/rfc_gemini_favicon.gmi` for details
2020-08-06 13:55:43 -04:00
- [ ] Subscribe to RSS and Atom feeds and display them
- Subscribing to page changes, similar to how Spacewalk works, will also be supported
2020-07-01 13:39:13 -04:00
- [ ] Stream support
2020-06-18 16:54:48 -04:00
- [ ] Full client certificate UX within the client
- Create transient and permanent certs within the client, per domain
- Manage and browse them
2020-07-19 11:09:33 -04:00
- Similar to [Kristall ](https://github.com/MasterQ32/kristall )
2020-06-18 16:54:48 -04:00
- https://lists.orbitalfox.eu/archives/gemini/2020/001400.html
2020-08-03 11:23:27 -04:00
- [ ] Table of contents for pages
- [ ] Search in pages with < kbd > Ctrl-F</ kbd >
2020-06-18 16:54:48 -04:00
- [ ] Support Markdown rendering
2020-06-21 23:39:33 -04:00
- [ ] History browser
2020-06-18 16:54:48 -04:00
## Configuration
2020-06-22 11:56:55 -04: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 16:54:48 -04:00
On Windows, the file is in `%APPDATA%\amfora\config.toml` , which usually expands to `C:\Users\<username>\AppData\Roaming\amfora\config.toml` .
## 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-10 20:05:34 -04:00
- My [progressbar fork ](https://github.com/makeworld-the-better-one/progressbar )
- [go-humanize ](https://github.com/dustin/go-humanize )
2020-06-18 16:54:48 -04:00
## License
This project is licensed under the GPL v3.0. See the [LICENSE ](./LICENSE ) file for details.