トグル方式でTouch Bar表示項目の入れ替えを行うAppleScript
-
主題
トグル方式でTouch Bar表示項目の入れ替えを行うAppleScriptについて述べる。(特にBar Noneとの併用を念頭に置く) -
背景
筆者はMacBook Pro 2018 15インチモデルを使っている。このMacに乗り換え(2018.08.17)てすぐ、謎の現象としてTwitterに記録していたことがあった。短期間のうちにそれは、左側Shiftキーを押すときに、意図せずTouch Bar上のEscに触れていることが原因だと推定するに至った。
以来、Twitterを振り返れば、Touch Barに対する悪口雑言は枚挙にいとまがない。しかし約めて言えば、意図しない誤操作はキーボード右側でも発生した。そう、意図せずsiriを呼び出してしまうアレなどである。
しかしながら、恥ずかしながらでもあるが、一応は開発者の端くれであるのにも関わらず、文句を付けるだけで、今日まで具体的な改善策は生み出さなかった。
そこに現れたのがBar Noneである。ただ、このAppleに対する挑戦状とも受け取り得る小さなユーティリティは、真剣にTouch Barの動作を止める(正確にはfnキーを押さないと有効にならなくする)
ところで、fnキーはTouch Barの機能入れ替えキーでもある。矛盾しているようだが、ここで本来使いたいTouch Barの機能があったときに、fnキーを押して使おうとしても永遠に出会えないというジレンマが生じることになる。
出会えない機能に出会うには、システム環境設定を操作してキーボードペインを開き、Touch Barに表示する項目:
のfnキーを押して:
の右横にあるプルダウンメニューから好みのものを選べば良い。だが、それすら自分でやるのは面倒だという超モノグサ党のために、本AppleScriptはある。(笑) -
AppleScript
スクリプトを以下に示す。property fnMode : "Appコントロール" --スクリプト終了後も値を保持させる if fnMode is "F1F2" then --システム環境設定のキーボードペインを開く tell application "System Preferences" launch activate set the current pane to pane id "com.apple.preference.keyboard" --get the name of every anchor of pane id "com.apple.preference.keyboard" reveal (first anchor of current pane whose name is "keyboardTab") end tell delay 0.5 --"正しくないインデックス"エラー回避 --System Events経由でシステム環境設定を操作 tell application "System Events" to tell process "System Preferences" --Touch Barに表示する項目のプルダウン設定 tell pop up button 2 of tab group 1 of window 1 click click menu item 1 of menu 1 --Appコントロール end tell --Fnキーを押してのプルダウン設定(予備) (* tell pop up button 3 of tab group 1 of window 1 click click menu item 2 of menu 1 --F1,F2などのキー end tell *) end tell tell application "System Preferences" to quit set fnMode to "Appコントロール" --トグルなので、設定名を入れ替え else if fnMode is "Appコントロール" then --システム環境設定のキーボードペインを開く tell application "System Preferences" launch activate set the current pane to pane id "com.apple.preference.keyboard" --get the name of every anchor of pane id "com.apple.preference.keyboard" reveal (first anchor of current pane whose name is "keyboardTab") end tell delay 0.5 --"正しくないインデックス"エラー回避 --System Events経由でシステム環境設定を操作 tell application "System Events" to tell process "System Preferences" --Touch Barに表示する項目のプルダウン設定 tell pop up button 2 of tab group 1 of window 1 click click menu item 3 of menu 1 --F1, F2などのキー end tell --Fnキーを押してのプルダウン設定(予備) (* tell pop up button 3 of tab group 1 of window 1 click click menu item 1 of menu 1 --Appコントロールを表示 end tell *) end tell tell application "System Preferences" to quit set fnMode to "F1F2" --トグルなので、設定名を入れ替え end if
上記スクリプトをScriptEditorで開く(注)
(注)リンクを開くと、2段階の確認ダイアログが表示される。(下図)
最初に開くのは、ScriptEditorを開くかどうかを確認するダイアログ。次に開くのはスクリプトの開発元が不明であることを警告するダイアログである。後者のダイアログについて、筆者を信頼するかしないかはお任せするが、このAppleScriptが危険なものか判断できない人は使わないで戴きたい。なお、本スクリプトをmacOS Mojave以降で実行するには、システム環境設定とSystem Eventsの2つに対するアクセス権が必要である。
-
スクリプトメニュー(おまけ)
筆者は本スクリプトをメニューバーからアクセスできるようにスクリプトメニューを稼働させている。そのやり方についておさらいして置く。スクリプトメニューを稼働させるには、下図の通り、スクリプトエディタの一般環境設定にある
メニューバーにスクリプトメニューを表示
チェックボックスをオンにすれば良い。
また、スクリプトを入れるフォルダは、下図の通り、
ユーザ・スクリプト・フォルダを開く
操作を行うことにより、フォルダがあれば、そのフォルダが開き、なければ作られる。ちなみに作られる場所はホームディレクトリ直下のライブラリフォルダ内である。
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント