できるだけマウスを使いたくない症候群

マウスでポインターを動かして操作する方法は、GUIなOS環境を実現する偉大な発明の一つなのかもしれない。実際、魅力的なGUIに出会ったからこそ、Macを使い始めて、今もMacBookを使っている。しかし、時が経つと、操作に慣れる程にマウスを動かすことを面倒に感じ始めるというジレンマに陥る...。(逆に、ダラダラ眺めていて、マウスしか使いたくない気分の時も稀にある)

そうなることはAppleも十分理解していて、それを補う為にショートカットと言うキー操作を準備してくれている。よく行う操作は、例えばcommand-Sで保存とか、command-Wでウィンドウを閉じたり、特定のキー操作の組み合わせで瞬時に実行できるようになっている。わざわざマウスでメニューを辿る必要は無いのだ。

最初は分からないから、マウスでメニューを見ながら操作するのだけど、慣れる程にショートカットの知識が増えて、マウスよりキー操作の機会が増えてくる。そして、それが高じると、全てをキーボードで操作したくなってくる。マウスは可能な限り使いたくない、という気持ちに。GUIのOSに惹かれて使い始めたはずが、最終的にはCUI的な環境に回帰している。不思議な気持ちだ。

かといって、ターミナルのような完全なCUI環境を目指している訳でもない。たぶん、コマンドやショートカットを忘れることもあるので、そんな時はGUIに頼るのだと思う。また、設定ファイル等をテキスト編集するのも苦手だし。果たして、キーボードメインで、どこまで快適に操作できるのか、いろいろ考えてみた。

基本

  • キーボードショートカットは自分好みに自由に設定できる。
    • メニューバーのあらゆる文字メニューにショートカットを割り当てることができる。
    • 「...」(ピリオド3文字)と「…」(記号1文字)の違いに注意する
      • システム環境設定...(ピリオド3文字)
      • ソフトウェア・アップデート…(記号1文字)
  • しかし、上記の方法では、全ての操作にショートカットを割り当てることはできない。
    • メニューバーのアイコンメニューの操作には、ショートカットを設定できない。
    • キーの組み合わせには限りがあるので、ショートカットを設定する操作を厳選する必要がある。
    • できれば、覚え易く、押し易いショートカットの方が良い。そうじゃないと、忘れてしまう。

余談

  • そもそも、OSXはフルキーボードアクセスと言う、全てをキーボードから操作できる環境を提供してくれている。
    • でも、これをそのまま使っても、マウスを使えるならそっちの方が楽だと感じてしまうので、よりも魅力的な操作方法でないと意味がない。
    • 因に、以下のようなキー操作で大抵のことはキーボードから実行可能になっている。


  • さらに、ユニバーサルアクセスのマウスキーを利用すれば、テンキーでマウスを動かすことも可能になる。
    • optionキーを5連打で切替可能(切り替え忘れて、通常のキー操作ができなくて、悩む)
    • 但し、マウスが使える環境なら、そっちの方が遥かに効率的だ。

メニューでアルファベットの頭出し

例えば、アプリケーションフォルダをDockに登録した場合...

  • クリックしてメニューを表示しても、アプリケーションが多過ぎてスクロールしないと全体を見渡すことが出来ない。(自分のMacBookでは)
  • しかし、この状態でキーボードから「ip」と入力すれば、瞬時に「iPhoto」が選択された状態になる。
  • メニューが表示されている時にキー入力すると、入力された文字で始まる項目周辺を選択できるのだ。
  • このアルファベットの頭出しは、Dockに限らず、あらゆるメニューで有効な技だと思う。
  • 残念ながら、日本語名には対応していない。(それでも「z」を押せば、日本語名の先頭周辺を表示すること位はできる。)
  • ちなみに、Finderのウィンドウでもファイル名の頭出しは可能で、こちらは日本語名にも対応している。(素晴らしい!)

Dockの項目をキー操作で開く

  • 何か作業をする時の最初の操作は、処理するアプリケーションを起動することだ。*1
  • 自分の場合、Dockに登録してあるアプリケーションフォルダから辿ることが多い。
  • しかし、非表示のDockを表示状態にして、アプリケーションフォルダまでマウスポインタを移動してクリック、数あるリストをスクロールして目的のアプリケーションを起動するまでの操作は、結構面倒だ。
  • そこで、以下のようなスクリプトをapp_menu.scptとして保存した。(Quicksilverでショートカット command-/ を割り当てた)


tell application "System Events"
tell process "Dock"
tell list 1
click UI element "アプリケーション"
--その他のDockアイテムの名称は、以下を有効にすれば確認できる。
--UI elements
end tell
end tell
end tell

  • command-/ で瞬時にアプリケーションメニューが表示されるようになったら、しめたもの。
  • アルファベットの頭出しによって、最初の数文字をキー入力すれば、目的のアプリケーションまでジャンプする。
  • ちょっとしたショートカットの連続技の感覚で、瞬時に目的のアプリケーションが起動する。(command-/、ip、return)

素朴なQ&A

  • Quicksilverを使っているなら、AppleScriptでそんなことするまでもなく、Quicksilver、ip、returnでOKじゃない?
    • ごもっともです。でも、Quicksilverはカタログに追加されるまでは呼び出せないので、そんな時に頼れる技として便利?
    • また、アプリケーションフォルダはあくまで一例なので、その他のDockアイテムにショートカットを割り当てても便利?
    • ファイル名が思い付かなくて、でも最近使ったファイルやアプリケーションであることは覚えている状況では、役立ちそう。

スクリプトメニューをキー操作で開く

  • AppleScriptもかなりの数がスクリプトメニューに登録されている。
  • 頻繁に使う物には(Quicksilverで)ショートカットを割り当てているが、割り当てていないスクリプトも多い。
  • Dockと同じように、ショートカットでリスト表示されれば、アルファベットの頭出しでキー操作の連続技で呼び出せて便利だ。
  • アイコンメニューを呼び出すには、以下のようにすればOK。(Quicksilverでショートカット command-. を割り当てた)


tell application "System Events"
tell process "SystemUIServer"
tell menu bar 1
click menu bar item 8
end tell
end tell
end tell

  • クリックするmenu bar item 数値(自分の場合は8)は、アイコンメニューの状態によって変化する。
  • control-F8でアイコンメニューにアクセスして、→矢印キーで移動して、スクリプトメニューが何個目になるか数えれば良いと思う。

素朴なQ&A

  • 同様に、Quicksilverを使っているなら不要なのでは?
    • スクリプトフォルダに限定した方が、より少ない文字入力で目的のスクリプトを呼び出せるかも。
    • AppleScriptは自作が多く、修正中はファイル名のバージョンを変えて似たようなスクリプトをいくつも作っているので、そんな時はスクリプトメニューの方が選択し易いのだ。
    • また、optionキーを押しながら選択すれば、スクリプトエディタで開いて編集もできる。

最近使った項目を開くメニューをキー操作で一覧

  • 最近のOSXの書類を編集するタイプのアプリケーションには「ファイル >> 最近使った項目を開く」というメニューが用意されている。
  • ここを開くと、最近編集したファイルが、修正日順に、10項目ほどリストアップされる。
  • ファイル名を思い出したり、入力する手間なく目的のファイルに辿り着けるので便利だ。
  • よく使うので、ショートカットを割り当ててしまうことにした。
  • ただし、メニューを開いた状態にするのが目的なので、AppleScriptで操作するのが良さそう。(システム環境設定のショートカットでは出来そうにない)


(*
このスクリプトは、「ファイル >> 最近使った項目を開く」メニューを開きます。 このスクリプトを動かすために必要なもの AppleScriptライブラリ 依存するAppleScriptライブラリを以下のページからダウンロードしておく必要があります。 http://github.com/zarigani/AppleScript-bebe-s-Library/tree/master
そして、以下のファイルをユーザースクリプトフォルダ(~/Library/Scripts)にインストールしてください。 _lib.scpt _gui.scpt *)
property GUI : load script file ((path to scripts folder as text) & "_gui.scpt")

set app_name to (GUI's frontmost_app())
tell application app_name to activate
tell application "System Events"
tell process app_name
tell menu bar 1's (menu bar item "ファイル")
click
tell menu 1's (menu item "最近使った項目を開く")
select
UI elements
end tell
end tell
key code 124 --
end tell
end tell

  • 上記ファイルを、recent_item.scpt として保存した。(Quicksilverでショートカット control-R を割り当てた)
  • これで大抵のアプリケーションで、素早く、最近編集した書類を確認することができる。
      • アップルメニューにも 最近使った項目 というのがあるけど、全ての書類がごちゃ混ぜで、アルファベット順に並んでしまうのが気に入らない...。

ターミナルを瞬時に呼び出す

  • コマンドラインは苦手で、全く使いこなせていないのだけど、そんな自分でも、少しずつ使う機会が増えてきた。
  • そういう時に出会って感激したのがVisor。ショートカット(自分の場合command-return)一発で、デスクトップ上半分にターミナルのシートが降りてくる。
    • OSX標準でも、command-tabやExposeで切り替えて、ターミナルは呼び出せるのだけど、
    • どこのスペースに居ても、必要な時に常に同じ位置に表示されて、
    • 不要な時(アクティブでない時)は非表示になるところに快適さを感じる。
    • もちろん、今まで通りのターミナルウィンドウも表示できる。
    • Quicksilverと同じ開発元のようで、素晴らしい使い勝手だと思った。

スクリプトやコマンドでクリックする

  • ここまでやってきて、フルキーボドアクセスやAppleScriptから呼び出せない操作と言うのが存在することに気付く...。
  • control-F8で操作できるアイコンメニューより左側については、どうすれば操作できるのだろう?
    • 例:Growlやdolipoなど。(スマートな方法を知っている方ぜひ教えてください。)
  • Automatorで記録すると、左側のアイコンメニューをクリックする操作も記録できた。
  • 最後の手段としては、クリックするスクリプトを実行してしまう。(以下の例は、アップルメニューをクリックする)


tell application "System Events"
tell process "Script Editor"
click at {20, 11} --左上原点{x,y}
end tell
end tell

  • また、cliclick>> 紹介ページ)というコマンドも見つけた。デスクトップ上の指定した座標をクリックするコマンド。


どちらも、クリック操作を実行するので、個々のマシン環境やその時デスクトップの表示状況にかなり左右されるが、GUIスクリプティングに対応していな場合でも、自由に操作できる可能性を秘めている。

Quicksilverで開く

ここまで、ほとんどの操作にQuicksilverが絡んでいることに気付く。(ショートカットの割り当てで利用)そう、Quicksilverは、キー操作主体で快適なGUI環境にする、キラーアプリケーションと言える。ショートカットの割り当てはもちろんのこと、基本はSpotlightのように、キー入力して目的の何かを選択するのが得意だ。

  • 少しのキー入力で、カタログに登録されたファイル(アプリケーションやスクリプト等を含む)を瞬時に呼び出すことができる。
  • 使い込む程に学習され、よく使うファイルが優先して上位に表示されるようになるので、より少ないキー入力で目的のファイルに辿り着ける。
  • GUIなのにCUI的に操作できる環境を提供してくれる。
  • とても奥が深いので、その詳細は、わかばマークのMacの備忘録 : Quicksilver へ。(素晴らしい解説に感謝です!)

Spotlightで開く

  • Quicksilverでは、カタログに登録されたファイルは瞬時に呼び出せたが、(当然だが)カタログにないファイルは候補に挙がってこない。
  • 一方、Spotlightはあらゆるファイルを、様々な属性で検索することができる。
    • 当然、Quicksilverと同じファイルを呼び出すことができる。(でも、目的のファイルに辿り着くまでに、多少の時間もかかるし、キー入力も多くなるかも)
    • ただし、Spotlightと言えども、そのままでは検索インデックスを利用した限定的な検索が実行される。
    • ファイル名を入力しただけでは、あるはずのファイルが見つからないと言うことが起こり得る。
    • または、多くのファイルがヒットし過ぎて、目的のファイルに辿り着けないかもしれない...。
  • メニューバーのSpotlightの検索条件では以下のファイルは除外されている。(control-space)
    • 不可視属性のファイル・フォルダ
    • システムファイル・フォルダ
  • Spotlightの詳細検索であれば、上記ファイルを含めて検索することもできる。(control-option-space)
  • ところが、root権限が必要なファイルについては、見つけることが出来ない。

よく使うキー操作

自分が、日常よく使いそうなショートカット操作を書いてみた。(当り前過ぎる...。)

  • アプリケーションの切替
    • command-tab
  • ウィンドウの切替(同一アプリケーション内で)
    • command-`
  • タブの切替
    • control-tab・control-shift-tab、command-shift-←・→、command-option-←・→、safari_standの,.等
  • ページ再読み込み
    • command-R
  • ページの履歴を戻る・進む
    • command-←・→
    • あるいはExpogestureでマウスを左右に振る*4
  • Spotlight検索
    • control-space
      • 辞書検索で使うことが多い。

*1:OS9までの頃は、書類ファイルをダブルクリックして、関連したアプリケーションも同時に起動する仕組みの恩恵をふんだんに受けていた。でも、最近のOSX環境では、アプリケーション自身が書類をDBで管理して(iTunesiPhotoのような方式)、Finderから書類を開く機会がめっきり減ってしまった。また、同じテキストファイルでも、目的によって異なるアプリケーションで処理したくなることもある。

*2:Automatorで記録したイベントは、そのワークフローの外側にドラッグ&ドロップするとアップルスクリプトに展開されるが、そのAppleScriptを実行しても何も起こらなかった。

*3:マウスっぽいけど、ポインターは動かないということで

*4:マウスだけど、この操作はよく使う。マウスジェスチャーは、ポインターの位置に関係なく、目をつぶっても出来るからクリックするのと操作感覚は違うということで。