コンテンツにスキップ

Window Mover

Window Moverは、アクティブウィンドウの位置や大きさをホットキーまたはエリア選択から変更する機能です。

ホットキーで移動する

ホットキーを設定

使いたいコマンドにホットキーを設定します。

window_mover = {
  commands = {
    moveToNextDisplay = {
      hotkey = {
        modifiers = { "ctrl", "alt" },
        key = "m",
      },
    },
    maximizeWindow = {
      hotkey = {
        modifiers = { "ctrl", "alt" },
        key = "return",
      },
    },
    cycleLeft = {
      hotkey = {
        modifiers = { "ctrl", "alt" },
        key = "h",
      },
    },
    cycleRight = {
      hotkey = {
        modifiers = { "ctrl", "alt" },
        key = "l",
      },
    },
  },
}

ホットキーを指定していないコマンドは無効です。

ディスプレイとエリア

コマンド 説明
moveToNextDisplay 次のディスプレイへ移動し、移動先で最大化します。
moveToActiveDisplayFreeArea 現在のディスプレイにある最大の空き領域へ移動・リサイズします。
moveToSelectedArea ディスプレイごとに設定した移動先を選ぶ画面を開きます。
moveToSelectedAreaInJinraiMode JinraiModeとして移動先を選ぶ画面を開きます。

ウィンドウ操作

コマンド 説明
maximizeWindow 現在のディスプレイの作業領域へ最大化します。macOSのフルスクリーンとは異なります。
minimizeWindow ウィンドウを最小化します。

サイズを切り替えながら配置

同じコマンドを繰り返すと、既定では1/21/32/3の順にサイズが変わります。

コマンド 説明
cycleLeft 左端へ配置し、横幅を切り替えます。
cycleHorizontalCenter 横方向中央へ配置し、横幅を切り替えます。
cycleRight 右端へ配置し、横幅を切り替えます。
cycleTop 上端へ配置し、高さを切り替えます。
cycleVerticalCenter 縦方向中央へ配置し、高さを切り替えます。
cycleBottom 下端へ配置し、高さを切り替えます。

切り替える比率は、0より大きく1以下の任意の値へ変更できます。たとえば、次の設定では1/43/4も含めて切り替えます。

window_mover = {
  behavior = {
    cycle = {
      horizontalRatios = { 1 / 2, 1 / 3, 1 / 4, 2 / 3, 3 / 4 },
      verticalRatios = { 1 / 2, 1 / 3, 1 / 4, 2 / 3, 3 / 4 },
    },
  },
}

決まったサイズへ配置

次のコマンドは、名前に対応する利用可能なエリアへ直接移動します。

サイズ コマンド
横または縦の2分割 halfLefthalfHorizontalCenterhalfRighthalfTophalfVerticalCenterhalfBottom
横または縦の3分割 thirdLeftthirdHorizontalCenterthirdRightthirdTopthirdVerticalCenterthirdBottom
横または縦の4分割 quarterLeftquarterHorizontalLeftCenterquarterHorizontalRightCenterquarterRightquarterTopquarterVerticalTopCenterquarterVerticalBottomCenterquarterBottom
画面の4分割 quarterTopLeftquarterTopRightquarterBottomLeftquarterBottomRight
画面の6分割 sixthTopLeftsixthTopCentersixthTopRightsixthBottomLeftsixthBottomCentersixthBottomRight
3分の2 twoThirdsLefttwoThirdsHorizontalCentertwoThirdsRighttwoThirdsToptwoThirdsVerticalCentertwoThirdsBottomtwoThirdsCenter
4分の3 threeQuartersLeftthreeQuartersHorizontalCenterthreeQuartersRightthreeQuartersTopthreeQuartersVerticalCenterthreeQuartersBottomthreeQuartersCenter

共通設定

移動後にカーソルを追従

window_mover = {
  behavior = {
    cursor = {
      afterMove = true,
    },
  },
}

behavior.cursor.afterMovetrueにすると、移動後にカーソルもウィンドウ中央へ移動します。

エリアを選んで移動

moveToSelectedAreaは、各ディスプレイ上に設定済みのエリアとキーを表示します。キーを入力すると、アクティブウィンドウがそのエリアへ移動します。

ディスプレイUUIDを確認

エリアが未設定の状態でmoveToSelectedAreaを実行すると、各ディスプレイ上にUUIDと設定例が表示されます。表示されたUUIDをselectedArea.screensのキーに使用します。

エリアを設定

設定できるエリア名は利用可能なエリアを参照してください。

window_mover = {
  commands = {
    moveToSelectedArea = {
      hotkey = {
        modifiers = { "ctrl", "alt" },
        key = "space",
      },
    },
  },
  selectedArea = {
    defaultScreen = "DISPLAY_UUID_A",
    screens = {
      ["DISPLAY_UUID_A"] = {
        freeArea = "V",
        full = "A",
        halfLeft = "S",
        halfHorizontalCenter = "D",
        halfRight = "F",
        quarterTopLeft = "Q",
        quarterTopRight = "W",
        quarterBottomLeft = "Z",
        quarterBottomRight = "X",
        ["1920x1080Center"] = "M",
      },
    },
    actions = {
      closeWindow = "C",
      minimizeWindow = "N",
      quitApplication = "Q",
    },
    windowHints = {
      key = "H",
    },
    hints = {
      show = true,
    },
  },
}
設定 説明
selectedArea.screens ディスプレイUUIDごとに、エリア名と選択キーを指定します。
selectedArea.defaultScreen 設定がないディスプレイへ流用するキーマップのUUIDです。
selectedArea.actions.closeWindow エリア選択中にアクティブウィンドウを閉じるキーです。
selectedArea.actions.minimizeWindow エリア選択中にアクティブウィンドウを最小化するキーです。
selectedArea.actions.quitApplication エリア選択中にアクティブウィンドウのアプリケーションを通常終了するキーです。
selectedArea.windowHints.key エリア選択を閉じ、Window Hintsを開くキーです。
selectedArea.hints.show エリアとキーを画面上に表示するかを指定します。falseでもキー入力は有効です。

選択画面はescape、候補外のクリック、または起動に使ったホットキーで閉じられます。

freeAreaを選ぶと、選択した時点のウィンドウ配置から最大の空き領域を探します。空き領域がない場合、ウィンドウは移動せず選択画面が維持されます。

同じディスプレイ内のエリアキー、アクションキー、Window Hintsへ戻るキーは重複させないでください。BB1のような、一方がもう一方の先頭に一致する組み合わせも使用できません。

選択画面の見た目

window_mover = {
  selectedArea = {
    appearance = {
      borderWidth = 2,
      cornerRadius = 6,
      state = {
        normal = {
          bgColor = { red = 0.03, green = 0.03, blue = 0.04, alpha = 0.88 },
          textColor = { red = 0.96, green = 1.0, blue = 0.98, alpha = 1.0 },
          typedTextColor = { red = 0.96, green = 1.0, blue = 0.98, alpha = 0.38 },
        },
        dimmed = {
          bgColor = { red = 0.03, green = 0.03, blue = 0.04, alpha = 0.30 },
          textColor = { red = 0.96, green = 1.0, blue = 0.98, alpha = 0.32 },
        },
      },
    },
  },
}

selectedArea.appearance.stylesでは、利用可能なエリアの種類ごとにエリアの色を変更できます。