musescore / musescore/MuseScore

make configurationfiles to be friendly to managed dotfiles

Open
#33,053 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

Add configuration files options such that it is friendly to managed dotfiles in way that changes are not done to configuration files unless changes to settings are done.

Problem to be solved

Currently, MuseScore4 stores configuration (on Linux) in ~/.config/MuseScore/MuseScore4.ini
This file contains parts that are changing based on version, for example welcomeDialogLastShownVersion is expected to change independently from preferences.
This causes changes in the file and will cause inconsistencies and changes for managed dotfiles that are being synchronized across machines

When this is paired with automatic synchronization with versioning across multiple machines it causes changes to the synchronized file each time when machines are not running same version of MuseScore4 and MuseScore is opened.

Prior art

There are two general approaches how this is solved in other applications
A) Separate user settings and information stored for application sake to separate files - configuration files will be changed on change from GUI and user will not need to wory about changing the file himself
B) Create override file containing user settings like is used for Mozilla Firefox - user will need to manually create file and configure settings that will override settings in other files (currently settings in MuseScore4.ini file). For example of this approach see how Mozilla Firefox uses user.js file for managing settings.

Additional context

No response

Checklist
  • This request follows the guidelines for reporting issues
  • I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests

Contributor guide

Open the contributing guide

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.

Research direction

Start by inspecting how ~/.config/MuseScore/MuseScore4.ini is read and written, especially the version-dependent welcomeDialogLastShownVersion setting. Compare separating application state from user preferences with an override file such as user.js. Done means version-only changes no longer rewrite managed user settings across machines.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.