Skip to content

feat: add settings import/export#938

Open
zdennisz wants to merge 1 commit into
SteamDeckHomebrew:mainfrom
zdennisz:feature/import-export-settings
Open

feat: add settings import/export#938
zdennisz wants to merge 1 commit into
SteamDeckHomebrew:mainfrom
zdennisz:feature/import-export-settings

Conversation

@zdennisz

@zdennisz zdennisz commented Jul 6, 2026

Copy link
Copy Markdown

Summary

  • Adds "Backup & Restore" section to Settings > General page
  • Export creates a ZIP of ~/homebrew/settings/ and ~/homebrew/data/ with a manifest
  • Import restores from a previously exported ZIP, merging into existing dirs
  • Uses existing file picker modal for folder/file selection
  • Accessible directly from Gaming Mode — no Desktop Mode needed

Closes #904

Implementation

Backend (utilities.py):

  • utilities/export_settings — takes destination path, produces decky_backup_<timestamp>.zip
  • utilities/import_settings — takes zip path, extracts settings + data

Frontend (settings/pages/general/index.tsx):

  • Export button → folder picker → creates ZIP → toast notification
  • Import button → file picker (.zip) → restores → toast with count

What's included in export:

  • settings/ — loader.json + per-plugin settings
  • data/ — per-plugin runtime data (themes, configs)
  • manifest.json — version, date, plugin list

What's NOT included:

  • plugins/ — reinstallable from store
  • logs/ — not useful for backup
  • services/ — the binary itself

Test plan

  • Export from General Settings → ZIP created with correct structure
  • Import ZIP → settings/data restored, toast shows count
  • Export on device A, import on device B → cross-device migration
  • Import with no existing settings dir → dirs created
  • Large data/ dir (CSSLoader themes) → exports without issues

🤖 Generated with Claude Code

Adds backup & restore functionality accessible from Gaming Mode:
- Export: creates a ZIP of ~/homebrew/settings/ and ~/homebrew/data/
  with a manifest.json containing version and plugin list
- Import: restores settings/data from a previously exported ZIP

Backend routes: utilities/export_settings, utilities/import_settings
UI: "Backup & Restore" section in Settings > General with file picker

Closes SteamDeckHomebrew#904

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@zdennisz zdennisz mentioned this pull request Jul 6, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Request] Import/Export Ability

1 participant