2020-06-18 16:54:48 -04:00
# Amfora
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 >
2021-03-27 20:23:15 -04:00
2020-06-18 19:10:45 -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: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
2020-06-24 11:37:32 -04:00
###### Recording of v1.0.0
2021-11-01 12:11:52 -04:00
Amfora aims to be the best looking [Gemini ](https://geminiquickst.art/ ) 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-06-18 17:23:54 -04:00
2020-09-04 21:03:07 -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, and make sure it [works with UTF-8 ](https://akr.am/blog/posts/using-utf-8-in-the-windows-terminal ). 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-12-15 14:35:43 -05:00
It fully passes Sean Conman's client torture test, as well as the Egsam one.
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-12-15 14:35:43 -05:00
Download a binary from the [releases ](https://github.com/makeworld-the-better-one/amfora/releases ) page. On Unix-based systems you will have to make the file executable with `chmod +x <filename>` . You can rename the file to just `amfora` for easy access, and move it 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-12-15 14:35:43 -05:00
Make sure to click "Watch" in the top right, then "Custom" > "Releases" to get notified about new releases!
2020-09-04 21:03:07 -04:00
2021-05-01 12:45:21 -04:00
### Linux
2020-08-03 11:23:27 -04:00
2021-03-27 20:23:15 -04:00
< a href = "https://repology.org/project/amfora/versions" >
< img src = "https://repology.org/badge/vertical-allrepos/amfora.svg" alt = "Packaging status" align = "right" >
< / a >
2021-02-07 17:41:42 -05:00
2021-04-06 18:07:25 -04:00
Amfora is packaged in many Linux distros. It's also on [Scoop ](https://scoop.sh/ ) for Windows users.
2021-08-11 10:14:31 -04:00
### macOS (Homebrew)
2020-08-04 11:14:32 -04:00
2021-07-02 23:52:40 -04:00
If you use [Homebrew ](https://brew.sh/ ), you can install Amfora with:
2020-08-04 11:14:32 -04:00
```
2020-09-15 13:54:32 -04:00
brew install amfora
2020-08-04 11:14:32 -04:00
```
You can update it with:
```
brew upgrade amfora
```
2021-08-11 10:14:31 -04:00
### macOS (MacPorts)
On macOS, Amfora can also be installed through [MacPorts ](https://www.macports.org ):
```
sudo port install amfora
```
You can update it with:
```
sudo port selfupdate
sudo port upgrade amfora
```
**NOTE:** this installation source is community-maintained. More information [here ](https://ports.macports.org/port/amfora/ ).
2021-05-01 12:45:21 -04:00
### Termux
2021-04-06 17:52:28 -04:00
If you're using [Termux ](https://termux.com/ ) on Android you can't just run Amfora like normal. After installing Amfora, run `pkg install proot` . Then run `termux-chroot` before running the Amfora binary. You can exit out of the chroot after closing Amfora. See [here ](https://stackoverflow.com/q/38959067/7361270 ) for why this is needed.
2020-08-03 11:23:27 -04:00
### From Source
2020-12-01 10:52:06 -05:00
2020-12-15 14:35:43 -05:00
This section is for advanced users who want to install the latest (possibly unstable) version of Amfora.
2020-12-01 10:52:06 -05:00
< details >
< summary > Click to expand< / summary >
2020-09-20 17:33:45 -04:00
**Requirements:**
2021-12-01 11:09:36 -05:00
- Go 1.15 or later
2020-09-20 17:33:45 -04:00
- GNU Make
2020-07-10 14:37:18 -04:00
2020-09-20 17:33:45 -04:00
Please note the Makefile does not intend to support Windows, and so there may be issues.
2020-07-10 14:37:18 -04:00
2020-09-02 13:02:40 -04:00
```shell
2020-09-02 11:05:14 -04:00
git clone https://github.com/makeworld-the-better-one/amfora
cd amfora
2020-09-02 14:06:38 -04:00
# git checkout v1.2.3 # Optionally pin to a specific version instead of the latest commit
2020-09-20 17:33:45 -04:00
make # Might be gmake on macOS
2020-09-12 19:35:12 -04:00
sudo make install # If you want to install the binary for all users
2020-07-10 14:37:18 -04:00
```
2020-09-02 11:05:14 -04:00
Because you installed with the Makefile, running `amfora -v` will tell you exactly what commit the binary was built from.
2020-12-24 16:28:28 -05:00
Arch Linux users can also install the latest commit of Amfora from the AUR. It has the package name `amfora-git` , and is maintained by @lovetocode999
```
yay -S amfora-git
```
2020-09-20 17:33:45 -04:00
MacOS users can also use [Homebrew ](https://brew.sh/ ) to install the latest commit of Amfora:
```
brew install --HEAD amfora
```
You can update it with:
```
brew upgrade --fetch-HEAD amfora
```
2020-12-01 10:52:06 -05:00
< / details >
2020-07-02 00:13:32 -04:00
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)
2021-03-08 14:23:49 -05:00
- [x] Built-in search (uses geminispace.info by default)
2020-06-24 13:39:49 -04:00
- [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-11-19 00:34:02 -05:00
- Check out the [user contributed themes ](https://github.com/makeworld-the-better-one/amfora/tree/master/contrib/themes )!
2020-09-01 19:55:06 -04:00
- [x] Proxying
2020-09-01 14:55:52 -04:00
- Schemes like Gopher or HTTP can be proxied through a Gemini server
2020-11-04 21:31:08 -05:00
- [x] Client certificate support
2020-11-04 16:45:34 -05: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 )
- https://lists.orbitalfox.eu/archives/gemini/2020/001400.html
2020-12-20 17:26:39 -05:00
- [x] Subscriptions
2020-12-07 15:18:47 -05:00
- Subscribing to RSS, Atom, and [JSON Feeds ](https://jsonfeed.org/ ) are all supported
- So is subscribing to a page, to know when it changes
2021-02-17 15:37:36 -05:00
- [x] Open non-text files in another application
2021-02-17 15:31:06 -05:00
- [x] Ability to stream content instead of downloading it first
2021-12-13 12:41:18 -05:00
- [x] *Highlighting of preformatted code blocks that list a language in the alt text*
2020-07-01 13:39:13 -04:00
- [ ] Stream support
2020-08-03 11:23:27 -04:00
- [ ] Table of contents for pages
- [ ] Search in pages with < kbd > Ctrl-F</ kbd >
2020-12-01 10:52:06 -05:00
- [ ] Persistent history
2020-06-18 16:54:48 -04:00
2020-12-01 10:52:06 -05:00
## Usage & Configuration
Please see [the wiki ](https://github.com/makeworld-the-better-one/amfora/wiki ) for an introduction on how to use Amfora and configure it.
2020-11-04 22:18:43 -05:00
2020-06-18 16:54:48 -04:00
## Libraries
Amfora ❤️ open source!
2021-04-07 12:52:22 -04:00
- [cview ](https://code.rocketnine.space/tslocum/cview ) for the TUI
2020-06-18 16:54:48 -04:00
- 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
2021-04-19 10:01:48 -04:00
- [progressbar ](https://github.com/schollz/progressbar )
2020-07-10 20:05:34 -04:00
- [go-humanize ](https://github.com/dustin/go-humanize )
2021-04-19 10:01:48 -04:00
- [gofeed ](https://github.com/mmcdole/gofeed )
2021-12-10 23:09:31 -05:00
- [chroma ](https://github.com/alecthomas/chroma ) for source code syntax highlighting
2021-12-07 21:31:57 -05:00
- [clipboard ](https://github.com/atotto/clipboard )
- [termenv ](https://github.com/muesli/termenv )
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.