Skip to content

Configuration

Every flag you can pass to login, mount, and tray also has a key in a TOML config file. The file lives at $XDG_CONFIG_HOME/proton-drive-fs/config.toml (or ~/.config/proton-drive-fs/config.toml), or wherever you point -config <path>. status also reads mountpoint from it when you don't pass one.

You don't need to create it yourself. The first command you run writes it with every key commented out at its default value, so you just uncomment what you want to change. If we can't write to that directory, we just use the built-in defaults.

We never reset your file to the defaults, but when you upgrade we do edit it to match the keys the new version knows. New keys go at the end, commented out at their default, and keys that don't exist anymore lose their commented-out lines. Anything you set yourself is never touched. The edit goes to a temporary file that's moved into place, and if your config.toml is a symlink, we update the file the link points to. Package upgrades restart the daemon, so this happens on the first start after the upgrade.

Precedence

A flag on the command line wins over the config file, and the config file wins over the built-in default.

config init and config show

proton-drive-fs config init [-config path] [-force]
proton-drive-fs config show [-config path] [flags...]

config init writes a config file with every key commented out at its default value and a one-line explanation, so you uncomment a line to set it. It won't overwrite a file that already exists unless you pass -force. Since every command already creates that file when it's missing, you only really need config init with -force to reset a file you edited, or with -config to write one somewhere else.

config show prints the configuration you'd actually get after merging the defaults, the file, and any flags you pass to config show itself. Each value has a comment saying where it came from: default, file, or flag (and unset for mountpoint, which has no default). It's the easiest way to check what mount or login would use before you run them.

Keys

Key Flag Default Meaning
mountpoint positional for mount/unmount/status, -mountpoint for tray none, required The mountpoint mount, unmount, status, and tray use when you don't pass one. There's no default, so read Indexer spam before you pick one.
ttl -ttl 30s How long a directory listing stays cached before we fetch it again.
poll -poll 10s How often we poll the event feed for remote changes.
op_timeout -op-timeout 60s Deadline for the network calls of one filesystem operation.
cache_dir -cache-dir $XDG_CACHE_HOME/proton-drive-fs Where we keep downloaded file blocks and directory listings on disk.
cache_size -cache-size 2GiB How much space the on-disk cache can use, blocks and listings together. "0" turns both off.
large_file -large-file 300MiB Files bigger than this skip the on-disk block cache. "0" turns the threshold off.
thumbnails -thumbnails true Write previews into the freedesktop thumbnail cache, from Proton's stored previews and the system thumbnailers.
thumbnail_dir -thumbnail-dir $XDG_CACHE_HOME/thumbnails The freedesktop thumbnail cache directory.
deny_readers -deny-readers see Usage Processes that can't read files bigger than large_file. Empty lets everyone read.
exclude -exclude see Usage Filename patterns we hide from listings and never upload. Globs by default, prefix with re: for a regexp.
upload_delay -upload-delay 5s How long a saved file waits after it closes before we upload it. "0s" uploads right on close.
upload_delays -upload-delays [] Per-pattern upload_delay overrides as "pattern=duration", like ["*.bak=1m"]. The first pattern that matches wins.
max_uploads -max-uploads 5 How many files we upload at the same time.
max_downloads -max-downloads 20 How many file blocks we download at the same time.
log_level -log-level info How much to log: debug, info, warn, or error.
log_stderr -log-stderr false Log to stderr instead of the systemd journal.
foreground -foreground false Stay attached to the terminal instead of going to the background.
hv_method -hv-method (none) Force a human verification method at login: captcha, email, or sms.
no_browser -no-browser false Don't open a browser for human verification at login.

Check Usage for the full description of each flag.

Cache directory

The listing cache keeps decrypted file and folder names on disk (under cache_dir/listings/, mode 0600), so a folder you listed before shows up right away the next time you mount. It shares the cache_size budget with the block cache (under cache_dir/blocks/), and cache_size = "0" turns both off. The exact paths are in General table of "where things are at", and Read the logs tells you which log level shows cache hits and misses.