Hyprland Lua の多画面座標、キー、検証
このページの目次
Hyprland 0.55 系の hyprland.lua を使用する。旧 conf のキーワードや規則を Lua に直接混ぜない。バージョンを確認し、対応する公式説明を使う。
以下は統合用の断片で、デスクトップ全体を上書きする導入ファイルではない。
接続中のセッションを確認する
Hyprland 内の端末で実行する。
版、接続名、説明、モード、倍率を見る。インスタンス変数がないエラーは、現在のシェルが合成器に接続していないことを示し、未導入を意味しない。
DP-1 などは他機からコピーしない。desc 指定も一意な説明が必要で、同型番の識別情報が同じ場合には衝突し得る。
回退用の表示規則
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "auto",
})
個別指定のない出力を扱う。まずこれで表示を確認してから各画面を設定し、一度に一画面・一条件を変える。
物理画素から論理座標へ
3840×2160 を 1.5 倍で表示すると論理サイズは 2560×1440。90° 回転では 1440×2560 となる。配置位置もこの空間を使う。
| 画面 | 物理 | 倍率・回転 | 論理サイズ | 原点 |
|---|---|---|---|---|
| A 左上 | 3840×2160 | 1.5、180° | 2560×1440 | 0, 0 |
| B 左下 | 3840×2160 | 1.5、通常 | 2560×1440 | 0, 1440 |
| C 右 | 3840×2160 | 1.5、90° | 1440×2560 | 2560, 0 |
B は A の高さから、C は左列の幅から始まる。全体は 4000×2880 で、右下に 1440×320 の非表示領域が残る。辺を越えるマウスや窓の位置もこの関係で考える。
実際の接続名と対応モードへ置き換える。
hl.monitor({
output = "DP-1", mode = "3840x2160@60",
position = "0x0", scale = 1.5, transform = 2,
})
hl.monitor({
output = "DP-2", mode = "3840x2160@60",
position = "0x1440", scale = 1.5,
})
hl.monitor({
output = "DP-3", mode = "3840x2160@60",
position = "2560x0", scale = 1.5, transform = 1,
})
ローカル例では 160/60/60Hz と画面別 VRR を使った時期がある。帯域、ドライバ、表示エンジンも関係し、高規格ケーブルへの交換だけで必ず直るとは限らない。
窓と workspace のキー
local mainMod = "SUPER"
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd("ghostty"))
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
hl.bind(mainMod .. " + H", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + J", hl.dsp.focus({ direction = "down" }))
hl.bind(mainMod .. " + K", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + L", hl.dsp.focus({ direction = "right" }))
Ghostty がセッションの PATH に必要である。対話シェルの起動処理で追加したパスは、合成器やサービスにはない場合がある。
workspace と窓の循環は別操作である。
hl.bind("ALT + Tab", hl.dsp.focus({ workspace = "m+1" }))
hl.bind("ALT + grave", hl.dsp.window.cycle_next())
前者は現在画面の相対 workspace、後者は窓を巡回する。多画面・複数 workspace で確認する。
規則、再読み込み、復旧
アプリ規則は hyprctl clients の実 class/title を見てから追加する。題名は文書や言語で変わり、広い条件は無関係な窓にも作用する。
エラーと基本操作を確認する。Lua の構文が通っても API 引数やモード対応は別検査である。操作不能なら準備した TTY/遠隔経路から保存設定を戻し、再ログインする。
表示故障を段階的に調べる
単画面の首選モードから始め、複数画面、固定リフレッシュ、VRR、全画面関連の順に戻す。接続、モード、ドライバ、操作、時刻を記録する。
配色は Matugen、外殻は Quickshell、環境はセッション診断へ分ける。