月別: 2014年11月

Microsoft Office FontCacheToolを起動させないためのスクリプト

先の“Microsoft Office FontCacheToolを起動させないためのAutomatorアプリケーション”というエントリでAutomatorアプリケーションを紹介しましたが、追補で書いたようにアクセス権の制限で正常動作していませんでした。
で、訂正情報なのですが、ターミナルで

sudo /bin/test -f /Applications/Microsoft\ Office\ 2011/Office/MicrosoftComponentPlugin\.framework/Versions/14/Resources/FontCacheTool | mv -f /Applications/Microsoft\ Office\ 2011/Office/MicrosoftComponentPlugin\.framework/Versions/14/Resources/FontCacheTool /Applications/Microsoft\ Office\ 2011/Office/MicrosoftComponentPlugin\.framework/Versions/14/Resources/FontCacheTool_org

とやっても、10.9 Mavericks以降、アクセス制限がかかってしまうようでパーミッションエラーが出ます
そこで、AppleScriptで実行するようにすると何故か動作してしまうので、下記にそのスクリプトを記します。

try
	do shell script "sudo /bin/test -f /Applications/Microsoft\\ Office\\ 2011/Office/MicrosoftComponentPlugin\\.framework/Versions/14/Resources/FontCacheTool | mv -f /Applications/Microsoft\\ Office\\ 2011/Office/MicrosoftComponentPlugin\\.framework/Versions/14/Resources/FontCacheTool /Applications/Microsoft\\ Office\\ 2011/Office/MicrosoftComponentPlugin\\.framework/Versions/14/Resources/FontCacheTool_org" user name YourName password YourPassword with administrator privileges
on error
	display dialog "FontCacheToolは既に処理されているようです。" buttons {"OK"} default button 1 with icon 1 giving up after 10
end try

“YourName”と“YourPassword”は環境に合わせて書き換えてください。

▪️スクリプトファイルのダウンロードリンク
http://amstudio.sytes.net/amweb/Remove_FontCacheTool.iso.zip
http://homepage3.nifty.com/amstudio/amweb/Remove_FontCacheTool.iso.zip
※スクリプトの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

■保証
動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負い ません。使用は御自身の責任において行なってください。

広告

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’に置き換えることができます。