拡張モニターを使用する場合はスクリプトが必要です。
- 外部モニターサイズのインポート(HDMI1に接続)
- メインモニタの現在のウィンドウサイズに合わせて設定します。
この機能を使用して、現在焦点が合っているウィンドウを識別できることを知っていますが、xdotool getwindowfocus
残りの作業を実行する方法はわかりません。
答え1
接続されているモニターに関する情報を取得できます。xrandr
。便利なクエリ形式がないため、パラメータなしで実行して出力を解析する必要があります。
あなたはそれを使用することができますxdotool
フォーカスやサイズなどのプロパティのクエリや変更など、ウィンドウを使用して多くのタスクを実行します。あなたはそれを使用することができます命令体系フォーカスがあるウィンドウにコマンドをxdotool getactivewindow dostuff …
適用するなど、ウィンドウIDを明示的に取得せずにウィンドウで作業します。dostuff
#!/bin/sh
monitor='HDMI-1'
new_xy=$(xrandr | sed -n "s/^$monitor [^ ]* \([0-9]*\)x\([0-9]*\).*/\1 \2/p")
if [ -n "$new_xy" ]; then
xdotool getwindowfocus $new_xy
fi # else $monitor is not active
ウィンドウサイズには装飾(タイトルバー、ボーダー)が含まれているため、装飾を含むウィンドウ全体は実際にはモニターに収まりません。
ウィンドウをHDMI-1に移動したい場合は、同じ出力ラインでモニタ座標を解析できますxrandr
。ただし、ウィンドウのサイズを変更する代わりに、ウィンドウを最大化したり、フルスクリーンにすることもできます。最大化/フルスクリーンと画面サイズ変更の違いは、ウィンドウマネージャに最大化されていないウィンドウサイズを覚えて復元するコマンドがあることです。最大化すると、ウィンドウの周りの装飾が維持されますが、フルスクリーンは維持されません。最大化とフルスクリーンはウィンドウマネージャの概念であり、Xサーバーの概念ではなく、xdotoolはこれを実行できません。私はこれを行うウィンドウマネージャの不可知論的な方法をすぐに考えることはできません。