長い間悩んでました。待たせてごめんとは言いません。キロロじゃないので。(17年前…だと…?)
何となく動くかも版なのですが、近づいてきた気がするので公開します。
下の画像をクリックすると、Downloadできます。
動作確認は、Intel Mac miniと、M2 Macbook Airで行いました。
つきましては、前の版のページで色々コメントいただきまして、ありがとうございました。
以下ざれごと。
これまで面倒だったのでコードの解説とかしてませんでしたが、忘れそうなのでメモ代わりに記録しときます。
use framework "Foundation"
use scripting additions
current application's NSWorkspace's sharedWorkspace()'s openFile:"/System/Library/PreferencePanes/Keyboard.prefPane" -- ①
tell application "System Events"
tell process "System Settings"
delay 3 -- ②
tell window "キーボード"
tell group 3 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1
click last UI element -- ③
end tell
delay 1.5 -- ④
tell group 1 of scroll area 1 of group 1 of sheet 1 -- ⑤
click button 1
end tell
delay 0.5
tell group 1 of scroll area 1 of sheet 1 of sheet 1
key code 48 -- tab
delay 0.5
key code 9 using command down -- paste
delay 0.1
key code 48 using shift down -- shift tab
end tell
end tell
end tell
end tell
① は、キーボード部分を強引に開く方法です。open コマンドなら -n オプションで開けたのですが、AppleScriptからだとこうなるみたいです。
この書きかたになる前は、以下の感じでメニューバーから選んでました。
tell application "System Preferences" to activate
tell application "System Events"
tell process "System Settings"
click menu bar item 5 of menu bar 1
click menu item "キーボード" of menu 1 of menu bar item 5 of menu bar 1
:
②は、キーボード部を開くまでの待ち時間です。新たなシステム設定では、「キーボード」が別アプリ?みたいな感じになっているようで、左側のリストから選べませんでした。ps コマンド(ps -ef | grep -i keyboard
とするとわかりやすい)で見ると、システム設定を起動した時には「KeyboardSettings」が無いのですが、「キーボード」を選択した後には存在しています。
何かプロセスを起動してるんじゃないでしょうか。
③は [ ユーザ辞書 ] ボタンを押す操作です。「テキスト入力」の内側がグループ化されていて、その最後のボタンを clickしています。こんな書きかたができるんだなー(棒)
④は、ユーザ辞書ボタンを押してから、辞書一覧が表示されるまでの待ち時間です。辞書登録数が多く、古いマシンだと時間がかかるようです。
⑤が一番悩んだかも。ユーザ辞書ボタンを押した後に出て来るウィンドウは何者なのか。答えは「キーボード」ウィンドウが所有する「シート」でした。そんなんわかるか! なお、登録する文字を入力するウィンドウは、「シートのシート」でした。応用問題やね。
どのあたりが実験版かというと、以下の3点です
- ②, ④の delayの値を全然調整できていない点
- ③が「ユーザ辞書」と「かわせみ2」が並んだ状態でしか動かしていない(ユーザ辞書のみ、3つ以上のIMを併用している場合を確認していない)点
※ 1つ目のボタンの内側にIMの設定があるので、ここは常にボタンが2つな気がしてますが

- そんなに自分で使ってないので、その他よくわからないひっかかりがあるかもという点
このあたりが問題なさそうなら、現バージョンで良いかもなのですが。
いやー、それにしてもここまで来れるとは思わなかった!