こんにちは、んなまにです。
6年ほど使っているLet's noteの電源投入成功率が10%ほどになってしまったので、
MacBook Pro 13インチ なんとかディスプレイモデルを買いました。
自分のMacを持つのは初めてですが、UNIXだしHomeBrewなるパッケージ管理ツールも
あるらしく、便利そうと思い買っちゃいました。
買ってきて早速、HomeBrewをインストールし、HomeBrewからEmacsをインストール。
さあ、Emacsをショートカットキーで起動・・・と思ったところでEmacsが見当たらない。
HomeBrewでインストールすると、「アプリケーション」に追加されないのか困った。
そこで、調べていると、Automatorというものを発見、シェルスクリプトを登録してMac上にサービスやアプリケーションとして登録できるツールらしい。
Emacsをデーモンとして起動して使いたいと思っていたので、シェルスクリプトを使えるのは願ったりだ思い設定したのでメモ。
Automator
AutoMatorは、Mac OS 10.4から標準で使えるワークフロー構築システムというものらしい。
できることは、登録されているアプリケーションを組み合わせて自動化処理の作成など。
今回は、その中に「シェルスクリプトを実行」という項目がありこれを使ってやりたいことを実現しようと思います。
Automatorは「Finder」>「アプリケーション」>「Automator」にあります。
シェルスクリプトにショートカットキーを割り当てる
今回やりたいことは、「Emacsをデーモンで起動してから、EmacsClientを開く」処理をショートカットキー「Ctrl + Shift + E」に割り当てる。
全体的な流れは、以下のような感じ。
シェルスクリプト作成
まず、Emacsデーモンを起動して、EmacsClientを開くシェルスクリプトを作ります。
コードは以下。
# 起動中のEmacsデーモンを数える APP_NAME="/usr/local/Cellar/emacs/24.4/Emacs.app" EMACS_COUNT=`ps ax | grep $APP_NAME | grep -v grep | wc -l`; if [ $EMACS_COUNT -eq 0 ] ; then # Emacsデーモンが起動していなければ、 # Emacsデーモンを起動した後、emacsclientを起動 /usr/local/bin/emacs --daemon && /usr/local/bin/emacsclient -c & else # 起動していれば、emacsclientを起動 /usr/local/bin/emacsclient -c & fi
作ったスクリプトをAutomatorに登録
Automatorにサービスとして登録します。
Automatorは「Finder」>「アプリケーション」>「Automator」を起動。
「書類の種類を選択してください」でサービスを選択。
続いて、画面左側「アクション」>「ライブラリ」>「シェルスクリプトを実行」を選択。
画面右側で「サービスは、次の項目を受け取ります」を「入力なし」、「検索対象」は「すべてのアプリケーション」を選びます。
最後に作成したシェルスクリプトを、右側のスクリプト領域に貼り付けます。
「ファイル」>「保存」で名前をつけて保存すると、登録は完了です。
サービスにショートカットキーを割り当てる
最後に、作成したサービスにショートカットキーを割り当てます。
設定は特に難しいことはなく、「システム環境設定」>「キーボード」>「ショートカットキー」
で上で作成したサービスを探し、ショートカットキーを設定するだけです。