全てのMacユーザにMoomのウィンドウ操作をおすすめしたい

# はじめに

Mac環境でのウィンドウの移動・サイズ変更操作を、素早くキーボードだけで完結できる便利なアプリを見つけたのでメモ。手っ取り早く動作の雰囲気を知りたい方は[こちら](#実際の動作)へ

# 困っていたこと

1. マルチディスプレイ環境で、定位置に配置していた各ウィンドウが一カ所に重なっているときがある
2. ウィンドウの移動がマウスだと手間
3. 他のウィンドウ操作ツールだと、各操作にショートカットを割り当てるのでグローバルなショートカットを複数潰してしまう

個人的には1が一番面倒でした。自分はマルチディスプレイ環境では常時起動アプリの定位置(このウィンドウの右側にはTwitterみたいな)があるのですが、スリープからの復帰時や、PC単体で利用後にドッキングステーション環境に戻った際に開いていたウィンドウ位置がバラバラになることありました。PC立ち上げてこれから作業するぞって時にこの症状がでるとテンション下がりますよね、、、笑

またこの手のウィンドウ操作アプリは無料でもいくつかありますが、私の把握しているものはすべて各ウィンドウ操作処理に対してショートカットを割り当てます。グローバルに動作するショートカットを複数占有してしまうのは少し気が引けるものです。

下記で紹介するアプリでは上記の困りごとは納得できるレベルで解決できました。


# Moomについて

https://manytricks.com/moom/

> Moom makes window management as easy as clicking a mouse button—or using a keyboard shortcut, if you're one of those types of people.
>
> With Moom, you can easily move and zoom windows to half screen, quarter screen, or fill the screen; set custom sizes and locations, and save layouts of opened windows for one-click positioning. Once you've tried Moom, you'll wonder how you used your Mac without it.

Macで開いているウィンドウを簡単に操作することができる有償($10)アプリです。公式サイトでは主に以下6つの機能が紹介されています。

#### 1. ウィンドウ左上のウィンドウ最大化ボタン(緑色)の拡張

<img width="320px" src="https://manytricks.com/moom/images/v2/the_palette@2x.png">

ホバーすると、ウィンドウ位置を変更できるボタンが表示されます。

#### 2. ドラッグなしでウィンドウサイズの変更

<img width="320px" src="https://manytricks.com/moom/images/v2/grid_resize.jpg">

1のポップアップパレット内の破線内部をクリックすることでウィンドウサイズを変えられるらしいです。自分の環境ではこの機能は使えませんでした(ポップアップパレット内に破線の枠が表示されない)


#### 3. ウィンドウをディプレイ端にドラッグしてサイズ変更

<img width="320px" src="https://manytricks.com/moom/images/v2/snap_corner.jpg">

Windowsに実装されているアレです。動作の細かい設定も可能なようです。

#### 4.カスタムコマンド

<img width="480px" src="https://manytricks.com/moom/images/v2/custom_commands.png">

よく使うウィンドウのサイズ・位置などを記録して、それを即座にアクティブウィンドウに反映できます。

#### 5. キーボード入力のみでウィンドウのサイズ変更・移動が可能

<img width="400px" src="https://manytricks.com/moom/images/v2/keyboard_control.png">

Moomの起動や、その後の詳細なウィンドウ操作をキーボード入力のみで可能です。各種操作にショートカットキーを設定できるので、数秒でよく使うウィンドウ操作を完了できます。ショートカットに比べると手数は若干増えますが、未登録なウィンドウサイズ・位置でもキーボード操作だけで変更することもできます。

#### 6. ウィンドウレイアウトの保存・復元

<img width="320px" src="https://manytricks.com/moom/images/v2/arrange_windows_s.png">

ディスプレイ内に表示されている複数ウィンドウのサイズと位置を保存・復元することができます。復元にはショートカットキーを設定することができ、キーボードを数回さわるだけで実行できます。

## 特におすすめの機能

特に5と6が熱いです。

6は[上記で述べた](#困っていたこと)ウィンドウの定位置配置を一瞬で反映できます。また、PCを操作する上でウィンドウの位置やサイズ変更は頻繁に起こりますが、それをキーボードだけでホームポジションを崩さずにできるのはありがたいです。

# おすすめ設定

## キーボード操作

<img width="640px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135313/4cb1f337-9200-e8da-98c8-584823f1df96.png">

何をするにも、Moomの起動(入力待機状態)のショートカットは必須です。自分は頻繁に使うので「Cmd+Space」にしています。「Show cheat sheet」にチェックを入れておくと、入力待機状態の際に操作表が見れるのでおすすめです。

真ん中は装飾キーと矢印キーの挙動設定です。自分はウィンドウ間の移動を多用するので「Cmd+矢印キー」に設定しています。

下はどんな操作をするとMoomの入力待機状態が終了するかです。「サイズ変更後に別のウィンドウに移動したい」など、複数の処理を連続でしたい場合には、チェックを外します。



# 使い方

## よく使うウィンドウサイズ・位置の登録

<img width="640px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135313/c0bfefcc-bace-427d-c1f7-2d57e5b512cc.png">

Moomの設定を開き、タスタムタブからよく使うウィンドウのサイズや位置を設定しておきます。左下の+ボランで項目を増やし、プルダウンメニューから行う操作を指定します。各項目右側のフォームからショートカットキーを登録できます。

## 複数ウィンドウの位置・サイズ登録

<img width="400px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135313/3d28ed40-947c-2d34-4ff5-386c45e9d073.png">

1. 記録するアプリを起動して、ウィンドウ位置とサイズを調整
2. メニューバーからMoomを選択して「Save Window Layout Snapshot...」を選択
3. 設定→Customから保存したレイアウトにショートカットキーを設定

## ウィンドウ操作

Moomを起動(入力待機状態)後に、

* 矢印キー
* 装飾キー+矢印キー
* space or delete or tab
* ショートカットキー(登録した操作)




# 実際の動作

## 複数ウィンドウの位置・サイズ変更反映

<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">Macを複数ディスプレイ環境で使ってるとウィンドウの位置がバラバラになる問題。(スリープ復帰時やドッキングステーションから外して使うとよくなる) 自分はMoomを使ってウィンドウの位置を記録してる。こんな感じで一瞬で再現可能。<a href="https://twitter.com/hashtag/Mac?src=hash&amp;ref_src=twsrc%5Etfw">#Mac</a> <a href="https://twitter.com/hashtag/Moom?src=hash&amp;ref_src=twsrc%5Etfw">#Moom</a> <a href="https://t.co/Da2GgH2K8D">pic.twitter.com/Da2GgH2K8D</a></p>&mdash; icchi (@icchi_h) <a href="https://twitter.com/icchi_h/status/1490307934580252681?ref_src=twsrc%5Etfw">February 6, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## アクティブウィンドウの位置・サイズ変更

<blockquote class="twitter-tweet" data-conversation="none" data-cards="hidden" data-partner="tweetdeck"><p lang="ja" dir="ltr">Moomはウィンドウのサイズや位置をショートカットでサクッと変えたりするもできる。その使い方の方が有名だけど、自分的には最初のウィンドウ位置の記録・再現がかなり推し。 <a href="https://t.co/Lo3pAOEyn8">pic.twitter.com/Lo3pAOEyn8</a></p>&mdash; icchi (@icchi_h) <a href="https://twitter.com/icchi_h/status/1490309247024111616?ref_src=twsrc%5Etfw">February 6, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# 感想

有償ではあるものの$10と比較的安価で、ウィンドウ操作に手間を感じている方であれば十分な恩恵を受けられるアプリだと思います。

これまでskhdやyabaiを利用してウィンドウ操作をキーボードだけで実現していましたが、Moomはより便利に感じます。Moomの場合は一度入力待機状態になってから実行するため、ショートカットキーがシンプルです。skhdの場合はほかのショートカットキーと重複しないようにしないといけないため、Cmd+Alt+Shift+Xみたいな装飾キー盛りだくさんでした。またチートシート(どのキーを押せばどの処理が実行されるか)が表示されるため、扱いやすいのもポイントが高いです。

何より複数ウィンドウのレイアウト記録・復元はマルチディスプレイ環境の方には特におすすめです。