Skip to content

fix(config): migrate config editor saves to XDG profile#395

Draft
robkam wants to merge 1 commit into
mainfrom
fix/f10-config-xdg-migration
Draft

fix(config): migrate config editor saves to XDG profile#395
robkam wants to merge 1 commit into
mainfrom
fix/f10-config-xdg-migration

Conversation

@robkam

@robkam robkam commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • migrate F10 config saves into ~/.config/ytnova/ytnova.conf when that XDG config path is usable instead of recreating ~/.ytnova
  • seed new XDG config files from the in-memory runtime profile, while still accepting a surviving legacy profile as a lower-priority compatibility source
  • move default history persistence to XDG state ($XDG_STATE_HOME/ytnova/ytnova.hst or ~/.local/state/ytnova/ytnova.hst) while preserving explicit -h paths and legacy-history migration
  • make starter theme blocks easier to tweak by letting unchanged ordinary text roles follow a changed background without hand-editing every role
  • keep the shipped starter theme files readable by listing referenced role values before aliases such as margin = dynamic_text
  • document the XDG config/state path policy, fallback rule, and future bindings/labels path rule in the canonical docs

Validation

  • Red: source .venv/bin/activate && pytest -q tests/test_fileops_integrity.py -k 'copy_mutation_updates_only_destination_hashes or move_mutation_rehomes_hash_without_corrupting_payload or rename_mutation_preserves_file_hash or delete_mutation_removes_only_selected_file or copy_prompt_cancel_keeps_tree_snapshot_identical or same_path_copy_rejection_keeps_tree_snapshot_identical'
  • Red: source .venv/bin/activate && pytest -q tests/test_color_parser_runtime.py -k 'legacy_classic_blue_seed_rebases_redundant_background_roles'
  • Red: source .venv/bin/activate && pytest -q tests/test_color_parser_runtime.py -k 'legacy_custom_theme_seed_rebases_redundant_background_roles'
  • Red: source .venv/bin/activate && pytest -q tests/test_theme_config_paths.py -k test_config_paths_prefer_xdg_and_use_home_fallback_only_when_xdg_is_unavailable
  • make clean && make -j4
  • source .venv/bin/activate && pytest -q tests/test_fileops_integrity.py -k 'copy_mutation_updates_only_destination_hashes or move_mutation_rehomes_hash_without_corrupting_payload or rename_mutation_preserves_file_hash or delete_mutation_removes_only_selected_file or copy_prompt_cancel_keeps_tree_snapshot_identical or same_path_copy_rejection_keeps_tree_snapshot_identical or archive_copy_rewrite_updates_member_hashes_deterministically'
  • source .venv/bin/activate && pytest -q tests/test_archive_exit_ui.py -k 'missing_profile_f10_unchanged_edit_creates_profile or removed_legacy_profile_f10_recreates_xdg_not_dotfile or smallwindowskip_config_edit_applies_immediately_in_session'
  • source .venv/bin/activate && pytest -q tests/test_color_parser_runtime.py -k 'theme_roles_without_explicit_background_inherit_theme_background or legacy_classic_blue_seed_rebases_redundant_background_roles or legacy_custom_theme_seed_rebases_redundant_background_roles or invalid_user_theme_catalog_blocks_packaged_fallback or invalid_packaged_theme_catalog_falls_back_to_compiled_default or missing_user_theme_catalog_uses_packaged_catalog_without_creating_file or seeded_theme_miss_uses_installed_packaged_catalog' tests/test_theme_catalog_sync.py tests/test_theme_config_paths.py

@github-actions github-actions Bot added the size/M PR changed lines 201-400 label Jul 10, 2026
@robkam robkam force-pushed the fix/f10-config-xdg-migration branch from acadba4 to 1eacb09 Compare July 10, 2026 23:46
@github-actions github-actions Bot added size/XL PR changed lines > 1000 and removed size/M PR changed lines 201-400 labels Jul 10, 2026
Comment thread src/ui/ui_edit_config.c Fixed
@robkam robkam force-pushed the fix/f10-config-xdg-migration branch 6 times, most recently from b51ae95 to f5e51f0 Compare July 11, 2026 10:03
@robkam robkam force-pushed the fix/f10-config-xdg-migration branch from f5e51f0 to efe1d8a Compare July 11, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL PR changed lines > 1000

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants