Raycastはいいぞ（かっこいいランチャーツール）

ランチャーツール「Raycast」をオススメする記事です。

※この記事は[🎅GMOペパボエンジニア Advent Calendar 2022](https://adventar.org/calendars/7722)の12月15日分のエントリです。

## Raycastって何？
[Raycast](https://www.raycast.com)は、Macで使えるランチャーツールです。

ランチャーツールとは一般的にはファイルの検索やソフトウェアの呼び出しを担当するソフトウェアを指しますが、Raycastはもっと拡張性の高いツールです。

例えば
- クリップボードの履歴を閲覧できたり
- コマンドでウインドウを画面上で分割できたり
- localhostの任意ポートをスッと開けたり
- エイリアス `tw`でツイッターをブラウザで開けたり
- コマンド一発で画面上に紙吹雪を飛ばせたり

といったことができるようになります。
Macに標準で入っている`Spotlight`の自由度が爆上がりしたものだと思っていただければ大体合っています。

Homebrewで簡単にインストールできます。
```
% brew install --cask raycast
```

## どうやって使うの
### Commands
Commandsは、Raycastに設定されたコマンドを実行できる機能です。

Raycast.appが実行されている状態で`option + space`キーを押すと、コマンド画面が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/d181c079-b947-3ded-ef89-2fe07b66120c.png)
入力欄に文字を打ち込むと、その入力からアプリケーションやコマンドがサジェストされます。

右下のボタンから`Configure Command`を選ぶと、コマンドの設定画面に遷移できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/8964eb98-1f97-5360-8928-0f70208445f0.png)
この画面では、コマンドのAliasやHotkeyを設定することができます。

#### Alias
Aliasは、コマンドの別名を設定することができる機能です。入力欄に設定したAliasを打ち込むと、そのコマンドがサジェストされるようになります。

#### Hotkey
Hotkeyは、Raycast.appが実行されているときにキー入力でコマンドが実行されるようにする機能です。例えば私は`option + v`でクリップボードの履歴を閲覧できるようにしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/d6a71fa9-477c-b512-f9aa-6631b6391efb.png)

### Quicklinks
Quicklinksは、webページへの遷移をRaycast上で行うことができる機能です。
Commandsの設定画面で、QuicklinksのタブをクリックするとQuicklinksの設定画面に移行できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/4550891f-bc44-6f4b-1acf-364938aab25d.png)

右側の`+`ボタンから`Create Quicklink`で新しくQuicklinkを作ることができます。!画像のように、URLの中にクエリを仕込んで動的にすることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/8fcf95bd-b824-aebc-f156-0796c2e01505.png)



## 拡張機能
Raycastの大きな魅力の一つとして、拡張性の高さがあります。
他の人が作った拡張機能をインストールできるため、自分好みにRaycastをカスタマイズすることが可能です。

また、JavaScriptを書くことで拡張機能を開発できます。作った拡張機能はStoreで頒布できます。
[拡張機能開発のドキュメント](https://developers.raycast.com/)

## ぼくのRaycast設定を見せびらかす
これが書きたくてこの記事を書き始めました。
Hotkeyは、混乱を少なくするために`option`を起点にするようにしています。

### ウインドウ分割
簡単にウインドウの大きさを変えられるのがRaycastの魅力です。
- `option + ←`: 画面左半分（Left Half）
- `option + ↓`: 画面下半分（Bottom Half）
- `option + ↑`: 画面上半分（Top Half）
- `option + →`: 画面右半分(Right Half)
- `option + shift + ←`: 画面左三分の一（First Third）
- （同じように画面三分の一は`option + shift + 方向キー`）
- `option + shift + command + ←`: 画面左四分の一（First Left)
- （同じように画面四分の一は`option + shift + cmd + 方向キー`）

まあほとんど左半分と右半分しか使わない。

### その他のコマンド
- `option + esc`: Quit All Application
- `option + V`: Clipboard History
- `option + B`: Search Browser Bookmarks（ブラウザのブックマークを開ける拡張機能）
- `option + C`: Confetti（紙吹雪がとぶ）
![ダウンロード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482250/a9df58ff-ebd9-3565-8e35-6c70571b14bb.gif)

### アプリケーション
- Alias`cmd`: ターミナル
- `option + J` またはAlias`code`: VisualStudioCode

### Quicklinks
- `tw`: Twitter
- `qt`: Qiita
- `gh`: GitHub
- `lch{port}`: http://localhost:{port}
- `ggl{query}`: https://google.com/search?q={query}

### Mac起動時にRaycastが実行されるようにしておくと便利
https://support.apple.com/ja-jp/guide/mac-help/mh15189/mac

## 参考
- [Raycast](https://www.raycast.com/)
- [ランチャーツールRaycastの使い方と設定 | DevelopersIO](https://dev.classmethod.jp/articles/eetann-used-raycast/)
- [Mac】おすすめのランチャーツールRaycast - Qiita](https://qiita.com/tomoronn3/items/4f2031a571b5a7a7aa25)
- [ランチャーアプリ「Raycast」とおすすめ拡張機能](https://zenn.dev/yum3/articles/i_raycast_or_alfred)
- [Raycast - 打倒Alfredなるか！？軽量でキビキビ動くmacOS用コマンドラインランチャー](https://softantenna.com/blog/raycast/)