Use gitignore so common end user modifications don't prevent git pull
Describe the feature / solution to your problem you'd like
Please have a folder for themes that are included by default, and another folder for themes that we might create ourselves or get from other sources. Please add this folder to the gitignore file so that we can pull down newer versions of the repository without needing to copy our themes out of the folder and add them back in after pulling down changes.
A related challenge would be to, upon first run, generate a config.yaml copy (userconfig.yaml?) that is actually used for storing settings, and having that config file be in the gitignore. That way, the user might run the script for the first time and have a config file generated for them, but since that would be in the gitignore, they would still be able to get changes. The config.yaml right now might be renamed to config.yaml.template to show that it is used for the generation of a config file.
Ideally, files that are commonly modified by end users would be in the gitignore, but there should be an option for an initial config to be generated in the absence of a user config.
Describe alternatives you've considered / and or tested
Currently, I use a PowerShell script to move my theme and config out of the directory, and move them back into the repo after pulling down the changes.
Screenshots / photos & mockups of the Turing screen
Here is an example of files I need to move out before I can pull the latest code down:
Environment:
- Revision of this project [main branch]
- OS with version [Windows 11]
- Python version [python 3.11]
- Hardware [AMD Ryzen 7950x3D, GeForce RTX 4090, 128GB RAM]
Additional context
These changes should encourage tinkering, and encourage updates to the latest version.
Those that have issues after downloading the latest updates should consider clearing their personal settings file in case the format changes and they need to pull the latest version.
Upon thinking about it more, keep the name of the actual config file as config.yaml so existing users can keep their configurations, but add it to the gitignore file. Remove config.yaml from the repository, and instead create a config.yaml.template file. In the main script, have it generate a config.yaml only if it is not already present, and let the user know that they may need to modify that file for their use cases.
Regarding the themes, I am hopeful that having a directory for default included themes and themes that end users generate or download shouldn't be terribly hard and might just require a notation for user themes (lack of a notation would default to the regular theme directory, so as to maintain current config compatibility.)