Skip to content

bug: 入力方式で「カスタム」を選んでも既定のローマ字入力のままになる(ConverterServer 分離以降) #359

Description

@shiina-archelon

症状

設定の「入力方式」で「カスタム」を選んでも既定のローマ字入力のままになってしまう。

環境

  • azooKey-Desktop main (7ed6b6d) を手元でビルド
  • feat: apply process separation #335 で変換が別プロセス (ConverterServer) になって以降で起きる。v0.1.5-beta.1 でも同じ
  • macOS 26.5 / Apple Silicon

原因

カスタムテーブルを保存する側と読む側で、見ているフォルダが違う。

  1. 表を保存する設定画面は sandbox の中で動くので、sandbox container の中 (~/Library/Containers/dev.ensan.inputmethod.azooKeyMac/Data/Library/Application Support/azooKeyMac/…) に書かれる
  2. 表を読む ConverterServer は sandbox の外で動く。同じパスを本当の ~/Library/Application Support/azooKeyMac/… として読むので、そこに file は無い
  3. file が見つからないと ConverterServer は黙って既定のローマ字入力に切り替える

CustomInputTableStore.directoryURLFileManager.default.urls(for: .applicationSupportDirectory, …) を直接使っているため。
他のデータのうち、保存先が変わった typo correction の重みは AppGroup.applicationSupportDirectoryURL() で App Group の共有コンテナを使っていて、sandbox の内外どちらからも同じ場所が見える。

修正方針

  • 同じ問題を解決している typo correction の重みと同じ形で解決する
  • CustomInputTableStore の保存先を AppGroup.applicationSupportDirectoryURL() の下 (~/Library/Group Containers/group.dev.ensan.inputmethod.azooKeyMac/Library/Application Support/azooKey/CustomInputTable/) に変える
  • v0.1.4 以前でカスタム入力テーブルを作っていたユーザーのために、設定画面で入力方式が「カスタム」のとき、旧保存先から新しい保存先へ表をコピーする (新しい保存先に表があれば何もしない)。typo correction の重みの移行 (ConfigWindow.migrateLegacyDebugTypoCorrectionWeightsIfNeeded) と同じ形

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions