Skip to content

Configuration

Madis Liias edited this page Apr 30, 2024 · 18 revisions

Some of the configuration is currently not editable via UI (and it contains experimental features). But it has pretty useful features like assigning a default browser for specific url patterns, so this documentation contains guidelines how to use it.

Cache File Path

Skip this section if you are interested only in the Configuration file (config.json)

Cache file is for read-only - e.g when you want to look up browser identifier - you can do this from installed_browsers.json cache file.

Open Browsers and navigate to ->About. Note down the Cache directory (sorry - can't copy it directly!). In that directory open a file named cache.json.

The path is usually:

  • macOS: ~/Library/Caches/software.Browsers/installed_browsers.json
  • Linux: ~/.cache/software.Browsers/installed_browsers.json (or $XDG_CACHE_HOME/software.Browsers/installed_browsers.json)
  • Windows: %LocalAppData%\software.Browsers\cache\installed_browsers.json

In this cache file you will be most interested in executable_path and profile_cli_arg_value, because Browsers identifies a profile by unique identifier as executable_path#profile_cli_arg_value.

Configuration File Path

Open Browsers and navigate to ->About. Note down the Config directory (sorry - can't copy it directly!). In that directory open a file named config.json.

The path is usually:

  • macOS: ~/Library/Application\ Support/software.Browsers/config.json
  • Linux: ~/.config/software.Browsers/config.json (or $XDG_CONFIG_HOME/software.Browsers/config.json)
  • Windows: %LocalAppData%\software.Browsers\config\config.json

Configuration File Content

The file looks something like this. Be aware that comments are not allowed in real file and are here only for explanation reasons.

{
  // Experimental, hide an whole app by profile. Can be useful if set of profiles in that browser changes often
  // and you want to always hide all of them.
  "hidden_apps": [],
  // Hide specific browser profile. Same as hiding via UI (either hiding a profile or all profiles of a browser)
  "hidden_profiles": [
    "/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox#default",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default-beta-1"
  ],
  // Explicit order of browser profiles. Same as ordering via UI
  "profile_order": [
    "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome#Default",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default#Personal",
    "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/Contents/MacOS/Safari#",
    "/Applications/DuckDuckGo.app/Contents/MacOS/DuckDuckGo#",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default#Banking",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default#Shopping",
    "/Applications/Firefox.app/Contents/MacOS/firefox#default#Work"
  ],
  // Profile unique id. If this is not null, then all pages, except the ones covered by explicit rule,
  // will be automatically opened by this browser (profile)
  // Value is in format `executable_path#profile_cli_arg_value` or `executable_path#` if no profile support for the app
  "default_profile": null,
  // List of automatic opening rules
  "rules": [
    {
      // Experimental (macOS only): open only when link was clicked in source_app. Works only in macOS. Format app bundle id
      "source_app": null,
      // URL pattern when to use this rule (see below for URL pattern syntax)
      "url_pattern": "**/something",
      // which profile to open in
      // Value is in format `executable_path#profile_cli_arg_value` or `executable_path#` if no profile support for the app
      "profile": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome#Profile 3",
      // whether to open the app in incognito mode if it supports it
      "incognito": false
    }
  ],
  // various UI settings (there are not many right now)
  "ui": {
    // whether to show the hotkeys (1-9) visually in UI. If disabled the hotkeys themselves will still work.
    "show_hotkeys": true
  }
}

Unique Profile ID

Browser + browser profile combination is uniquely identified by executable_path#profile_cli_arg_value. If the browser (or other application) does not support profiles, it's just executable_path# If the browser supports profiles and containers (only Firefox right now), it's executable_path#profile_cli_arg_value#profile_cli_container_name

You can find Unique Profile ID from the cache file (installed_browsers.json) or in this same config file if you have changed order for the browser explicitly.

URL Patterns

See https://github.com/Browsers-software/browsers/wiki/Rules

Clone this wiki locally