Persistent CLI flags for Vivaldi on Linux

Vivaldi's launcher reads extra command-line flags from a config file in your home directory on every launch. That's where `--disable-gpu-compositing` and friends belong. Don't edit the .desktop file.

Vivaldi's launcher script (/opt/vivaldi/vivaldi, with /usr/bin/vivaldi-stable symlinked to it) reads extra CLI flags from a config file in ~/.config/ on every launch. That's the right place for --disable-gpu-compositing, --enable-features=..., --ozone-platform-hint=auto, and other flags you want Vivaldi to use.

# Where to write it

Config filename comes from the channel:

  • Stable: ~/.config/vivaldi-stable.conf
  • Snapshot: ~/.config/vivaldi-snapshot.conf

One flag per line. (# is a comment). Example:

# ~/.config/vivaldi-stable.conf
--disable-gpu-compositing
--ozone-platform-hint=auto

Quit and relaunch Vivaldi for changes to take effect. Closing the last window doesn't quit Vivaldi if you have a tray icon enabled.

# Confirm the flags are active

Open vivaldi://version and check the Command Line field. Every flag you set should be visible there alongside the defaults. Missing flag usually means a typo or a syntax issue (forgetting the leading -- is a common one).

# Why not the .desktop file

It's tempting to edit /usr/share/applications/vivaldi-stable.desktop and append to Exec=. Don't:

  • Package manager rewrites that file on every Vivaldi update. Your changes drop silently.
  • Only affects launches from the desktop application menu, not the CLI or other launchers.
  • The launcher reads the conf file in addition to Exec=, so you'd still need the conf file for command-line launches.

If you genuinely need a per-application override (different flags for a launcher icon vs. a CLI alias), copy the .desktop file to ~/.local/share/applications/ first and edit the copy.

# When something breaks

  • GPU glitches on Wayland. --disable-gpu-compositing usually fixes things, but expect higher CPU load since the CPU now handles compositing. --ozone-platform-hint=auto can also help.
  • vivaldi://flags overrides. Those persist in the user profile, separate from CLI flags. If a flag from ~/.config/vivaldi-stable.conf doesn't seem to take effect, check vivaldi://flags for a conflicting override.
  • Vivaldi as Flatpak. Conf file path is sandboxed to ~/.var/app/com.vivaldi.Vivaldi/config/vivaldi-stable.conf. Same syntax. Useful when Vivaldi is installed via Flatpak (e.g. on Bazzite).

# References