OS X 10.10 Yosemiteで「ことえり」は消えた? ラ行を「l」キーでも入力できるようにする

つい、迂闊にもYosemiteに上げてしまったのですが、困惑したのは、アイコンやフォント/インターフェース周りやメモリ関連、通知センター、iCoudなどなどではなく、日本語入力の方でした。
なんと、ラ行が「l」キーで入力出来なくなっていて、ユーザ辞書も飛んでいました。

▪️ユーザ辞書のコピー
ユーザ辞書は、10.9 Mavericksから引っ張って来ることにしました。
10.9 Mavericksの「システム環境設定」の“キーボード”の“ユーザ辞書タブ”を表示して、ユーザ辞書リストのアイテムを全選択し、マウスでドラッグアンドドロップでデスクトップなどにドロップすれば「ユーザ辞書.plist」ファイルが出来上がりますので、それを、OS X 10.10 Yosemite上で同じように「システム環境設定」の“キーボード”の“ユーザ辞書タブ”を表示して、ブランクになっているリストペインにドロップすればコピーされます。

▪️追加辞書の設定
追加辞書も消えているので、再読み込みさせます。
10.9 Mavericks上では‘~/Library/Dictionaries/’の中にあったユーザ辞書ファイルを、OS X 10.10 Yosemite上で「システム環境設定」の“キーボード”の“入力ソース”タブの右側のペインの下の方に“追加辞書”の項目があるので、この欄内にそれぞれの追加辞書ファイルをドロップします。追加辞書ファイルは、それぞれ、‘~/Library/Dictionaries/JapaneseInputMethod/’フォルダ内に「.dictionarydata」という拡張子を持ったファイルとしてコピーされるはずです。

▪️ラ行を「l」キーでも入力できるようにする
OS X 10.10 Yosemiteでは、“日本語入力エンジン「ことえり」を終了し、新しい「日本語IM」を新採用”<http://www.macotakara.jp/blog/mac_os_x/entry-24770.html>ということのようです。
ことえりのはるか以前から、ラ行を「l」キーでも入力するという習慣がついてしまっているので、今更変更が効きづらいというか変えたくないので、なんとかしたいものです。
色々と探してみると、‘/System/Library/Input Methods/’以下に、‘JapaneseIM.app’というものがあり、そのバンドルパッケージ内に設定ファイルがありました。
‘JapaneseIM.app’は、‘/System/Library/Input Methods/JapaneseIM.app/Contents/Resources’にある ‘RomajiRule_Default.txt’を設定ファイルとして読み込んでいるようです。

ScreenShot 2014-11-02 5.38.16

‘RomajiRule_Default.txt’をTextWranglerで読み込んでみると、確かに「la li lu le lo」は「ぁぃぅぇぉ」となるように設定されています。
この‘RomajiRule_Default.txt’を書き換えるのも一つの方法ですが、図を見るとわかるように同じディレクトリに‘RomajiRule_Kotoeri.txt’というファイルもあるので開いてみると、従来のことえりの設定がそのまま記述されていました。そこで、‘RomajiRule_Default.txt’に手を加えるのではなく、‘RomajiRule_Kotoeri.txt’->‘RomajiRule_Default.txt’へ複製してしまうことで対処することにしました。
ターミナルからでは、

$ sudo mv -f /System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt /System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default_org.txt; cp -f /System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Kotoeri.txt /System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt

ということになります。
しかし、ここで残念なことには、10.9 Mavericksからシステムドメイン側のファイルをターミナルから‘sudo’で上書きしようとすると、権限がないという警告が出て上書きできないということが起きます。
詳しくは、ここ<http://wp.me/p1Cs3W-6R>で書きましたので参考にしてください。
何故か、同じことをスクリプトエディタ上でAppleScriptから”do shell script …”で実行すると通ってしまうので、AppleScriptの方も記しておきます。

do shell script “sudo mv -f /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default_org.txt; cp -f /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Kotoeri.txt /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt” user name “YourUserName” password “YourPassword” with administrator privileges

オリジナルの‘RomajiRule_Default.txt’は、名前を変えて‘RomajiRule_Default_org.txt’として保存され、‘RomajiRule_Kotoeri.txt’の複製を‘RomajiRule_Default.txt’という名前にするというスクリプトです。

▪️Path Finder.appをroot権限で立ち上げて、そこからターミナルモジュールを使ってコマンドを実行する
拙作の“Quasi_Launcher.app”を使えば、Path Finder.appをrootユーザとして起動できます。
次の図が、そのrootユーザとして起動したPath Finder.app上で、ターミナルモジュールを使ってコマンドを実行しているところです。この場合は、当たり前ですが、‘sudo’は要りません。

PF_terminal

 

▪️追記

忘れていました。
最後に、JapaneseIM を再起動しなくてはいけません。下記のコマンドを追加してください。

$ sudo killall -HUP JapaneseIM

単純にマシンを再起動してもいいです。

▪️追記2−141103

AppleScriptでアプリケーション化するとすれば、次のように書けばいいでしょう。

property UserName : ""
property UserPasswd : ""

on run
	my checkPass_Name()
	my SetMode()
end run

on checkPass_Name()
	tell application "System Events" to set UserName to name of current user
	if UserName is "" then
		activate
		display dialog "ログインユーザ名を入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserName to theVart
		else
			return
		end if
	end if
	if UserPasswd is "" then
		activate
		display dialog "ログインパスワードを入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution with hidden answer returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserPasswd to theVart
		end if
	end if
end checkPass_Name

on SetMode()
	try
		do shell script "sudo mv -f /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default_org.txt; cp -f /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Kotoeri.txt /System/Library/Input\\ Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt" user name UserName password UserPasswd with administrator privileges
		do shell script "sudo killall -HUP JapaneseIM" user name UserName password UserPasswd with administrator privileges
	end try
end SetMode

これをアプリケーション形式で保存すれば、起動するだけで設定できます。

■追記−150330

上記のスクリプトを少し見直して、コンパイル済みのアプリケーションとしたファイルをダウンロード出来るようにしました

ダウンロード→解凍→「.iso」ファイルをダブルクリックでマウントできますので、マウントボリューム中の「.app」ファイルを任意の場所にコピーしてダブルクリックで起動すれば、‘RomajiRule_Kotoeri.txt’を‘RomajiRule_Default.txt’に置き換えることができます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中