Bombadillo


This page contains legacy documentation for Bombadillo 1.0. Please visit bombadillo.colorfield.space for documentation of more recent/current versions of Bombadillo.


General Information



Bombadillo is a [gopher] client for the [terminal]. The application functions as a "full screen" terminal user interface. Keys are mapped similarly to [Vim] in order to provide a sense of familiarity and ease of control. Source code is written in golang and is freely available with the general intent being: use it however you like in a non-profit fashion. Linux, BSD, and OSX are fully supported for both ARM and x86_64.


Background


The name Bombadillo comes fromt he legendarium of [J.R.R. Tolkien], specifically The Lord of the Rings. [Tom Bombadil], who was a jolly fellow, is a mysterious figure. A seemingly simple character that speaks in rhymed meter and lives in the woods, Tom is master of his domain and is in his way quite powerful. The goal with Bombadillo, the gopher client, was to take this simple protocol (gopher) and make an easy to use, but powerful, client for the terminal.

The main developer of Bombadillo had made two other gopher clients previously: [Stubb] and [Burrow]. Stubb is also for the terminal; but did not function as a pager (full screen scrolling), and had a more confusing and less configurable usage pattern. Burrow is a graphical gopher client with an appearance much like a web browser (it even displays images), but it is difficult to get working correctly on a number of systems (it works as intended on debian based linux).

Bombadillo attempts to solve the shortcomings of those clients by being available as binaries for multiple operating systems and processor architectures. While it does not have the image viewing capabilities of Burrow, it is quick and easy to control and just feels right for the gopher protocol. The dream of the internet in the 90s as a place of freedom, expression, and community is alive and well via gopher. See the [links] section for other great clients and related projects.


Quick Start


Once installed on a system and included in the system path, a user can start the application by typing `bombadillo` into their terminal and pressing enter, or if they wish they can include a URL to visit: `bombadillo gopher://colorfield.space`.

At the top of the screen you will see the current URL. Below that you will see the content of your requested URL. If you did not pass a URL to Bombadillo when you ran the program you will be navigated to your home page. By default the home page is set to gopher based documentation for Bombadillo.

If you are on a gophermap you will see link numbers and types to the left of the main content. To visit a link press the spacebar and then enter the link number you would like to visit followed by the enter key. You can visit a different URL the same way: press the spacebar, type in the URL, and press enter.

To go forward or backward in history you can, without first pressing the spacebar, press `b` for back or `f` for forward.

That should get you started using Bombadillo at a basic level. There are many more options and features. Please read the [Documentation] section to find out more.


License


Bombadillo is released under the [GNU GPL Version 3] license. The basic gist: you are free to use this software, modify it, and share it; so long as any modifications or code based on it is released under the same license with the same terms (the source code must be freely available and modifiable by others). There is a little more to it than that, but that is the basic idea: free and open source software that will remain free and open source software.




Documentation



Gopher Support


Gopher is the sole protocol supported by Bombadillo at this time. Gopher types are implemented in a 4 tier fashion:

  1. Gophermaps are supported with all classic/standardized features
  2. Text documents are displayed in the client as scrollable documents
  3. Search is provided by a prompt, and usually returns a gophermap
  4. All other types (images, binaries, etc) are implemented as downloads


Navigation and Hot Keys


Navigation on a page is done via hot keys. Moving around a page, going forward and backward in history, toggling between windows, quitting the application, and entering command mode are all hot key based. Hot keys perform simple concrete actions. For more complex behavior, or behavior involving text entry, see the [commands] section.


-- Hot Key List --
Key Action
q Quit Bombadillo
b Go back a place in browsing history
f Go forward a place in browsing history
j Scroll down
k Scroll up
G Go to end
g Go to beginning
d Page down
u Page up
B Toggle bookmarks sidebar into or out of view
: Enter command mode. Once in command mode you may enter your command (see the [commands table])
spc Alternate entry into command mode
tab Toggle window selection between bookmark bar and main content window (only usable if bookmark bar is open). Lets a user scroll each window as needed.


Control Commands


As detailed in the above section on [hot keys], a user can initiate command entry by pressing the spacebar or :

Once command entry is initiated a user can enter a command to navigate to a link or url, adjust/view settings, add/remove bookmarks, download files, etc.


-- Command List --
Action Command/Syntax Alias Notes
Quit Bombadillo quit q Same as q hot key
Go home home h Set by homeurl option. Defaults to Bombadillo help document
Get help help ?
Search search Will promopt for search terms. Engine defaults to Veronica2. Engine can be set by searchengine option
Go to URL [url] Enter a url to go there, defaults to gopher protocol/port 70
Go to link [link#] Any number entered will be treated as a link. If the link number exists on the current page, it will be followed
Add bookmark add [url or link#] [title] a Instead of url or link # a user can use . to add the current page
Delete bookmark delete [bookmark#] d
Go to bookmark bookmark [bookmark#] b
Write to file write [url or link#] [filename] w Use . for current page. Downloads as filename at savelocation set in options, defaults to ~/Downloads/
Set option set [option name] [value] s
Check option check [option name] c Will print the value of a configuration option to the screen


Configuration


Configurations allow a user to customize the client as they see fit. A configuration file (ini format) is saved to the users home directory. This file can technically be edited directly, but it is recommended to use the set command to update configuration options. To verify current settings, use the check command.


-- Configuration Options List --
Option Name Value Type Default Value What it does
homeurl Gopher url gopher://colorfield.space:70/1/bombadillo-info Sets the homepage, which loads when Bombadillo opens
savelocation A non-relative filepath /[home path]/Downloads/ Sets the save location for downloads
searchengine A type 7 gopher url gopher.floodgap.com:70/7/v2/vs Sets what search engine to use when a user uses the search command
openhttp true / false false Toggles whether or not to try opening www links in a users web browser

Miscellaneous


Terminal Window Resizing

If you resize your terminal window the text display will likely become distorted and wrapped weirdly. Pressing any key when the screen is in this state will redraw the screen and realign the text. Do not that all hot keys will also still have their normal behavior, so avoid pressing `q` if you do not want to quit the application.


Runtime options

When running Bombadillo at the terminal prompt, a user may optionally pass a URL to have the client load that URL rather than the user's homepage.




Getting Bombadillo



Bombadillo is coded in [Go] and can be built from source. No outside libraries are used, just the Go standard library. The source code is designed with modules so requires Go 1.11+. The source code is available at https://tildegit.org/sloum/bombadillo.


-- Downloadable binaries are available for multiple operating systems/processor architectures --
OS Architecture Download Link
Linux x86 64-bit [bombadillo_linux_amd64.zip]
Linux x86 32-bit [bombadillo_linux_32.zip]
Linux Arm [bombadillo_linux_arm.zip]
OSX x86 64-bit [bombadillo_osx_64.zip]

Other platforms can be built for from source (various BSD systems, Plan 9, etc). Windows can technically be built, but is not verified as functional at present.