Code Monkey home page Code Monkey logo

macskk's Introduction

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に表示する
  • iCloudにマイ辞書を保存して他環境と共有できるようにする
  • マイ辞書の暗号化
    • 編集したい場合は生データでのエクスポート & インポートできるようにする

インストール

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

macSKKのインストール後に、システム設定→キーボード→入力ソースから「ひらがな (macSKK)」と「ABC (macSKK)」を追加してください。カタカナ、全角英数、半角カナは追加しなくても問題ありません。 もしインストール直後に表示されなかったり、バージョンアップしても反映されない場合はログアウト & ログインを試してみてください。

SKK辞書は ~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Documents/Dictionaries に配置してください。 その後、入力メニュー→環境設定を開き、辞書設定で使用する辞書を有効に切り替えてください。EUC-JPでないエンコーディングの場合はiボタンからエンコーディングを切り替えてください。現在はEUC-JP (EUC-JIS-2004を含む) とUTF-8に対応しています。辞書ファイルの形式はYAML形式、JSON形式なども提案されていますが現在は未対応です。

辞書の削除は上記フォルダから辞書ファイルをゴミ箱に移動するかファイルを削除してください。macSKKが自動で無効化します。

ユーザー辞書は ~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Documents/Dictionaries/skk-jisyo.utf8 にUTF-8形式で保存されます。 ユーザー辞書はテキストエディタで更新可能です。別プロセスでユーザー辞書が更新された場合はmacSKKが自動で再読み込みを行います。

設定

macSKKが入力メソッドとして選択されているときに入力メニューから「設定…」でGUIの設定画面を開くことができます。またプライベートモードのように入力メニューから直接有効・無効を切り替えるものがあります。

設定は Plist 形式で ~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Library/Preferences/net.mtgto.inputmethod.macSKK.plist に保存されます。

キー 値の型 設定の意味
dictionaries Array 辞書設定
directModeBundleIdentifiers Array 直接入力モードにしているアプリケーションのBundle Identifierの配列
selectedInputSource String キー配列 (KeyLayout) のID
showAnnotation Boolean 注釈を変換候補のそばに表示するか
inlineCandidateCount Number インラインで表示する変換候補の数
workarounds Array 互換性設定がされているアプリケーション

機能

単語登録

有効な辞書で有効な読みが見つからない場合、単語登録モードに移行します。

例として "あああ" で変換しようとしても辞書になかった場合 [登録:あああ] のようなテキストが表示されます。

この状態でテキストを入力しEnterすることでユーザー辞書にその読みで登録されます。漢字変換も可能ですが単語登録モードで変換候補がない変換が行われた場合は入力されなかったと扱い、入れ子で単語登録モードには入れなくなっています。

単語登録モードでのみ C-y でクリップボードからペーストできます (AquaSKKと同様です)。通常のペーストコマンド Cmd-v はアクティブなアプリケーションに取られて利用できないため、特殊なキーバインドにしています。

単語登録をしない場合はEscキーや C-g でキャンセルしてください。

ユーザー辞書から単語の削除

変換候補が選択されている状態で Shift-x を入力すると (よみ) /(変換結果)/ を削除します(yes/no) という表示に切り替わります。この状態でyesと入力してenterするとユーザー辞書から選択していた変換候補を削除します。noを選んだり Escキーや C-g でキャンセルした場合には何も行いません。

現状は選択されている変換候補がユーザー辞書にない場合は 削除します(yes/no) という表示を行いますが、実際には何も行いません(ユーザー辞書以外を書き換えたくないため)。将来は他辞書からの削除ができるような対応をするかもしれませんが現在は未定です。

読みの補完

入力中、ユーザー辞書にある送りなし変換エントリから先頭が一致する変換履歴がある場合、入力テキストの下部に候補を表示します。タブキーを押すことで表示されているところまで入力が補完されます。

現在、補完の対象となるのはユーザー辞書の送りなしエントリだけです。

数値変換

辞書に "だい# /第#0/第#1/" のように、読みに"#"、変換候補に "#(数字)" を含むエントリは数値変換エントリです。

macSKKではタイプ0, 1, 2, 3, 8, 9に対応しています。 数値として使えるのは0以上2^63-1 (Int64.max) までです。

ユーザー辞書に追加される変換結果は "だい# /第#0/" のように実際の入力に使用した数値は含まない形式で追加されます。

キー配列の変更

デフォルトではQWERTY配列になっていますが、設定画面からキー配列を変更できます。

システムで有効なキー配列のうち、英語用のキー配列のみを選択リストに表示しています。

ローマ字変換ルールの変更

どのキーを入力したときにどのような文字に変換するかをカスタマイズすることができます。 例えばローマ字入力表のカスタマイズもできますが、それ以外でも句読点としてカンマやピリオドを入力するように設定したり、全角で入力したい記号を設定することができます。

~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Documents/Settings/kana-rule.conf にファイルを置くことで、ローマ字テーブルの変更や記号入力をカスタマイズすることができます。

上記のパスにファイルがない場合、もしくは正常に読み込めなかった場合は ~/Library/Input Methods/macSKK.app/Contents/Resources/kana-rule.conf がデフォルトで使用されます。 カスタマイズしたい際はmacSKK.app内にある kana-rule.conf ファイルもしくは https://github.com/mtgto/macSKK/blob/main/macSKK/kana-rule.conf を元にカスタマイズするのがよいでしょう。 設定ファイルの変更を監視しているため更新されたら即座に反映されます。

ローマ字変換ルール設定ファイルはUTF-8 + LF (BOMなし) で作成してください。 簡単な使い方はデフォルトファイルにもあるので参照してみてください。

ファイルを配置したのに反映されない場合はConsole.appでエラーが出てないか確認してみてください。 ローマ字変換定義ファイルの XX 行目の記述が壊れているため読み込みできません のようなログが出ているかもしれません。 正常に読み込めている場合は 独自のローマ字かな変換ルールを適用しました というログが出力されます。

現在制限として、カタカナや半角カナモードでの文字をひらがなモードでの文字と異なる文字を使用する場合、未確定入力中はカタカナでも半角カナでもひらがなのルールが使用されてします。

例えば a,あ,か,サ という設定がある状態で a を入力した場合はこうなります。

モード 頭に▽がある 結果 問題ある?
ひらがな YES ▽あ なし
ひらがな NO なし
カタカナ YES ▽ア あり
カタカナ NO なし
半角カナ YES ▽ア あり
半角カナ NO なし

プライベートモード

プライベートモードが有効なときは変換結果がユーザー辞書に反映されません。ユーザー辞書以外の辞書やプライベートモードを有効にする前のユーザー辞書の変換候補は参照されます。

プライベートモードの有効・無効は入力メニュー→プライベートモードから切り替えできます。

直接入力

直接入力を有効にしたアプリケーションでは、日本語変換処理を行いません。独自でIME機能を持つEmacs.appなどで使用することを想定しています。

直接入力の有効・無効の切り替えは、切り替えたいアプリケーションが最前面のときに入力メニュー→"(アプリ名)で直接入力"から行えます。 また有効になっているアプリケーションのリストは設定→直接入力から確認できます。

直接入力を有効にしたアプリケーションはBundle Identifier単位で記録しているため、アプリケーションを移動させても設定は無効になりません。また特殊なGUIアプリケーションはBundle Identifierをもたないため直接入力を設定できません (Android StudioのAndroidエミュレータとか)。

ユーザー辞書の自動保存

ユーザー辞書が更新された場合、一定期間おきにファイル書き出しが行われます。またシステム再起動時やバージョンアップのインストール実行後などmacSKKプロセスが正常終了する際にファイル書き出しが終わっていない更新がある場合はファイル書き出しを行ってから終了します。 もし即座にファイル書き出ししたい場合は入力メニューから"ユーザー辞書を今すぐ保存"を選んでください。

Command + Option + Escからの強制終了時やシグナルを送っての終了時は保存されないので注意してください。

バージョンの自動チェック

macSKKは現在開発中のアプリケーションです。そのため安定していない可能性が高いです。 なるべく不具合が修正された最新バージョンを使っていただきたいため、定期的に新しいバージョンがないかをチェックして見つかった場合は通知センターで通知します。

新規バージョンの確認はGitHubのReleasesページのAtom情報を取得して行います。 バージョンチェックは12時間おきにバックグラウンドで実行されます。

macSKKアプリ自体はApp Sandboxでインターネット通信ができないように設定しているため、GitHubのReleaseページの取得はmacSKKからXPCを介して外部プロセスで行います。

アンインストール

現在アンインストールする手順は用意していないためお手数ですが手動でお願いします。 今後、dmg内にアンインストーラを同梱予定です。

手動で行うには、システム設定→キーボード→入力ソースから「ひらがな (macSKK)」「ABC (macSKK)」を削除後、以下のファイルを削除してください。

  • ~/Library/Input Methods/macSKK.app
  • ~/Library/Containers/net.mtgto.inputmethod.macSKK

FAQ

Q. Visual Studio Code (vscode) で C-j を押すと行末が削除されてしまいます

A. C-j がVisual Studio Codeのキーボードショートカット設定の editor.action.joinLines にデフォルトでは割り当てられていると思われます。Cmd-K Cmd-S から editor.action.joinLines で検索し、キーバインドを削除するなり変更するなりしてみてください。

Q. Wezterm で C-j を押すと改行されてしまいます

A. macos_forward_to_ime_modifier_maskCTRL を追加することでIMEに C-j が渡されてひらがなモードに切り替えできるようになります。 SHIFT も入れておかないと漢字変換開始できなくなるので、 SHIFT|CTRL を設定するのがよいと思います。

Q. 標準Terminal / iTerm2で C-j を押すと改行されてしまいます

A. Karabiner-Elementsで C-j をかなキーに置換することで対応することができます。作者は以下のようなComplex Modificationsを ~/.config/karabiner/assets/complex_modifications/macskk.json に配置しています。将来 https://github.com/pqrs-org/KE-complex_modifications に配置して簡単にインストールできるようにしようと思っています。

{
    "description": "macSKK for Terminal/iTerm2",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com\\.googlecode\\.iterm2",
                        "^com\\.apple\\.Terminal"
                    ],
                    "type": "frontmost_application_if"
                },
                {
                    "input_sources": [
                        {
                            "input_source_id": "^net\\.mtgto\\.inputmethod\\.macSKK\\.(ascii|hiragana|katakana|hankaku|eisu)$"
                        }
                    ],
                    "type": "input_source_if"
                }
            ],
            "from": {
                "key_code": "j",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "japanese_kana"
                }
            ],
            "type": "basic"
        }
    ]
}

Q. アプリによってq/lキーでモードを切り替えてもq/lが入力されてしまう / C-jで改行されてしまう

#119 と同じ問題と思われます。 v0.20.0ではKitty, LINE, Alacrittyについて「空文字挿入」というワークアラウンドを初期設定でもっています。

空文字挿入の設定は、アプリが最前面にあるときに入力メニューから設定可能です。 またmacSKKの設定内の「互換性の設定」からも可能です。

開発

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

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 を参照してください。

macskk's People

Contributors

mtgto avatar y-yu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

khawa-angx y-yu

macskk's Issues

注釈や変換候補のパネルがカーソルから離れたところに表示されることがある

100%起きるわけではないのですが、注釈や変換候補のパネルがたまにカーソルにかぶったりカーソルから離れたところに表示されることがあります。

まずはデバッグ用に調査できる環境を作ったほうがよさそう。
関係しそうなイベント↓を過去にさかのぼって見れる機能をデバッグ時のみ有効にするとか。

  • パネル表示時にカーソル位置をどこと認識したか
  • frame位置が変わったことをNSNotificationで取れないか? 取れるならそのイベントをキャッチする

macOS 14 Sonomaで入力メニューからアプリ設定が開けなくなった

入力メニューに表示されるメニュー項目は InputController#menu が返しているもので、NSMenu + NSMenuItemで作成しています。
macSKK v0.9.1現在、UI設定画面をSwiftUIのAppやSettingsを使っているため、公開APIで設定画面を表示することができず、非公開APIである showSettingsWindow: を使っていました。

NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil)

ところがmacOS 14 Sonomaで上記のコードは動かなくなりました。
このためmacOS 14 Sonomaでv0.9.1以下のバージョンを使っている場合、設定画面を開けなくなりました。

設定画面を開く方法としてmacOS 14では非公開APIの代わりにSwiftUIのViewに SettingsLink が用意されましたが、入力メニューは素のNSMenuItemしか受け付けていないためSettingsLinkを使うのは難しいです (無理ではないのかもしれないけど、入力メニューに表示するNSMenuItemにアイコンをセットしても無視されるし、たぶんかなり難しい)。

ひとまず暫定対応としては変換候補などと同様にNSWindow + NSHostingControllerで設定ウィンドウをSwiftUIのSettingsとは別に開く形式で回避するのがよさそうかなと考えました。

ちなみに試しにSwiftUIのWindowやWindowGroupを使って設定画面の代わりに使えないかも考えましたが、起動時にウィンドウを開かないアプリを作ることができなさそうなのであきらめました。

アプリのエントリーポイントまで全部SwiftUIでやることに無理が生じているのは元からだったんですが、さすがに限界を感じたので起動回りはNSApplicationDelegateを使ったSwiftUI以前の起動方法に戻そうと思います。
設定画面や変換候補パネルなどビュー自体はSwiftUIにしてNSHostingControllerを使うことは今後もやっていくつもり。

EUC-JIS-2004 (JIS X 0213) を使っている辞書を読み込めない

https://skk-dev.github.io/dict/ にある SKK-JISYO.fullname には、次のような行があります。

かわさききよつぐ /川﨑清嗣;<JISX0213>フルネーム,精神科医/

https://github.com/skk-dev/dict/blob/master/SKK-JISYO.fullname

通常のブラウザでは"﨑"の字が文字化けしているかもしれません。

これはどうもEUC-JPの拡張で、JIS X 0213の範囲まで広げたもののようです。
https://x0213.org/wiki/wiki.cgi?page=EUC%2DJIS%2D2004

macOSのEUC-JPはこの範囲に対応してないらしく、例えばmacOSのテキストエディタやCotEditorなどでもEUCを指定してもSKK-JISYO.fullnameは開けません。
同じ理由でmacSKKでもEUC-JPでファイルを開こうとするところでエラーが発生し読み込みに失敗します。

image

AquaSKKではこのような文字でも読み込めるように独自で実装しているようです。
https://github.com/codefirst/aquaskk/blob/4.7.5/src/engine/utility/jconv.cpp

ワークアラウンド

ひとまず暫定対応としては、UTF-8に変換したものを使ってください。
iconvを使ってEUC-JISX0213をUTF-8に変換できます。(macOS 14.2.1で確認)

iconv -t UTF-8 -f EUC-JISX0213 < SKK-JISYO.fullname > SKK-JISYO.fullname.utf8

ちゃんとEUC-JP-2004形式の読み込みに対応してもいいですが、優先度は今のところあまり高くありません。

エラー報告:SKK-JISYO.L の読み込みでエラーが発生しました

0.15.1にアップデートして、以下の2行の読み込みエラーが出るようになりました。
[2024-01-16 20:44:25.611] [error] 辞書 SKK-JISYO.L の読み込みで 38112行目で読み込みエラーが発生しました
[2024-01-16 20:44:25.611] [error] 辞書 SKK-JISYO.L の読み込みで 38113行目で読み込みエラーが発生しました
以下の2行のようです。
38112 sars-cov /severe acute respiratory syndrome coronavirus/SARSコロナウイルス
38113 sars-cov-2 /severe acute respiratory syndrome coronavirus 2/2019新型コロナウイルス
よろしくお願いいたします。

一部のアプリケーションで英字モード/カタカナモードなどに切りかえる際に `l` や `q` が入力される

便利に使用させていただいております。

KittyやLINE、weztermなど一部のアプリケーションでは、入力モードを切りかえる際入力に用いていたLキーやQキーの文字がそのまま入力されてしまうことがあります。

参考までに、AquaSKKだと空文字挿入などを行うことで対応しているようです。
https://github.com/codefirst/aquaskk/wiki/Workaround

要望: シンボリックリンクのSKK辞書サポート

SKK辞書をNeovimプラグインとしてGItHubから取得し管理しているため、~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Documents/Dictionaries 配下にシンボリックリンク形式で辞書を配置したいです

フルキーボードアクセスをオンにすると変換できなくなる

M1 MacBook Air Sonoma 14.3.1、macSKK 0.17.2
アクセシビリティ > キーボード > フルキーボードアクセス をオンにすると、変換ができなくなりました。
ただ、送り仮名付きの場合は変換できました。また再現できないものでしたら、すみません。
よろしくお願いいたします。

要望: 仮名テーブルのカスタマイズについて

概要

AquaSKKのように仮名テーブル (rule file)を自由に弄れるようにしてほしい。

ユースケース

  1. 約物

現在は!?()などの約物は半角になっていますが、ユーザが全角にすることもできるようになります。
また、z+{任意のキー}で約物を打つ機能も自由に拡張したいです。

vuと打つと「う゛」になりますが、これを 「ゔ」に置き換えられるようになります。
ただし、これを実現するには仮名テーブルのファイルがutf-8にも対応している必要があります。

A dialog appears each installations to allow App Sandbox Data Container access since macOS 14 Sonoma

Description

Since macOS 14 Sonoma, Installer shows the dialog when you choose to install "SKK-JISYO.L" to App Sandbox Data Container.

image

It seems to relate with App Sandbox changes in macOS Sonoma.
https://developer.apple.com/documentation/security/app_sandbox/accessing_files_from_the_macos_app_sandbox

Investigation

pkg is signed with same team id W3A6B7FDC7

pkgutil --check-signature /Volumes/macSKK/macSKK-0.9.1.pkg
Package "macSKK-0.9.1.pkg":
   Status: signed by a developer certificate issued by Apple for distribution
   Notarization: trusted by the Apple notary service
   Signed with a trusted timestamp on: 2023-10-08 01:11:41 +0000
   Certificate Chain:
    1. Developer ID Installer: Satoshi Gotou (W3A6B7FDC7)
       Expires: 2027-02-01 22:12:15 +0000
       SHA256 Fingerprint:
           4B 04 F9 16 DA 30 68 EC 00 BC 5B B5 F6 E2 C4 88 FC 22 A3 F7 F3 1B
           A1 A5 06 B7 54 27 01 0B 37 12
       ------------------------------------------------------------------------
    2. Developer ID Certification Authority
       Expires: 2027-02-01 22:12:15 +0000
       SHA256 Fingerprint:
           7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03
           F2 9C 88 CF B0 B1 BA 63 58 7F
       ------------------------------------------------------------------------
    3. Apple Root CA
       Expires: 2035-02-09 21:40:36 +0000
       SHA256 Fingerprint:
           B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
           68 C5 BE 91 B5 A1 10 01 F0 24
codesign -dvv ~/Library/Input\ Methods/macSKK.app
Executable=/Users/user/Library/Input Methods/macSKK.app/Contents/MacOS/macSKK
Identifier=net.mtgto.inputmethod.macSKK
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=5128 flags=0x10000(runtime) hashes=149+7 location=embedded
Signature size=9046
Authority=Developer ID Application: Satoshi Gotou (W3A6B7FDC7)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Oct 8, 2023 at 10:11:39
Info.plist entries=34
TeamIdentifier=W3A6B7FDC7
Runtime Version=14.0.0
Sealed Resources version=2 rules=13 files=7
Internal requirements count=1 size=220

Perhaps the reason is /System/Library/CoreServices/Installer.app does not have write permission to the sandbox of macSKK…?

ローマ字テーブル変更時、送り仮名を伴う変換候補が適切に出てこない。

ローマ字テーブルを変更している者です。
例えば「か」行を c で打てるようにしているのですが(ca ci cu ce co)、sa;cuから「咲く」が候補に出てきません。

そもそもSKKの辞書が 咲k のようにローマ字テーブルを決め打ちした構造になっているので、変更した際にkから始まる候補をcで検索できないのだと思います。

参考に、skkeletonというVimプラグインでは送り仮名の平仮名が確定したらその平仮名からアルファベットを逆引きしてすり替えているみたいです
(sacuさくさkuさkを検索)。
ddskkやlibskkもこの動作だと聞きました。

※ その際送り仮名が「っ」の時に子音アルファベットが確定しないという問題が生じますが統計的根拠から t と決めちゃってるみたいですね。

参考: https://github.com/vim-skk/skkeleton/blob/32e0048f0f4198ef0344b5f177056db7b41bdcef/denops/skkeleton/okuri.ts

勉強不足でSwiftで貢献できずIssueを送ってばかりで申し訳ありません🙇

Abbrev入力後に元の入力モードに戻す

macSKKに乗り換えたけど日本語入力時に/を入力したときの挙動がAquaSKKと違うから使いづらい。/をいれると一時的に直接入力に変わって確定したらまた日本語入力に戻ってほしいんだけどなぁ
https://twitter.com/mobcov/status/1760107760786809253

DDSKKでもAquaSKKでも元のモード (/の入力前がひらがなならひらがな、カタカナならカタカナ) に戻るようだったのでそれに追従する。

メモやテキストエディトの状態で放置してディスプレイがオフになるとABCしか使えなくなる

私の環境だけかもしれませんし、MacOS側の問題のようにも思いますが、再現できたので報告します。
M1 MacBook Air Sonoma 14.3をバッテリーで使用していて、MacOS純正のメモやテキストエディトを使っている状態で放置し、ディスプレイがオフになるまで待つと、復帰した時、IMEのアイコンがABCのAになり、メニューバーのIMEアイコンからmacSKKを選べなくなります。
ただ、他のソフトにフォーカスを切り替えると、macSKKが使えるようになるので実用上の問題はあまりありません。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.