Skip to content

Settings Sync stores custom theme selection as absolute paths, breaking cross-platform sync #9723

@nisavid

Description

@nisavid

Summary

Settings Sync stores custom theme selections as absolute file paths. When the same Warp account is used on macOS and Linux, a custom theme selected on one platform does not work on the other because Warp's supported custom theme directories are platform-specific.

Problem

A user syncs Warp settings between macOS and Linux and has the same custom theme YAML files installed on both systems. The selected custom theme is written to settings.toml under appearance.themes.selected_system_themes with a custom.path value. That path is absolute and OS-specific.

Documented theme locations differ by platform:

  • macOS: ~/.warp/themes/
  • Linux: ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/themes/

As a result, choosing the custom theme on macOS syncs a path like /Users/ivan/.warp/themes/catppuccin_mocha.yml, which Linux does not treat as the active discovered theme. Choosing the theme on Linux syncs a path like /home/nisavid/.local/share/warp-terminal/themes/catppuccin_mocha.yml, which macOS cannot use.

This makes Settings Sync fight itself for users who use the same custom themes across multiple OSes.

Expected behavior

Warp should allow custom theme selection to sync across platforms when the same theme is installed on each platform, without requiring users to make fake absolute paths.

Possible acceptable product behavior would be one of:

  • Sync custom theme selection by stable identity, such as theme name plus theme type, instead of absolute file path.
  • Treat custom theme selection as platform-specific/device-specific, like other platform-specific settings.
  • Resolve synced custom theme paths through each platform's documented theme directory when a matching theme exists.

Actual behavior

The selected custom theme is synced using an absolute path. The setting only works on the OS whose absolute path is stored in Settings Sync.

Observed behavior from the Linux side:

  • When settings.toml was manually changed to macOS-style paths under /Users/ivan/.warp/themes/*.yml, Warp did not use the custom themes on Linux.
  • Creating a symlink at /Users/ivan/.warp/themes pointing to the Linux theme directory did not make Warp accept the macOS paths.
  • Reversing the symlink so the real files lived under /Users/ivan/.warp/themes and Linux's theme directory pointed there also did not work.
  • Bind-mounting the Linux theme directory at /Users/ivan/.warp/themes also did not work, even though both paths had the same device and inode and the configured files were readable.
  • After selecting the themes in the Linux theme picker, Warp rewrote the synced value back to the Linux-discovered paths and updated the cloud preference with those paths.

Example values that get synced:

[appearance.themes]
selected_system_themes = {
  dark = { custom = { name = "Catppuccin Mocha", path = "/Users/ivan/.warp/themes/catppuccin_mocha.yml" } },
  light = { custom = { name = "Catppuccin Latte", path = "/Users/ivan/.warp/themes/catppuccin_latte.yml" } },
}

On Linux, selecting the same themes rewrites them to:

[appearance.themes]
selected_system_themes = {
  dark = { custom = { name = "Catppuccin Mocha", path = "/home/nisavid/.local/share/warp-terminal/themes/catppuccin_mocha.yml" } },
  light = { custom = { name = "Catppuccin Latte", path = "/home/nisavid/.local/share/warp-terminal/themes/catppuccin_latte.yml" } },
}

Reproduction steps or desired workflow

  1. Install the same custom theme YAML files on macOS and Linux using Warp's documented custom theme directories.
  2. Enable Settings Sync on the same Warp account on both OSes.
  3. On macOS, select a custom theme from ~/.warp/themes/.
  4. Let Settings Sync propagate the selection to Linux.
  5. Observe that Linux receives the macOS absolute path in the selected custom theme setting and the theme does not work as expected.
  6. On Linux, select the same custom theme from ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/themes/.
  7. Let Settings Sync propagate the selection to macOS.
  8. Observe that macOS receives the Linux absolute path and the theme no longer works there.

Artifacts

None attached.

Warp version

v0.2026.04.27.15.32.stable_03

Operating system

Observed on Linux: CachyOS, kernel/version 7.0.1-1-cachyos.

Also affects sync with macOS. macOS version is unknown; the macOS home directory in the user's setup is /Users/ivan.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:settings-keybindingsSettings UI, preferences, keybindings, and keyboard-shortcut management.area:warp-driveWarp Drive objects, sync, sharing, cloud object management, and persisted artifacts.bugSomething isn't working.duplicateThis issue or pull request already exists.os:linuxLinux-specific behavior, regressions, or requests.os:macmacOS-specific behavior, regressions, or requests.repro:highThe report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions