[UPDATE1]iFileの日本語キーボードに関する不具合

JailBreakしたiDeviceに欠かせないツールのひとつがiFileではないでしょうか。まもなくDropboxとの連携も可能になるというニュースが流れていました(Dropbox Integration Coming To iFile [Jailbreak])しさらに便利になる予感。こんな便利なiFileですが、キーボードにちょっとした不具合(と呼ぶべきかやむを得ない仕様)があります。

  1. キーボードのクリック音が強制的にオンになる
  2. 日本語キーボードに切り替えるとiFile終了時にキーボード設定が初期化される

この2点について解消できないか試行錯誤。原因はiFileがmobileユーザではなくsuper user(root)権限で動作していることにあると思われます(WinterBoardのテーマがiFile上では適用されないのも同じ原因と思います)。今のところキーボードのクリック音は消すことができましたが、終了時の初期化問題はいまだに解決の糸口すら… というかお手上げです。

キーボードのクリック音を消す
設定>サウンド>キーボードのクリック、をオフにしていてもiFile操作中にクリック音が強制的にオンになってしまいます。これを解消するのは簡単です。/var/mobile/Library/Preferences/com.apple.preferences.sounds.plist のシンボリックリンクを /var/root/Library/Preferences/ に設定し、コピーし、アプリを一度閉じます。再度、開けばクリック音は消えています。

07 symbolic link - com.apple.preferences.sounds.plist

このplistをiFileのプロパティリストビューアーで開いたところです。

06 root - com.apple.preference.sound.plist

iFile終了時にキーボード設定が初期化される問題
設定>一般>キーボードで「自動大文字入力」「自動修正」「スペルチェック」「Caps Lockの使用」「ピリオドの簡易入力」をオフにしていても、iFileで日本語キーボードを表示して切替ボタンを使うと、iFileを閉じた後にキーボード設定が初期化され、全てオンの状態になります。

iFile起動前
00 Keyboard settings before

日本語キーボードを切替えてiFileを閉じた後
02 Forced to initialize keyboard setting

上記のクリック音と同じようにmobileユーザーの設定ファイルcom.apple.Preferences.plistをrootユーザーのディレクトリに置いてみましたが効果なし。症状は「初期化」されてしまうわけですから初期化状態が定義されているKeyboardSettings.bundleの大元のKeyboardAutocapitalization、KeyboardAutocorrection等をオフにしてみてもダメ。確かに、設定>一般>キーボードの設定項目は見た目はオフにすることができるのですが、「オフ」の状態が有効化されておらず自動大文字入力や自動修正が働いてしまいます。ここで挫折です。

根本的な解決ではありませんが、自動修正をマニュアルで修正するように変更するtweakがCydiaからリリースされています。ManualCorrectがそれですが、自動修正せずに自分で修正候補を選択するようにするものですから自動修正を完全にオフにするものではありません。また自動修正をオンにしようと思ってもできません。ManualCorrect Pro(US$0.99)ならSBSettingsのトグルでオン/オフを切り替えることができます。

日本語キーボードならテンキーでもローマ字でも同じ症状がでます。英語キーボードだけなら問題は起きませんが….. iFileのバグなのか、root権限で動作することによるやむを得ない事象なのか。シングルバイト文字は不具合はなさそうですからこの問題は将来的に修正されない気がします。とはいえ、通常、自動修正をオフで使ってるユーザーにとっては地味に不便なのでなんとかならないかなぁと期待は捨てきれずにいます。

Posted from dPad on my iPad2

Update Information —
[UPDATE1 2011/4/16] com.apple.preferences.sounds.plistをmobileユーザーのシンボリックリンクに変更