Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Refactor: settings persistence

Open
#113 0 comments 0 reactions 1 assignee View on GitHub

@C-Achard is already working on this.

Since Aug 14, 2026.

Assessment

This issue has not been assessed yet.

Description

config enhancement gui

Improve configuration persistence and recovery UX

Goal

Prevent loss of unsaved experiment settings while keeping portable configuration separate from QSettings UI preferences.
Unsaved changes should be persisted in a temp recovery JSON, which the user can access.
This is to prevent settings being buried in QSettings, and allow for better inspection.

Persist in the recovery JSON

Autosave the complete portable experiment configuration:

  • multi_camera
    • Camera list, including single-camera setups
    • Backend and device identity
    • Resolution, FPS, exposure, gain, crop, rotation
    • Trigger and backend-specific properties
  • dlc
    • Model path and type
    • Device, precision, resize, dynamic crop
    • Additional processor options
  • recording
    • Output directory
    • Filename and container
    • Codec and CRF
    • Fast encoding
  • bbox
  • visualization
  • Not part of the schema yet:
    • Selected inference camera
    • Selected processor and enabled state
Keep in QSettings
  • Last explicit configuration path
  • Recovery config JSON path and maybe metadata
  • Recent configuration paths
  • Last directory used by file dialogs
  • Window geometry, dock layout, and theme (maybe)
  • Session name
  • Timestamp-based versus indexed run folder preference (or according to Session scope rework)
  • Other local UI preferences
Recovery behavior
  • Autosave modified configuration to a readable temporary JSON file
  • Include:
    • Schema version
    • Autosave timestamp
    • Associated explicit configuration path
  • Never overwrite the user’s explicit JSON file automatically
  • On startup, load the last valid explicit configuration best-effort
    • If a newer or different recovery file exists, offer:
      • Restore recovered configuration
      • Use saved configuration
      • Save recovery as...
  • Provide a way to open the recovery JSON file location
Unsaved config changes UX

Track whether the current UI differs from the last explicit save.

Before closing, loading another configuration, or replacing the current setup, show a warning message.

Additional low-effort UX improvements
  • Add a Recent configurations menu
  • Improve Save As for duplicating an experiment configuration
  • Extra validation?
  • Later consider a Start experiment action that starts preview, initializes inference, and optionally begins recording in a single click
Dominant language
Python
Stars
72
Forks
28
Avg merge
1d 10h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DeepLabCut/DeepLabCut-live-GUI

All issues in DeepLabCut/DeepLabCut-live-GUI

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.