Skip to content

feat(mac): migrate data from Keyman 17 and 18 馃崕 - #16315

Draft
sgschantz wants to merge 20 commits into
epic/mac-configfrom
feat/mac/migrate-data
Draft

feat(mac): migrate data from Keyman 17 and 18 馃崕#16315
sgschantz wants to merge 20 commits into
epic/mac-configfrom
feat/mac/migrate-data

Conversation

@sgschantz

Copy link
Copy Markdown
Contributor

Migrate the settings stored in UserDefaults and previously installed keyboard packages from their locations in either Keyman 17 or 18 to the new shared locations.

Here is where the keyboard packages are stored for each version
For Keyman 17: ~/Documents/Keyman-Keyboards
For Keyman 18: ~/Library/Application Support/keyman.inputmethod.Keyman/Keyman-Keyboards
For Keyman 19: ~/Library/Group Containers/group.com.keyman/Library/Application Support/Keyman-Packages/

The settings for 17 and 18 are stored in the app defaults for the input method: keyman.inputmethod.Keyman
The settings for 19 are stored in the app defaults for the app group: group.com.keyman

Build-bot: release:mac
Test-bot: skip

sgschantz added 19 commits July 20, 2026 18:04
provides a simple way for UI to determine what to
present to the user
also generates events, but these could be generated
before the UI has a chance to listen for them
for new installations, check if the input method is
enabled and whether it has Accessibility permission
before adding those items to the task list as they
may be in place from a previous installation
creates custom list of installation state in case
some of the installation was done previously
checks whether repairs are needed for completed
installations
fixes bug to kill keyman for CheckAccess call
also fixed bug where InstallState not initialzied
when installation evaluation is not happening
this is checked on init to complete an installation
also added flag for tracking whether the complete
message has been displayed to the user
this ensures that the changes to this published
property will result in a SwiftUI notification

also made a couple changes in response to devin.ai
code review
InstallationState is now only stored in
InstallationCheck -- InstallationContainer must
access it from there
add setting to allow testing with version mismatch
@sgschantz sgschantz added this to the A19S35 milestone Aug 8, 2026
@sgschantz sgschantz self-assigned this Aug 8, 2026
@sgschantz sgschantz added this to Keyman Aug 8, 2026
@keymanapp-test-bot

keymanapp-test-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

@github-project-automation github-project-automation Bot moved this to Todo in Keyman Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant