Keyboard Maestroでウインドウのリサイズや移動をするときに使う「SCREENVISIBLE」についてのまとめ

Keyboard Maestroでウインドウの操作をしたいとき、移動なら「Move a Window」アクション、リサイズなら「Resize a Window」を使い、両方を行いたい場合はアクション内にある「Move by(もしくはResize by)」をクリックして、[Move and Resize]を選択します。

ここで数値を入力するとウインドウの操作ができますが、デュアルディスプレイの場合はメインディスプレイを基準とした操作になってしまいます。
今回はこの基準を現在アクティブなディスプレイにする方法についてです。
ウインドウ操作用の関数を使う
入力欄が小さいので気付きませんが、実はウインドウ操作アクションの入力欄には数字だけでなく、Keyboard Maestro独自の関数のようなものも入力できます。
試しに、[Move and Resize]内にある[Custom]以外のいずれかをクリックすると、数字ではない文字列が確認できます。
![[Move and Resize]→[Full Screen]](https://webrandum.net/mskz/wp-content/uploads/2019/07/image_2-18-1024x602.png)
このSCREENVISIBLEがウインドウ操作用の関数です。
カッコ内には2つの引数が設定でき、1つ目の引数には「値を取得したいディスプレイ」、2つ目の引数には「取得したい値」を入力することで、ディスプレイの情報が取得できます。

上記の例の場合は「Main(メインディスプレイ)のTop(1番上の値)を取得する」という意味になります。
1つ目の引数一覧
1つ目の引数には下記のような値が入力できます。
| 使える引数 | 説明 |
|---|---|
| Main | メインディスプレイ([システム環境設定]→[ディスプレイ]→「配置」から変更) |
| Second | 2つ目のディスプレイ |
| Third | 3つ目のディスプレイ |
| Internal | Macの画面 |
| External | 外部ディスプレイ |
| Mouse | マウスがあるディスプレイ |
| Front | 現在アクティブになっているディスプレイ |
| Back | (左から数えて1つ目の)現在アクティブになっていないディスプレイ |
| Back2 | (左から数えて2つ目の)現在アクティブになっていないディスプレイ |
2つ目の引数一覧
2つ目の引数には下記のような値が入力できます。
| 使える引数 | 説明 |
|---|---|
| Left | 左の値 |
| Right | 右の値 |
| Top | 上の値 |
| Bottom | 下の値 |
| Width | ディスプレイの横幅 |
| Hieght | ディスプレイの高さ |
| MidX | ディスプレイの真ん中までの距離(横) |
| MidY | ディスプレイの真ん中までの距離(縦) |
使うときのポイント
1つ目の引数は「Main」ではなく「Front」か「Mouse」を使うことで、デュアルディスプレイにも対応したウインドウの移動やリサイズが行なえます。
また、関数のあとに四則演算を行って、数字をさらに調整することもできます。
下のマクロは、ウインドウサイズを画面の縦横80%にするものです。

位置に関しては、アクティブなディスプレイの真ん中から、ディスプレイサイズを40%にした値を引いています(この40%は、ウインドウサイズ80%の半分です)。
横幅と高さに関しては、それぞれの値を80%にしています。
このように、少し複雑な位置とリサイズも、計算を工夫すれば簡単に実現できます。
SCREEN関数
ちなみに、似た関数に「SCREEN」という関数もありますが、そちらはメニューバーのサイズも含んでしまうため、ウインドウのリサイズには向きません。

Google Chromeでいま開いているページのQRコード生成方法
BetterTouchToolでトラックパッドやタッチバーにアクションを割り当てる
Keyboard MaestroでGoogle Chromeのタブグループ化にショートカットキーを割り当てておく
BetterTouchToolを使って、ショートカットキーでAirPods ProをMacBook Proに接続する方法
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
Alfredのランチャー(メインウインドウ)が邪魔で後ろが隠れてしまうときの対処法
macOSのシステム環境設定「デスクトップとスクリーンセーバ」の設定見直し
Alfred 4のAppearance Optionsから外観の設定を行う
散らかりがちなMacのメニューバーをBartender 3でキレイに整理する
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法