id = "qutebrowser" name = "qutebrowser" homepage = "https://qutebrowser.org" description = "A keyboard-focused browser with a minimal GUI, based on Python and Qt." # The icon qutebrowser ships with itself, larger than the 32px favicon its # site serves. icon = "https://raw.githubusercontent.com/qutebrowser/qutebrowser/main/qutebrowser/icons/qutebrowser-256x256.png" executables = ["qutebrowser"] [dotfiles] # qutebrowser/utils/standarddir.py is the whole story. _init_config() takes Qt's # QStandardPaths.ConfigLocation — $XDG_CONFIG_HOME/qutebrowser on Linux, # ~/Library/Preferences/qutebrowser on macOS, and AppDataLocation joined with # "config" on Windows — and then overrides the *non-auto* config location on # macOS only: # # # Override the normal (non-auto) config on macOS # if utils.is_mac: # path = os.path.expanduser('~/.' + APPNAME) # # So on a Mac the two halves live apart: config.py, quickmarks and # bookmarks/urls under ~/.qutebrowser (browser/urlmarks.py joins both mark files # onto standarddir.config()), while autoconfig.yml stays in the untouched # auto-config location, ~/Library/Preferences/qutebrowser # (config/configfiles.py writes it under standarddir.config(auto=True)). On # Linux and Windows one directory holds all of it. # # The Homebrew cask's zap stanza lists the same three macOS locations # (https://formulae.brew.sh/api/cask/qutebrowser.json): ~/.qutebrowser, # ~/Library/Preferences/qutebrowser and ~/Library/Application Support/qutebrowser. # The last one is standarddir.data() — history.sqlite, sessions/, the web engine # profile — which is state, so it is not listed here. # # [configHome] is the Linux spelling, since Qt reads $XDG_CONFIG_HOME there. On # a Mac that root resolves to ~/.config/qutebrowser, a directory qutebrowser # never creates, and a consumer skips a path that is not on disk. paths = [ "~/.qutebrowser/", "[preferences]/qutebrowser/", "[configHome]/qutebrowser/", "%APPDATA%/qutebrowser/config/", ] # qsettings is Qt's own settings store, written beside autoconfig.yml by # configfiles.py (`os.path.join(standarddir.config(auto=True), 'qsettings')`). # It holds window geometry and similar per-machine leftovers, not anything the # user wrote. Carved out of every spelling, or the copy the Unix tree drops # comes back from the Windows one. exclude = [ "~/.qutebrowser/qsettings", "[preferences]/qutebrowser/qsettings", "[configHome]/qutebrowser/qsettings", "%APPDATA%/qutebrowser/config/qsettings", ] # No credential among the config files: qutebrowser keeps no passwords of its # own, and the browser profile that holds cookies and site data is in the data # directory, which is not listed. secret = [] # No machine_lines: config.py is Python, which this schema has no matcher for, # and everything a user puts in it — keybindings, colours, search engines — is # what they want on the next machine.