Bombabillo is a non-web client for the terminal, supporting Gopher, Gemini and much more. https://bombadillo.colorfield.space
Go to file
Sloom Sloum Sluom IV 30e550c183 Merge pull request 'Release to master 2.4.0' (#217) from develop into master
Reviewed-on: #217
2022-03-06 21:50:42 +00:00
cmdparse Solves merge conflicts with base and updates man page language 2020-11-19 20:06:22 -08:00
config Ran format on each file 2019-11-10 10:41:12 -08:00
cui Handle input errors while returning to correct terminal mode 2020-09-08 13:41:52 +10:00
finger Ran format on each file 2019-11-10 10:41:12 -08:00
gemini Minor fix to how we verify hostnames 2020-11-01 06:45:11 -08:00
gopher Brings gopher link numbering style inline with the other protocols 2020-10-31 21:44:45 -07:00
http Solves the lynx lack of 404 issue 2020-09-17 21:24:16 -07:00
local Simplifies .. navigation and passes actual errors 2019-11-17 14:58:43 -08:00
tdiv Adds lo-fi image rendering to Bombadillo 2020-02-13 21:26:23 -08:00
telnet Prevent changes in telnet breaking terminal display 2019-11-07 21:17:50 +11:00
termios Replace calls to `stty` with syscalls 2020-05-24 09:25:38 +03:00
.gitignore Updates gitinore to ignore swap files 2020-09-08 21:37:01 -07:00
DEVELOPING.md Updated to reflect the current release process 2020-09-08 15:10:52 +10:00
LICENSE Returns license to gpl3 2019-09-23 08:49:33 -07:00
Makefile Don't use GNU-specific gzip -k flag 2021-05-14 12:18:04 -05:00
README.md Adds prerequisit to readme 2020-05-27 22:31:23 -07:00
VERSION Adds version command 2020-11-01 06:55:46 -08:00
bombadillo-icon.png Adds bombadillo desktop settings and icon 2019-11-14 20:28:48 -08:00
bombadillo-screenshot.png Add image to README.md 2019-11-03 12:39:56 +11:00
bombadillo.1 Last minute update to add information about the maxwidth setting to the manpage 2022-02-15 21:19:22 -08:00
bombadillo.desktop Adds flag for displaying title and adds documentation 2019-12-16 19:40:52 -08:00
bookmarks.go Handles a number of linter errors 2019-11-10 11:35:52 -08:00
client.go Merge pull request 'Better word wrapping' (#214) from raidancampbell/bombadillo:master into release-2.4.0 2022-02-16 04:03:48 +00:00
defaults.go max width for softwraping now configured via maxwidth configuration item: default or invalid value falls back to previous 100 column 2022-02-06 22:08:19 -07:00
footbar.go Handles a number of linter errors 2019-11-10 11:35:52 -08:00
go.mod go.mod, go.sum mailcap cleanup, version decrement 2019-10-28 11:21:07 +11:00
headbar.go Handles a number of linter errors 2019-11-10 11:35:52 -08:00
help.go Minor adjustment to help output for jump command 2020-11-19 20:09:53 -08:00
main.go Removes previous version build system in favor of simple variable 2020-11-12 20:51:21 -08:00
page.go when wrapping, omit leading whitespace created if the wrap occurs at a space char 2022-02-08 20:47:16 -07:00
page_test.go when wrapping, omit leading whitespace created if the wrap occurs at a space char 2022-02-08 20:47:16 -07:00
pages.go max width for softwraping now configured via maxwidth configuration item: default or invalid value falls back to previous 100 column 2022-02-06 22:08:19 -07:00
url.go Adds UP hot key 2021-04-24 14:26:33 -07:00

README.md

Bombadillo - a non-web browser

Bombadillo is a non-web browser for the terminal.

a screenshot of the bombadillo browser

Bombadillo features a full terminal user interface, vim-like keybindings, document pager, configurable settings, and a robust command selection.

Currently, Bombadillo supports the following protocols as first class citizens:

  • gopher
  • gemini
  • finger
  • local (a user's file system)

Support for the following protocols is also available via integration with 3rd party applications:

  • telnet
    • Links are opened in a telnet application run as a subprocess.
  • http/https
    • Web support is opt-in (turned off by default).
    • Links can be opened in a user's default web browser when in a graphical environment.
    • Web pages can be rendered directly in Bombadillo if Lynx, w3m, or elinks are installed on the system to handle the document parsing.

Getting Started

These instructions will get a copy of the project up and running on your local machine. The following only applies if you are building from source (rather than using a precompiled binary).

Prerequisites

You will need to have Go version >= 1.11. To use the Makefile you will need a make that is GNU Make compatible (sorry BSD folks)

Building, Installing, Uninstalling

Bombadillo installation uses make. It is also possible to use Go to build and install (i.e go build, go install), but this is not the recommended approach.

Running make from the source code directory will build Bombadillo in the local directory. This is fine for testing or trying things out. For usage system-wide, and easy access to documentation, follow the installation instructions below.

Basic Installation

Most users will want to install using the following commands:

git clone https://tildegit.org/sloum/bombadillo.git
cd bombadillo
sudo make install

Note: the usage of sudo here will be system dependent. Most systems will require it for installation to /usr/local/bin.

You can then start Bombadillo by running the command:

bombadillo

To familiarize yourself with the application, documentation is available by running the command:

man bombadillo

Custom Installation

Configuration Options

There are a number of default configuration options in the file defaults.go, allowing customisation of the default settings for users of Bombadillo.

To use this feature, amend the defaults.go file as appropriate, then follow the standard install instructions.

Full documentation for these options is contained within the defaults.go file.

An administrator might use this to feature to set a default for all users of a system. Typically though, these options should not need changing, and a user may change most of these settings themselves once they start Bombadillo. The one option that can only be configured in defaults.go is configlocation which controls where .bombadillo.ini is stored.

Override Install Location

The installation location can be overridden at compile time, which can be very useful for administrators wanting to set up Bombadillo on a multi-user machine.

git clone https://tildegit.org/sloum/bombadillo.git
cd bombadillo
sudo make install PREFIX=/some/directory

There are two things to know about when using the above format:

  1. The above would install Bombadillo to /some/directory/bin, not to /some/directory. So you will want to make sure your $PATH is set accordingly.
  2. Using the above will install the man page to /some/directory/share/man/man1, rather than its usual location. You will want to update your manpath accordingly.

There are other overrides available - please review the Makefile for more information.

Uninstall

If you used the Makefile to install Bombadillo then uninstalling is very simple. From the Bombadillo source folder run:

sudo make uninstall

If you used a custom PREFIX value during install, you will need to supply it when uninstalling:

sudo make uninstall PREFIX=/some/directory

Uninstall will clean up any build files, remove the installed binary, and remove the man page from the system. It will not remove any directories created as a part of the installation, nor will it remove any Bombadillo user configuration files.

Troubleshooting

If you run bombadillo and get bombadillo: command not found, try running make from within the cloned repo. Then try: ./bombadillo. If that works it means that the application is getting built correctly and the issue is likely in your path settings. Any errors during make install should be visible, and you will be able to see what command it failed on.

Downloading

If you would prefer to download a binary for your system, rather than build from source, please visit the Bombadillo releases page. Don't see your OS/architecture? Bombadillo can be built for use with any system that is supported as a target for the Go compiler (Linux, BSD, OS X, Plan 9). There is no explicit support for, or testing done for, Windows or Plan 9. The program should build on those systems, but you may encounter unexpected behaviors or incompatibilities.

Documentation

Bombadillo's primary documentation can be found in the man entry that installs with Bombadillo. To access it run man bombadillo after first installing Bombadillo. If for some reason that does not work, the document can be accessed directly from the source folder with man ./bombadillo.1.

In addition to the man page, users can get information on Bombadillo on the web @ http://bombadillo.colorfield.space. Running the command help inside Bombadillo will navigate a user to the gopher server hosted at bombadillo.colorfield.space; specifically the user guide.

Contributing

Bombadillo development is largely handled by Sloum, with help from asdf, jboverf, and community input.

There are many ways to contribute to Bombadillo, including a fair few that don't require knowledge of programming:

  • Try out the browser and let us know if you have a suggestion for improvement, or if you find a bug.
  • Read the documentation and let us know if something isn't well explained, or needs correction.
  • Maybe you have a cool logo or some art that you think would look nice.

If you have something in mind, please reach out or open an issue.

We aim for simplicity and quality, and do our best to make Bombadillo useful to its users. Any proposals for change are reviewed by the maintainers with this in mind, and not every request will be accepted. Furthermore, this software is developed in our spare time for the good of all, and help is provided as best efforts. In general, we want to help!

The maintainers use the tildegit issues system to discuss new features, track bugs, and communicate with users regarding issues and suggestions. Pull requests should typically have an associated issue, and should target the develop branch.

Development

See DEVELOPING.md for information on how changes to Bombadillo are made, along with other technical information for developers.

License

This project is licensed under the GNU GPL version 3. See the LICENSE file for details.

Releases

Starting with version 2.0.0 releases into master will be version-tagged. Work done toward the next release will be created on work branches named for what they are doing and then merged into develop to be combined with other ongoing efforts before a release is merged into master. At present there is no specific release schedule. It will depend on the urgency of the work that makes its way into develop and will be up to the project maintainers' judgement when to release from develop.