今回はmacOS Ventura対応に対応した、システム設定のユーザー辞書の登録画面へ自動で移動するアプリ・ショートカットを作成する方法を紹介する。
以前にも同じような内容の記事を書いたが、この記事の方法はmacOS MontereyからmacOS Venturaアップデート時のシステム設定の移行で使えなくなってしまった。
-
【ユーザー辞書&Automator】macOSのユーザー辞書登録をショートカットで行う方法(macOS Montereyまで)
続きを見る
作成するアプリの中身が異なったので本記事ではリライトも兼ねてmacOS Ventura対応版として記事を書く。
本記事の内容を実践すれば今よりも格段にユーザー辞書の登録が楽になること間違いなしだ。
なお、本記事で作成するコードは下記のAppleのコミュニティ投稿がベースだ。このコードをベースにしつつ、執筆者独自で改良を加えた。
AutomatorでのSystem Settingsエラー - Apple コミュニティ
本記事の環境は以下。
- M1 MacBook Pro
- macOS Ventura
- バージョン13.3.1
そもそもユーザー辞書とは
そもそもユーザー辞書ってのは、特定の文字を打ったらそれに対応する文章が出てくるって機能だ。よくあるのが以下のようなユーザー辞書。
- じゅ:(自宅の住所)
- めー:(自分のメールアドレス)
- あり:ありがとうございます。
- お:お世話になっております。
- ひ:引き続きどうぞよろしくお願いいたします。
- べ:macOS Ventura
要するに文章入力用のショートカット(短縮系)のことだ。これをうまく使いこなせるようになると、文章入力が爆速になる。実際、執筆者は200以上ものユーザー辞書を登録している。
200以上ものユーザー辞書を登録するのにはそれなりに理由があるから紹介する。
入力の時短になり楽になる
上の例でもわかるようにいちいち「ありがとうございます。」と入力するよりユーザー辞書で「あり」と入力して変換する方が断然楽だ。
さらに「macOS Ventura」のように英語かつ大文字と小文字が混在している英単語をいちいち入力するのが面倒。
ユーザー辞書を使用すれば数文字の入力だけで簡単に長い単語・文章を入力できるのがメリット。
入力ミスを修正できる
執筆者はタイピング速度がそこそこ速いと思っているんだが、実は母音より子音を先に入力してしまうクセで入力ミスが多いんだ。例えば以下のようなミスはよくしてしまう。
- 勉強:bねきょう(eよりnを先に入力)
- できる:dけいる(eよりkを先に入力)
- 変更:へのく(eよりnを先に入力)
冷静に見るとeキーに滅法弱いようにも感じるが、これらのミスをユーザー辞書に登録しておけばたまに正常に補完してくれる。というのもMacの予測変換は割とゴミ変換するから。
ライブ変換中に自動でタイプミスを修正してくれたらラッキー程度に登録しておけば入力ミスが多少改善する。ただし、これに慣れすぎていつまでもクセが直らないのも現実。
表記揺れがなくなる
また、ユーザー辞書であらかじめ単語を登録しておくことで表記揺れをなくすことが可能だ。特に英単語を登録しておくと便利。
例えばmacOS Venturaは「V」enturaだったか「B」enturaだったか迷った際にいちいち調べるのは面倒。製品名やOS名など頻繁に入力するガジェットブロガーにとって表記揺れは致命的。
ユーザー辞書で表記を固定してしまえば仮にユーザー辞書側でミスってても一括置換で簡単に修正可能。この点も魅力。
使わない手があるだろうか
ということでユーザー辞書を使うと日々に作業が楽になるということを紹介したが、こんな便利なユーザー辞書を使わない手があるだろうか、いやない(仮面)。
本記事の内容はユーザー辞書のステップアップ版だが、今まで使ったことがない人はこの機会にユーザー辞書を導入してほしい。
一般的なユーザー辞書の登録方法
ユーザー辞書の魅力はお伝えしたので一般的なユーザー辞書の登録方法を紹介しておく。99割の人はこの方法を使っているはず(こなみ)。登録方法は以下の4ステップでできる。
んだけど、正直、大量にユーザー辞書を登録する執筆者にとってこの方法は面倒でしかない。
- システム設定を開く
- キーボードの項目へ進む
- ユーザー辞書の項目を開く
- 左下のプラスボタンからユーザー辞書を登録
システム設定を開くと左のスクロール項目の下の方に「キーボード」の項目があるので選択。キーボードの項目に進んだらその中の「ユーザー辞書」を開く。
開くと過去に登録した辞書一覧が表示されるので、左下のプラスボタンを押して入力した文字と変換する文字を登録するだけ。
あとはひたすら続ければいいんだけど、いちいちシステム設定を開いてキーボードの中のユーザー辞書の項目を開くのが面倒。
毎回何ステップも踏むのが億劫なので以前の記事でシステム環境設定版のユーザー辞書を自動で開くアプリを作成したってわけ。
-
【ユーザー辞書&Automator】macOSのユーザー辞書登録をショートカットで行う方法(macOS Montereyまで)
続きを見る
この方法だとショートカットもしくはアプリの起動だけで瞬時に登録画面まで来れるのであとはそのまま登録するだけ。快適。
だったんだけどシステム環境設定がmacOS Venturaからシステム設定に移行したせいで内部システムが変更。その結果、上の記事の方法が使えなくなったってわけ。
本記事の完成系とやること
本記事の最終的なゴールは上のGIFの通りで、ショートカットもしくはアプリの起動1つでユーザー辞書の登録画面まで自動で進む。あとは好きな単語をユーザー辞書として登録するだけ。
上のGIFではデスクトップ(= Finder)から起動しているが、もちろんブラウザや他のアプリから起動することも可能。
やることは至ってシンプルで、以下のコードをAutomatorのAppleScriptの項目に入れるだけ。
-- システム設定をアクティブにする tell application "System Settings" activate delay 1 end tell -- 先にポップアップを閉じておく tell application "System Settings" tell application "System Events" to tell application process "System Settings" key code 53 delay 2 end tell end tell -- システム設定のキーボードの項目を開く open location "x-apple.systempreferences:com.apple.Keyboard-Settings.extension" delay 1 -- ユーザー辞書の登録画面を開く tell application "System Settings" tell application "System Events" to tell application process "System Settings" tell window "キーボード" tell group 1's splitter group 1's group 2's group 1's scroll area 1's group 3's button 2 click end tell end tell end tell end tell -- ユーザー辞書の追加ボタンを押す tell application "System Settings" tell application "System Events" to tell application process "System Settings" tell window "キーボード" delay 1 tell sheet 1's group 1's scroll area 1's group 1's button 1 click end tell end tell end tell end tell
本当はもっとシンプルに書けると思うが、現状このコードで動くのでこれでいく。
以下でアプリとして作成する、もしくはショートカットの作成(クイックアクション)として登録する方法を解説する。使用するのはお馴染みのAutomator。
なお、SpotlightやDockから呼びたいならアプリを作成し、ショートカットで起動したならクイックアクションがおすすめ。
アプリ・ショートカット共通の処理の作成方法
まずはアプリとショートカットで共通の処理の作成方法を解説。両者のAutomator上の処理作成はほとんど同じなのでここで解説する。
まずはAutomatorを起動し⌘ n
新規作成画面を表示。アプリを作成する人は「アプリケーション」を、ショートカットを作成する人は「クイックアクション」を選択。
すると上の画像のように何も処理が登録されていない画面になるので、左サイドバーの検索窓から「AppleScript」と検索し「AppleScriptを実行」の項目をダブルクリック。
初期設定のコードが表示されるので、これを全消しして先ほどのコードをコピペ。コピペしただけだと全て同じ文字色だが、コード部分の上のトンカチのマークを押せばキレイに色分けしてくれる。
これで完成だが、⌘ r
でテストすることができるのでテストする。入力がないとか警告が無視してOKを押す。
そのままコードが実行されてユーザー辞書の登録画面を開くことができたら成功だ。
あとはアプリとして保存するかショートカットを登録するかそれぞれの方法に従えばいいだけ。お手軽すぎる。
アプリとして登録する
アプリとして登録する場合は新規作成時に「アプリケーション」を選択。その後のテストまでは上の共通部分の設定をする。
設定してテストもうまくいけば⌘ s
でAutomatorの内容をアプリとして保存する。適当にアプリに名前をつけてアプリケーションフォルダに保存。
保存すればLaunchpadに作成したアプリが表示されるのでそのまま起動。エラーが出た場合はこの後のエラー対処に従ってアクセシビリティの設定を登録すればいい。
これで晴れてユーザー辞書登録の自動化アプリの完成だ。
ショートカットとして登録する
アプリを作らずショートカットキーですぐに起動したい時は新規作成時に「クイックアクション」を選択。コードの追加とテストは共通部分と同じで、⌘ s
でクイックアクションを保存。
保存したファイルは以下のパスのフォルダに保存されている。
/Users/(ユーザー名)/Library/Services
続いてシステム設定のキーボードの項目の「キーボードショートカット…」を選択。その中の「サービス」「一般」を開くと作成したクイックアクションが登録されているはずだ。
もし見つからない場合はしばらく時間をおいてみたり一度システム設定を閉じたりして確認してほしい。
作成したクイックアクションの右側の「なし」の部分をダブルクリックしショートカットを登録。すでに登録しているショートカットやアプリで使っているショートカットは避けるのが賢明。
登録したらあとは実際にショートカットを押して実行できるかを確認するだけだ。
実行できなかったらアクセシビリティの設定を変更
実際にアプリを作成して実際に使用してみると上のようなエラーになることがある。その際はシステム設定の「プライバシーとセキュリティ」の「アクセシビリティ」の項目に作成したアプリを登録すると直るだろう。
クイックアクションを作成した時はエラーにならなかったが、仮にエラーになった際はこの項目やアクセシビリティ系のどれかの項目をオンにしたら使えるようになる。
ユーザー辞書の+ボタンを探す方法(Accessibility Inspector)
ということでここまででユーザー辞書の登録画面を自動で開くアプリ・ショートカットを作成したわけだが、どうやってこのコードを作成したのか、の記録を最後に残しておく。
本記事の内容は他のシステム設定の項目にも応用できるので余力のある人は読み進めてほしい。
なお、すでに書いたように、本記事の内容はAppleのコミュニティ投稿をベースにしている。この記事があったおかげでかなりのヒントを得られた。
AutomatorでのSystem Settingsエラー - Apple コミュニティ
ただし、この記事ではユーザー辞書のページまでは進むものの、プラスボタンを押して登録ボタンまでは進めない。
ということで、プラスボタンの位置を特定する方法を紹介する。
every UI elementは使えなくなった?
macOS Montereyまでのシステム環境設定で起動する以前の記事では、今いる画面の構成要素を一覧で表示するevery UI element
が使えたが、macOS Venturaにしてからこの方法が使えなくなったっぽい。一応エラーにはならないが、出力結果が何もないことになってる。
every UI element
を使って以下のような要素一覧を取得できれば、あとは1階層ずつボタンやタブを押す処理を追記すればすぐにできた。
{button 1 of window "キーボード" of application process "System Preferences" of application "System Events", tab group 1 of window "キーボード" of application process "System Preferences" of application "System Events", button "Bluetoothキーボードを設定…" of window "キーボード" of application process "System Preferences" of application "System Events", toolbar 1 of window "キーボード" of application process "System Preferences" of application "System Events", button 3 of window "キーボード" of application process "System Preferences" of application "System Events", button 4 of window "キーボード" of application process "System Preferences" of application "System Events", button 5 of window "キーボード" of application process "System Preferences" of application "System Events", static text "キーボード" of window "キーボード" of application process "System Preferences" of application "System Events"}
ということで他の方法を探すわけだが、本記事のベースのコミュニティ投稿に以下の意見がある。
- 調べ方はいろいろあります。こことか:Ventura System Settings URL Scheme.txt · GitHub
- これはスクリプトを実行しながら一つずつ調べます。参考:[AppleScript] アプリケーションのUI構造を取得 | コピペで使える自動処理
- 2.をこつこつ繰り返して調べます。
2.3.は根気あるのみ。(解説文書などは一切ありません)
https://discussionsjapan.apple.com/thread/254549299?answerId=258568893122#258568893122
3は Xcode に付属の Accessibility Inspector を併用するとほんのちょっとだけ楽になります。
https://discussionsjapan.apple.com/thread/254549299?answerId=258568938122#258568938122
初めの引用部分はmacOS Montereyでやったevery UI element
の方法だが、2つ目の引用のAccessibility Inspectorは使ったことがなかったので以下で紹介する。
インスペクターで要素の階層を探す
引用部分でも書いているようにAccessibility InspectorはXcodeに付属の機能。Xcodeを開いて「Xcode」「Open Developer Tool」「Accessibility Inspector」に進んでAccessibility Inspectorを起動。
Accessibility Inspectorの画面が表示され、右上のターゲットマークを押し好きな場所をクリックするとクリックした部分の要素情報を取得できる。
例えばユーザー辞書のボタンをクリックしてみると
以下の画像のようにユーザー辞書のボタンの要素情報を取得できる。
この画面の下の方にHierarchyという項目があり、これはクリックした要素がどの階層を経由して存在するかを示している。
各階層はダブルクリックで移動することもできるので、システム設定がどんな階層でできているのかを知ることもでき楽しい。
ということでこのHierarchyを使ってユーザー辞書の登録ボタンを特定する。これが大変。
Automatorで要素の階層を1つひとつ試す
ユーザー辞書のプラスボタンの構造は以下のようになっていて、すぐ上の階層は「グループ」でその上の階層は「スクロール領域」らしい。
結論から言えば以下の法則に則ってAppleScript上でtell
を記述してテストしまくるに尽きる。
- シート:
sheet
- スクロール領域:
scroll area
- グループ:
group
- ボタン:
button
連続する階層を一気に記述する場合は’s
をつけて上の階層から順に記述すればいい。例えばユーザー辞書のプラスボタンは以下のように書ける。
-- シート1の中のグループ1の中のスクロール領域の中のグループ1の中のボタン1
sheet 1's group 1's scroll area 1's group 1's button 1
頭がおかしくなりそうだが階層を書いて最後にbutton
を記述し、click
を記述したらクリックできた。
なお、システム設定のキーボードの項目を開く処理のあとに連続してプラスボタンを押す処理を書くとエラーになったので処理は分けている。
原因は不明だが一旦ユーザー辞書の画面まで飛んでから別の処理でプラスボタンを押せたのでこれでよしとする。
ひたすら階層探しを続ける
先に結論を書いたが、実際には1, 2時間くらいひたすら色々なパターンで階層を書いて試してを繰り返していた。
sheet
を消してみる- ユーザー辞書を開く処理から連続して書いてみる
button 1
をbutton 2
にしてみるdelay 1
をdelay 2
にしてみる- etc
最後の方は機械的に色々なパターンを試して最終的に分けて処理したらいけることを発見して完成させた。
最初にポップアップは消しておく必要あり
余談にはなるが本記事のコードの最初でポップアップを閉じておく処理を入れているのにもワケがあって、上の画像のように何かしらの項目でポップアップが出ていると他の作業ができずエラーになるから。
なので処理の初めにEsc(key code 53
)を入力しポップアップを閉じている。ただ、どの画面でもEscを押すのですでにユーザー辞書の画面になっていた場合は一度キーボード設定の画面に戻ることになる。
本当は条件分岐でユーザー辞書を開いていたらEscを押さないとした方がスッキリするんだけど、条件分岐の例外処理を考えるのが面倒だし、ユーザー辞書を閉じたからどうやねんってことがあるのでこれでいい。
ユーザー辞書をもっと楽に使う
今回はmacOS Ventura以降のシステム設定で使えるユーザー辞書の登録画面を自動で表示するアプリ・ショートカットを作成する方法を紹介した。
これまでいちいちポチポチ登録していた人は本記事を参考に楽に登録してほしいし、ユーザー辞書を使ったことがない人はこの機会に使ってほしい。
これからももっと楽にMacで作業ができるような内容を発信する。あなたの快適なMacライフの健闘を祈る。
Automatorを使った作業の自動化術
ではAutomatorを活用して自動でブラウザの新規ウィンドウを開いたり指定したサイトを一括で開いたりする方法を紹介している。
特に新規でブラウザのウィンドを開くアプリは毎日の作業でかなり貢献しているアプリなのでおすすめ。愛用しているLogicool MX ERGOのマウスジェスチャーに登録するレベル。
普段の作業をもっと効率化したい人は是非ともアプリを作成してほしい。
⇨YouTubeでLogicool MX ERGOのボタンカスタムを観る
-
【Automator活用術】Macで生産性を上げる作業の自動化術
続きを見る
Karabiner-Elementsでキーボードをカスタムする
キーボードのキー割り当て変更アプリのKarabiner-Elementsで日々の作業を効率化する方法も発信している。
以下の記事ではKarabiner-Elementsを使ってUS配列でかな変換できるようにしたり、複雑なキー割り当てを公式サイトから導入する方法を解説している。
-
【Mac×US配列キーボード】v14.5.0以降SwiftUIのKarabiner-ElementsでJIS風に使いやすくする
続きを見る
また、以下の記事ではさらに踏み込んで自分でやりたい操作を自作する方法を解説している。難易度は上がるがこの記事の内容を実装することでもっと楽に作業ができるだろう。
-
【Karabiner-Elements】Complex ModificationsのJSONカスタム設定のコード例
続きを見る
US配列ユーザーのみならず、キーボードをもっとカスタムしたい人は読んでほしい。
Pythonについてもっと知りたいならPro天パ
一般人からしたら本記事の内容もハンパなく難しいと思うだろうが、執筆者は大学4年生までプログラミングのプの字も知らなかった。そこから独学でPythonという言語を学んで今に至る。
そんな執筆者が独学で学んだ実話・経験と実際のプログラミングコードを紹介しているのが「Pro天パ」だ。まだまだ記事は少ないが、これからPythonを学びたい・独学でできるか不安という人は是非とも見てほしい。