Bombabillo is a non-web client for the terminal, supporting Gopher, Gemini and much more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.7 KiB

package main
import (
var defaultOptions = map[string]string{
// The configuration options below control the default settings for
// users of Bombadillo.
// Changes take effect when Bombadillo is built. Follow the standard
// install instructions after making a change.
// Most options can be changed by a user in the Bombadillo client, and
// changes made here will not overwrite an existing user's settings.
// The exception to both cases is "configlocation" which controls where
// .bombadillo.ini is stored. If you make changes to this setting,
// consider moving bombadillo.ini to the new location as well, so you
// (or your users) do not loose bookmarks or other preferences.
// Further explanation of each option is available in the man page.
// Basic Usage
// Any option can be defined as a string, like this:
// "option": "value"
// Options can also have values calculated on startup. There are two
// functions below that do just this: homePath() and xdgConfigPath()
// You can set any value to use these functions like this:
// "option": homePath()
// "option": xdgConfigPath()
// See the comments for these functions for more information on what
// they do.
// You can also use `filepath.Join()` if you want to build a file path.
// For example, specify "~/bombadillo" like so:
// "option": filepath.Join(homePath(), bombadillo)
// Moving .bombadillo.ini out of your home directory
// To ensure .bombadillo.ini is saved as per XDG config spec, change
// the "configlocation" as follows:
// "configlocation": xdgConfigPath()
"configlocation": xdgConfigPath(),
"defaultscheme": "gopher", // "gopher", "gemini", "http", "https"
"geminiblocks": "block", // "block", "alt", "neither", "both"
"homeurl": "gopher://",
"savelocation": homePath(),
"searchengine": "gopher://",
"showimages": "true",
"telnetcommand": "telnet",
"theme": "normal", // "normal", "inverted", "color"
"tlscertificate": "",
"tlskey": "",
"webmode": "none", // "none", "gui", "lynx", "w3m", "elinks"
// homePath will return the path to your home directory as a string
// Usage:
// "configlocation": homeConfigPath()
func homePath() string {
var userinfo, _ = user.Current()
return userinfo.HomeDir
// xdgConfigPath returns the path to your XDG base directory for configuration
// i.e the contents of environment variable XDG_CONFIG_HOME, or ~/.config/
// Usage:
// "configlocation": xdgConfigPath()
func xdgConfigPath() string {
configPath := os.Getenv("XDG_CONFIG_HOME")
if configPath == "" {
return filepath.Join(homePath(), ".config")
return configPath