id = "franz" name = "Franz" homepage = "https://meetfranz.com" description = "Franz is a free messaging app for services like WhatsApp, Slack, Messenger and many more." # The apple-touch-icon from the project's homepage. icon = "https://meetfranz.com/apple-touch-icon.png" executables = ["franz", "Franz"] [dotfiles] # src/config.js: `export const SETTINGS_PATH = path.join( # app.getPath('userData'), 'config')`, and src/electron/Settings.js writes # each settings object to `${type === 'app' ? 'settings' : type}.json` inside # it, with FILE_SYSTEM_SETTINGS_TYPES = ['app', 'proxy'] — so the two files # are config/settings.json and config/proxy.json. # # Franz is an Electron app, so userData is /: # ~/Library/Application Support/Franz on macOS, $XDG_CONFIG_HOME (else # ~/.config) on Linux, and %APPDATA%\Franz on Windows, which config.js pins # explicitly (`app.setPath('appData', process.env.APPDATA)` under win32). # That is the platform-native config directory under all three names, so # [appData]. paths = ["[appData]/Franz/config/settings.json"] exclude = [] # The proxy settings Franz stores per service. src/components/settings/ # services/EditServiceForm.js collects a proxy user and password alongside the # host and port, and Settings.js writes the whole 'proxy' store to this one # file, so the file is a set of proxy logins rather than a preference with a # credential in it. secret = ["[appData]/Franz/config/proxy.json"] # No machine_lines: settings.json is the app's own preferences — language, # dark mode, notification and spellchecker toggles, the enabled services — # which is what a user wants on a second machine. Service logins are not in # it; they live in the Electron session partitions beside the config # directory, which this entry does not name.