feat(developer): Add a "Clone keyboard project" option to Keyman Developer
Use Case I want to use an existing keyboard from the GitHub repository as a base for a new keyboard. To do that I need to copy the files, rename many of them and change all the references (for example, the reference in the .kmn file to the .keyman-touch-layout file), before I can start making changes for a new keyboard.
Describe the solution you'd like Keyman Developer "New Project" brings up a number of choices, including Basic and Blank. Could there be a "Clone" (or maybe "Based on") option added? It could take the name of an existing keyboard project and the name of the new project and create the new project folder with all the files copied from the existing project, with file names changed, along with all references to them. Ideally the source project could be obtained from GH repository, or from a folder on the user's machine.
Describe alternatives you've considered Doing the copy and rename manually. (Pretty daunting for a new user.) Using New Project to create the new project, then copy and pasting data from the existing project to the new one. An alternative to incorporating this into Developer would be a standalone program that creates the new project.
Great idea! I'll add it to the mix :)
This is not going to make 14.0 -- too many other issues on the boil.
Notes from 18.0 Planning Conference:
- Copy local project
- Copy repo project
- Clone of single-keyboard repo
- New project – check name uniqueness
Also:
- Support renaming a project
also https://community.software.sil.org/t/copy-layouts-into-a-new-project/5816
See also:
- #10712
Continue discussion on #10166
Highlighting comments by @sewhite from #11847:
I understand that in version 17 the recommended model is to have only one keyboard per project. To implement this in my existing projects, I need to create some new projects for some of my keyboards. The process of doing this is cumbersome, for when you create a new project it assumes you want to create a keyboard at the same time. Instead of creating a new keyboard, I should be able to select an existing keyboard and move it from the folder it was into the same folder as my new project.
I can do this by creating a new keyboard with the same name as my existing keyboard file, saving the new project and closing Keyman developer, then copying my existing keyboard into the new project folder, overwriting the empty keyboard file I just created. But this is a cumbersome process.
Why not offer a fifth option to the four options when you click "new project". The fifth option would be "Import existing keyman keyboard from an older project". If you select it, it asks you to select the existing keyboard file, then offers the default location of a new folder with the existing keyboard name to create.
For instance I have a folder in my Keyboard Developer projects called "Office archive" where I copied all the keyboard files I created on my office computer in the last five years. Say I want to do some work on a keyboard I called "Clavbur". It would be great if I could click "New project" in Keyman Developer, choose "Import existing keyboard", browse to the clavbur.kmn file in my Office Archive, select it and have Developer name my new project "Clavbur", create the Clavbur folder inside the Projects folder, and copy "Clavbur.kmn" (and the other "clavbur" files) from my Office archive folder to the new project folder.