Skip to content

mtgto/macSKK

Repository files navigation

macSKK test

macSKKはmacOS用のSKK方式の日本語入力システム (インプットメソッド) です。

macOS用のSKK方式の日本語入力システムにはすでにAquaSKKがありますが、いくつか独自の機能を作りたいと思い新たに開発しています。

macSKKを使用するには macOS 13.3 (Ventura) 以降が必要です。 Universal Binary (Apple Silicon & Intel Mac) でビルドしていますが、動作確認はApple Silicon環境でのみ行っています。

特徴

  • 日本語入力システムはパスワードなどの機密情報を処理する可能性があるため安全性が求められるプログラムです。そのためmacSKKはmacOSのSandbox機構を使いネットワーク通信やファイルの読み書きに制限をかけることでセキュリティホールを攻撃されたときの被害を減らすように心掛けます。
  • 不正なコードが含まれるリスクを避けるため、サードパーティによる外部ライブラリは使用していません。
  • すべてをSwiftだけでコーディングしており、イベント処理にCombineを、UI部分にはSwiftUIを使用しています。
  • 単語登録モードや送り仮名入力中などキー入力による状態変化管理が複雑なのでユニットテストを書いてエンバグのリスクを減らす努力をしています。

実装予定

しばらくはAquaSKKにはあるけどmacSKKにない機能を実装しつつ、徐々に独自機能を実装していこうと考えています。

実装予定の独自機能

  • 自動更新確認
    • Network Outgoingが可能なXPCプロセスを作成し、GitHub Releasesから情報を定期的に取得して新しいバージョンが見つかったらNotification Centerに表示する
  • 辞書のJSON形式への対応
  • xterm.jsを利用するアプリケーションでaiueoでひらがなが入力できない問題のワークアラウンド対応 (VSCode Terminal, Hyperなど)
  • iCloudにマイ辞書を保存して他環境と共有できるようにする
  • マイ辞書の暗号化
    • 編集したい場合は生データでのエクスポート & インポートできるようにする

インストール

2026年現在、Mac App Storeでは日本語入力システムを配布することができないため、Appleのソフトウェア公証を受けたアプリケーションバイナリをGitHub Releasesで配布しています。dmgファイルをダウンロードしマウントした中にあるpkgファイルからインストールしてください。

Homebrew Caskでインストールする場合:

brew install --cask macskk

詳しいインストール手順・辞書の導入方法は ドキュメントサイト を参照してください。

ドキュメント

設定・機能・FAQ などの詳細は https://mtgto.github.io/macSKK/ を参照してください。

開発

コントリビュートのガイドを .github/CONTRIBUTING.md に用意しています。

Xcodeでビルドし、 /Library/Input MethodsmacSKK.app を配置してからシステム設定→キーボード→入力ソースで ひらがな などを追加してください。

macOS 14以降ではApp Sandboxの制限が強くなりました。すでにリリース版macSKKを使っている環境で開発版のmacSKKを使用すると起動時に 「"macSKK"がほかのアプリからのデータへのアクセスを求めています。」 というダイアログが表示されることがあります。これはリリース版で署名に使用しているTeam IDと異なるProvisioning Profileを使用している (もしくはAd hoc署名を使っている) 場合に同じユーザー辞書ファイルにアクセスすることで発生します。この状態で「許可」を選んでしまうとリリース版のmacSKKが逆に読み込めなくなるなどの想定しない問題が発生する可能性があります。お手数ですがBundle Identifierを変更するなどを検討してください。

バージョンアップ

X.Y.Z 形式のバージョン (MARKETING_VERSION) とビルド番号 (CURRENT_PROJECT_VERSION) の更新が必要です。

ビルド番号

メジャー、マイナー、パッチ、どのバージョンアップでも1ずつインクリメントしてください。 Xcodeから手動でやってもいいし、agvtoolでもいいです。

agvtool next-version

MARKETING_VERSIONの更新

Info.plistCFBundleShortVersionStringで管理するのではなくpbxprojにMARKETING_VERSIONで管理する形式だとagvtool next-marketing-version が使えないみたいなのでXcodeで手動で変えてください。

リリース

  • CHANGELOGを記述
  • バージョンアップ
  • make clean && make release
  • GitHubのReleaseを作成、dmgとdSYMsをアップロード、CHANGELOGをコピペ

ライセンス

macSKKはGNU一般公衆ライセンスv3またはそれ以降のバージョンの条項の元で配布されるフリー・ソフトウェアです。

詳細は LICENSE を参照してください。

About

Yet Another macOS SKK Input Method

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors