rcmdnk's blog

20160303_keyboardshortcut_200_200

色々アプリをいじっていてキーボードだけで操作しているようなとき、 メニューバーの項目を使いたい時にトラックパッドなり マウスに移動するのが面倒な時があります。

メニューバーの項目のショートカットキーを全て覚えていればそれで済むのですが、 覚えてなかったり、そもそも割り当てられてない機能を使いたい時に キーボードだけでメニューが操作したい、と言う時にどうするか。

OSのショートカット機能

環境設定のキーボードの項目にある ショートカットタブに行くと色々と ショートカットを設定できますが、 ここにあるキーボードという項目の中に メニューバーを操作対象にする(Move focus to the menu bar)という項目があります。

20160303_keyboardshortcut.jpg

まさにこれが欲しい機能でデフォルトで-F2に 割り振られています。

なんですが、どうも上手く行きません。

Mac keyboard shortcuts for accessibility features - Apple Support

osx - Control-F2 “Move Focus to Menu Bar” only works occasionally - Ask Different

osx - Why do Ctrl+F2 and Ctrl+F3 sometimes stop working? - Ask Different

この辺を見ているとどうも昔から起こってる問題で上手く行かないことがあるらしいです。

上にある話の中で、-F3(Dockを操作対象にする)を した後に-F2 をすると効く、と言う話があったので試してみたところ、 一回は開けたんですがそのとはまた開けなくなったり。 それも必ず、というわけではなく開ける時と開けない時があったり。

また、違うキーに変更してみても同じ様子。

とうことでこの機能を直接使うのは諦めました。

BetterTouchToolのShow Menubar in Context Menu

実はこれをずっと使っていましたが、 BetterTouchTool ではキーボードショートカットに機能を割り当てることも出来、 機能としてShow Menubar in Context Menuという項目があります。

これを割り当てると、マウスカーソルのある位置に右クリックで開くメニューのようなメニュー(コンテクストメニュー) としてメニューバーのメニューが表示されます。 そこでキーボードを使って選択することが出来ます。(マウスでも可能。)

その昔は DejaMenu: http://www.macupdate.com/app/mac/13040/dejamenu というこのメニューをコンテクストメニューとして開くためだけの アプリを使っていましたが、今は作者のページ: http://homepage.mac.com/khsu/DejaMenu/DejaMenu.html もなくなっているので使えなくなっています。 機能としてはBetterTouchToolの物も全く同じです。

AppleScriptを使う方法

メニューバーに直接フォーカスを持っていく方法として、 AppleScriptを使う方法があります。

osx - Control-F2 “Move Focus to Menu Bar” only works occasionally - Ask Different

ここを参考に

focusMenu.scpt
1
2
3
tell application "System Events" to tell (process 1 where frontmost is true)
  click menu bar item 2 of menu bar 1
end tell

というアップルスクリプトを作って~/Library/Scripts等に保存しておいて、 後はAutomaterで割り当てたり、 BetterTouchTool なり Karabiner なりでショートカットキーに割り当てます。

上のスクリプトでitem 2を選んでいるのは 1だとメニューバーの一番左にあるリンゴマークボタンを開いてしまうため。

逆にこれを開きたい場合は1にすれば開けます。

Sponsored Links
Sponsored Links

« MacでKarabinerを使ってAppleScriptをキーボードショートカットに割り当てる BetterTouchToolの有料化にあたり »

}