bombadillo - a non-web browser
bombadillo [options] [url]
bombadillo is a non-web browser for the terminal. It features a full
terminal user interface, vim-like keybindings, document pager, configurable
settings, and a robust command selection.
-
bombadillo supports the following protocols as first
class citizens: gopher, gemini, finger, and local (a user’s file
system). Support for telnet, http and https is also available via
integration with third party applications.
- -h
- Display usage help and exit. Provides a list of all command
line options with a short description and exits.
- -t
- Set the window title to 'Bombadillo'. Can be used in a GUI
environment, however not all terminals support this feature.
- -v
- Display version information and exit.
All of the below protocols are supported. With the exception of gopher, the
protocol name must be present as the scheme component of a url in the form of
[protocol]://[the rest of the url].
- gopher
- Gopher is the default protocol for bombadillo. Any
textual item types will be visited and shown to the user and any non-text
types will be downloaded. Type 7 (querying) is fully supported. As the
default protocol, any url that is not prefixed with the scheme section of
a url ( gopher:// for example) will be treated as gopher urls.
- gemini
- Gemini is supported, but as a new protocol with an
incomplete specification, features may change over time. At present
Bombadillo supports TLS with a trust on first use certificate pinning
system (similar to SSH). Gemini maps and other text types are rendered in
the browser and non-text types will be downloaded.
- finger
- Basic support is provided for the finger protocol. The
format is: finger://[[username@]][hostname]. Many servers still
support finger and it can be fun to see if friends are online or read
about the users whose phlogs you follow.
- local
- Local is similar to the file protocol used in web
browsers or the like, with a smaller set of features. Users can use the
local scheme to view files on their local system. Directories are
supported as viewable text object as well as any files. Wildcards and
globbing are not supported. Using ~ to represent a user's home
directory, as well as relative paths, are supported. The color
theme has no effect on this protocol and all terminal escape sequences
will be rendered to the screen literally.
- telnet
- Telnet is not supported directly, but addresses will be
followed and opened as a subprocess by whatever telnet client a user sets
in their settings (defaulting to telnet). In some cases this
behavior may be buggy.
- http, https
- Neither of the world wide web protocols are supported
directly. bombadillo can be configured to open web links in a
user's default graphical web browser. It is also possible to display web
content directly in bombadillo using lynx, w3m, or elinks terminal
web browsers to render pages. Opening http/https links is opt-in only,
controlled by the webmode setting.
- Opening links in a default graphical web browser will only
work in a GUI environment.
- Displaying web content directly in bombadillo
requires lynx, w3m or elinks terminal web browsers are installed on the
system.
These commands work as a single keypress anytime
bombadillo is not taking
in a line based command or when the user is being prompted for action. This is
the default command mode of
bombadillo.
- b, h
- Navigate back one place in your document history.
- B
- Toggle the bookmarks panel open/closed.
- d
- Scroll down an amount corresponding to 75% of your terminal
window height in the current document.
- f, l
- Navigate forward one place in your document history.
- g
- Scroll to the top of the current document.
- G
- Scroll to the bottom of the current document.
- j
- Scroll down a single line in the current document.
- k
- Scroll up a single line.
- n
- Jump to next found text item.
- N
- Jump to previous found text item.
- q
- Quit bombadillo.
- R
- Reload the current page (does not destroy forward
history).
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
- Quick navigation to the first 10 links on a page. The 0 key
will navigate to the link numbered '10', all other numbers navigate to
their matching link number.
- U
- Move up a level in the current url path.
/mydir/mysubdir/myfile.txt would become /mydir/mysubdir/,
and so on.
- u
- Scroll up an amount corresponding to 75% of your terminal
window height in the current document.
- /
- Search for text within current document. / followed by a
text query will highlight and allow navigation of found text. / with an
empty query will clear the current query.
- <tab>
- Toggle the scroll focus between the bookmarks panel and the
document panel. Only has an effect if the bookmarks panel is open.
- <spc>
- Enter line command mode. Once a line command is input, the
mode will automatically revert to key command mode.
- :
- Alias for <spc>. Enter line command mode.
These commands are typed in by the user to perform an action of some sort. As
listed in KEY COMMANDS, this mode is initiated by pressing : or <space>.
The command names themselves are not case sensitive, though the arguments
supplied to them may be.
- [url]
- Navigates to the requested url.
- [link id]
- Follows a link on the current document with the given
number.
- add [url] [name...]
- Adds the url as a bookmarks labeled by name. a can
be used instead of the full add.
- add [link id] [name...]
- Adds the url represented by the link id within the current
document as a bookmark labeled by name. a can be used instead of
the full add.
- add . [name...]
- Adds the current document's url as a bookmark labeled by
name. a can be used instead of the full add.
- bookmarks
- Toggles the bookmarks panel open/closed. Alias for KEY
COMMAND B. b can be used instead of the full
bookmarks.
- bookmarks [bookmark id]
- Navigates to the url represented by the bookmark matching
bookmark id. b can be entered, rather than the full
bookmarks.
- check [link id]
- Displays the url corresponding to a given link id for the
current document. c can be used instead of the full
check.
- check [setting name]
- Displays the current value for a given configuration
setting. c can be used instead of the full check.
- delete [bookmark id]
- Deletes the bookmark matching the bookmark id. d can
be used instead of the full delete.
- help
- Navigates to the gopher based help page for
bombadillo. ? can be used instead of the full
help.
- home
- Navigates to the document set by the homeurl
setting. h can be entered, rather than the full home.
- jump
- Navigates to the previous page in history from the current
page. Useful for keeping the current page in your history while still
browsing. j can be used instead of the full jump.
- jump [history location]
- Navigates to the given history location. The history
location should be an integer between 0 and 20. j can be used
instead of the full jump.
- purge *
- Deletes all pinned gemini server certificates. p can
be used instead of the full purge.
- purge [host name]
- Deletes the pinned gemini server certificate for the given
hostname. p can be used instead of the full purge.
- quit
- Quits bombadillo. Alias for KEY COMMAND q.
q can be used instead of the full quit.
- reload
- Requests the current document from the server again. This
does not break forward history the way entering the url again would.
r can be used instead of the full reload.
- search
- Queries the user for search terms and submits a search to
the search engine set by the searchengine setting.
- search [keywords...]
- Submits a search to the search engine set by the
searchengine setting, with the query being the provided
keyword(s).
- set [setting name] [value]
- Sets the value for a given configuration setting. s
can be used instead of the full set.
- version
- Shows the current Bombadillo version number.
- write .
- Writes the current document to a file. The file is named by
the last component of the url path. If the last component is blank or
/ a default name will be used. The file saves to the directory set
by the savelocation setting. w can be entered rather than
the full write.
- write [url]
- Writes data from a given url to a file. The file is named
by the last component of the url path. If the last component is blank or
/ a default name will be used. The file saves to the directory set
by the savelocation setting. w can be entered rather than
the full write.
- write [link id]
- Writes data from a given link id in the current document to
a file. The file is named by the last component of the url path. If the
last component is blank or / a default name will be used. The file
saves to the directory set by the savelocation setting. w
can be entered rather than the full write.
bombadillo keeps a hidden configuration file in a user's XDG
configuration directory. The file is a simplified ini file titled
.bombadillo.ini. It is generated when a user first loads
bombadillo and is updated with bookmarks and settings as a user adds
them. The file can be directly edited, but it is best to use the SET command
to update settings whenever possible. To return to the state of a fresh
install, simply remove the file and a new one will be generated with the
bombadillo defaults. On some systems an administrator may set the
configuration file location to somewhere other than the default setting. If
you do not see the file where you expect it, or if your settings are not being
read, try
:check configlocation to see where the file should be, or
contact your system administrator for more information.
The following is a list of the settings that
bombadillo recognizes, as
well as a description of their valid values.
- configlocation
- The path to the directory that the .bombadillo.ini
configuration file is stored in. This is a read only setting and
cannot be changed with the set command, but it can be read with the
check command.
- defaultscheme
- The scheme that should be used when no scheme is present in
a given URL. gopher, gemini, http, and https
are valid values.
- geminiblocks
- Determines how to treat preformatted text blocks in
text/gemini documents. block will show the contents of the block,
alt will show any available alt text for the block, both
will show both the content and the alt text, and neither will show
neither. Unlike other settings, a change to this value will require a
fresh page load to see the change.
- homeurl
- The url that bombadillo navigates to when the
program loads or when the home or h LINE COMMAND is issued.
This should be a valid url. If a scheme/protocol is not included, gopher
will be assumed.
- maxwidth
- The number of characters at which lines should be wrapped.
If this is bigger than the available terminal width, the full width of the
terminal will be used. If a non-integer or an integer less than 10 is
given, a default value will be used.
- savelocation
- The path to the directory that bombadillo should
write files to. This must be a valid filepath for the system, must be a
directory, and must already exist.
- searchengine
- The url to use for the LINE COMMAND search. Should
be a valid search path that terms may be appended to.
- telnetcommand
- Tells the browser what command to use to start a telnet
session. Should be a valid command, including any flags. The address being
navigated to will be added to the end of the command.
- theme
- Can toggle between visual modes. Valid values are
normal, color, and inverse. When set to inverse, the
normal mode colors are inverted. Both normal and inverse modes filter out
terminal escape sequences. When set to color, Bombadillo will render
terminal escape sequences representing colors when it finds them in
documents.
- timeout
- The number of seconds after which connections to gopher or
gemini servers should time out if the server has not responded.
- webmode
- Controls behavior when following web links. The following
values are valid: none will disable following web links, gui
will have the browser attempt to open web links in a user's default
graphical web browser; lynx, w3m, and elinks will
have the browser attempt to use the selected terminal web browser to
handle the rendering of web pages and will display the pages directly in
Bombadillo.
There are very likely bugs. Many known bugs can be found in the issues section
of
bombadillo's source code repository (see
links).
bombadillo maintains a presence in the following locations:
- Source Code Repository
- https://tildegit.org/sloum/bombadillo
- Web Homepage
- http://bombadillo.colorfield.space
- Gopher Homepage
- gopher://bombadillo.colorfield.space
bombadillo was primarily developed by sloum, with kind and patient
assistance from ~asdf and jboverf.