Skip to content

Releases: xvxx/phetch

v1.2.0

04 Dec 23:42
Compare
Choose a tag to compare

phetch is all about fun colors, but your options have always been limited. You could turn off colors via NO_COLOR env variable or you could leave them on. That's it.

Well, not anymore. As of v1.2, phetch now supports themes, in addition to a few new config options.

image

Android & Termux

  • phetch is now available on Android via Termux! You can find phetch-v1.2.0-android-aarch64.tgz at the bottom of this release. Thanks @mmpx12!

Bugfixes

  • Suspending and resuming phetch with ctrl-z/fg should now work properly on non-fish shells.

Config Options

The new config options in this release, for your convenience, are as follows:

  • scroll controls how many lines to jump by when paging up/down. If set to 0 (the new default), you'll jump by an entire screen.
  • autoplay controls whether you'll be prompted to play media files or not. By default it's false, but one might find it handy to set to true if hosting, say, a Gopher-powered music server.

Keyboard Shortcuts

Just one, but it's a doozy:

  • You can now reload the current URL by pressing R (shift+r). Super handy when developing your own Gopherhole!

Themes

As mentioned, themes are simple files with roughly the same format as phetch.conf:

$ cat ~/.config/phetch/default.theme
# Color Scheme
## UI
ui.cursor white bold
ui.number magenta
ui.menu yellow
ui.text white

## Items
item.text cyan
item.menu blue
item.error red
item.search white
item.telnet grey
item.external green
item.download white underline
item.media green underline
item.unsupported whitebg red

Create your theme file and launch phetch with -t FILE, or set the theme FILE option in your ~/.config/phetch/phetch.conf

You can also set theme colors directly in your phetch.conf.

Learn more about themes, including which colors are available, by opening phetch's on-line help: press h then 7 to get there quickly.

For reference, we've included a few fun themes in the repo itself that you can download and play with:

https://github.com/xvxx/phetch/tree/master/themes

image

image

v1.1.0

17 Nov 04:05
Compare
Choose a tag to compare

Three new features in this release, plus an unknown number of new bugs:

  1. When the NO_COLOR env variable is set, phetch won't use colors when rendering menus. See https://no-color.org/ for more information.

  2. CP437 encoding support! You can toggle it on or off using ctrl-e (for encoding) when viewing a Gopher text document, or using the --encoding command line flag. See https://en.wikipedia.org/wiki/Code_page_437.

    Huge thanks to Kjell for suggesting this feature and providing some great test data!

    NOTE: This only works for text documents since there's no TAB character in CP437.

  3. phetch now supports a primitive form of wrapping long lines when rendering Gopher text documents. It won't reflow the text, but it will make some phlogs and other documents slightly more readable. Enable it with --wrap NUM or by adding wrap NUM to your phetch.conf. You can disable it with wrap 0.


You may have run into long lines that don't break at the margins, making the page hard to scroll and read:

not wrapped

Now, by either passing --wrap NUM or adding wrap NUM to your phetch.conf file, phetch will attempt to wrap long lines at the nearest punctation or space:

wrapped

This is really useful if you want to browse, say, a directory of Markdown files over Gopher. Modern Markdown is often written with the assumption that the client will do the wrapping, so it can end up looking pretty messy in an ananchronistic client like phetch. Reading those files is now a bit easier:

not wrapped wrapped
not wrapped wrapped

This also works nicely on native Gopher content: phlog entries sometimes have long URLs in their footnotes, and that could screw up phetch's margin calculations.

Note that this doesn't do any reflow of text, so documents with long lines will still look a bit wonky, as you can see above. Some lines will be too short. But it's a lot more usable, so we'll take it!

PS: You can use smaller values to get weird with it:

weird

Enjoy!

v1.0.7

03 Oct 07:14
Compare
Choose a tag to compare

This release fixes #19

phetch was aborting whenever it encountered a connection error instead of trying the alternate socket addrs it was given.

Special thanks to @Ramiferous and @voidpin and rvp!

v1.0.6

01 Oct 02:02
Compare
Choose a tag to compare

More "reload" bugfixes.

v1.0.5

28 Sep 16:25
Compare
Choose a tag to compare

Very minor release that fixes a crash introduced in 1.0.4.

v1.0.4

26 Sep 20:04
Compare
Choose a tag to compare

Small release. The ctrl-u and ctrl-g keyboard shortcuts can now be used to reload the current page.

Please enjoy this photo of phetch running on a Pocket CHIP:

(Via https://qoto.org/@freemo/104241949575009245)

v1.0.3

30 May 18:59
Compare
Choose a tag to compare

This release adds support for the ; and s Gopher item types, as well as the ability to play them in a media player, meaning you can now run Gopher-powered media servers! As seen here:

https://twitter.com/grufwub/status/1264296292764856320

mpv is used by default, but you can specify a custom player or disable the feature using the -m and -M flags. Info has been added to --help and the phetch manual.

Special thanks to @grufwub for the feature request and getting the code rolling!

Enjoy!

v1.0.2

15 May 00:13
Compare
Choose a tag to compare

This release fixes a few small but irritating bugs:

  • ANSI color codes now render properly. Full technicolor support.
    Try it out: phetch gopher://tilde.black/1/users/genin/
  • Resizing your terminal now resizes phetch automatically.
  • Downloads can now be cancelled while in-progress with no funny business.
  • Debug information is now properly displayed when phetch crashes.

Grab a binary for your platform below or:

  • brew install xvxx/code/phetch on macOS
  • yay phetch on Arch Linux
  • cargo install phetch with Cargo

v1.0.1

03 May 15:20
Compare
Choose a tag to compare

This is a small bugfix release. Thanks to @TheEnbyperor and @grufwub!

  • phetch no longer panics on multibyte characters when trying to truncate Gopher content.

See the Installation section of phetch's README for info on how to install and update. Enjoy!

v1.0.0

25 Feb 22:12
Compare
Choose a tag to compare

phetch is now v1.0.0! Major thanks to @kseistrup for design, testing, and documentation, @iglosiggio for supporting GILD, @Lartu for inspiration, and @antirez for re-introducing me to Gopher one year ago with his blog post, Gopher: a present for Redis.


phetch


phetch is a terminal Gopher client designed to help you quickly navigate the gophersphere. With a snappy, text-based UI, Gopher types distinguished by color, and built-in support for secure Gopher and Tor routing, phetch is perfect for catching up on the latest from sdf.org or kicking back and enjoying some Zaibatsu.

Download a binary release below for Linux, Raspberry Pi, or macOS, or see the Installation section of the README for instructions on how to install for Arch Linux with AUR (yay phetch), macOS with homebrew (brew install xvxx/code/phetch), or how to build from source.


I have fond memories of using telnet to connect to the local library when I was a kid, browsing their selection of books in an amber-colored, text-based interface. This was the mid-90s, so I was using some version of Windows, literally dialing into the library with Hyperterminal.

library tui

It was futuristic. And, I thought, lost in the past. But Gopher, a relic of that text-based era, lives on thanks to the work of some amazing folks, and today there are more Gopher servers than ever.

The protocol is simple, constrained, and bursting with opportunity. And while MTV may not have an active Gopher server anymore, you can easily run your own, or find a generous host like SDF or a tilde.


gopher menu in phetch


phetch is my attempt to bring a little bit of that retro-nostalgia back into my terminal. Sure, I can acccess Gopher just fine using lynx or through a web proxy like Floodgap, but where's the fun in that?

To get started just install and run phetch.

It's not perfect, but I've had fun using it, and I hope you do too!