Bash
MacOSX
Terminal
fzf

fzfを使いMacのアプリを簡単に起動する

前提条件

  • macOS 10.13.3 High Sierra
  • iTerm2 3.1.5
  • bash 4.4.12
  • fzf 0.17.1

ターミナルから(一般的な方法)

 Macでターミナル(端末エミュレータ)を使い込んでいくとGUIアプリをコマンドラインで起動したいと考えないだろうか。
(GUIアプリを起動したしても、その操作はマウスを使わなければならない。すくなくともターミナルで引きこもりたい人間からすれば相当気持ち良いはずである。)
 MacのGUIアプリは以下のコマンドで起動できる。

> open -a <アプリの名前>

 システム環境設定の場合、以下のようになる。

> open -a "System Preferences"

 .bashrcに以下の記述しエイリアスを作成し、

.bashrc
alias syspref='open -a "System Preferences"'

 タイプ数を短くしてもよい。

> syspref

 上記方法はタイプ数も多く、エイリアスを張ったとしてもあまりスマートでない。とはいえ、アプリ起動するのに専用のランチャーアプリの導入をするのには躊躇いがある。

選択的インターフェイス

 ターミナルを使っている方には選択的インターフェイスを提供する(easy finder)というジャンルのソフトを利用している方もいるのではないだろうか。ディレクトリパスを移動したり特定のファイルを書き換えたり、なにかと便利である。
 以下のスクリプトを.bashrcに加えると簡単に選択的インターフェイスを使ったランチャーが実現できる。

.bashrc
if [ "$(uname)" == 'Darwin' ]; then
  # app - osx appluncher
  app() {
    app_path=$(find /Applications -maxdepth 3 -type d  | grep '\.app$' | sed 's/\/Applications\///' | sed 's/\.app$//' | fzf --query="$1" --prompt="App > " --exit-0)
    if [ -n "$app_path" ]; then
      open -a "/Applications/$app_path.app/"
    fi
  }
fi

 上記設定を行うと、

> app

と入力すれば以下のようなインターフェイスで、アプリが起動できる。

スクリーンショット 2018-03-17 20.54.55.png

補足

 fzfの導入が前提となっている。
 fzf以外の選択的インターフェイスを実現する方法でも同様のことが実現できる。

fzf:https://github.com/junegunn/fzf