キーボードショートカットを使用してウィンドウを管理するための小さなスクリプトを作成しようとしています。
必要なことを行うには、「アクティブな」(フォーカスされた)ウィンドウの現在の位置とサイズを見つけることができる必要があります。場所とは、デスクトップ上のウィンドウのX、Y座標を意味し、サイズとは、ウィンドウの高さと幅を意味します。
この情報を取得できるコマンドラインユーティリティはありますか?
次のコマンドを使用して、現在アクティブなウィンドウのすべての情報を取得できます。
xwininfo -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
または
xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)
必要な座標の出力を解析するだけです。以下は、ウィンドウを操作するときに役立つコマンドです。
たとえば、アクティブなウィンドウのタイトルを「新しい名前」に変更するには:
wmctrl -r :ACTIVE: -N "New Name"
または、アクティブなウィンドウの位置を変更するには:
wmctrl -r :ACTIVE: -e 0,20,20,200,400
ウィンドウのジオメトリのような単純なものを変更する必要がある場合は、wmctrl
を考慮してください。上記の他のスクリプトの使用を検討するのは、他のより複雑なことをしたい場合のみにしてください。
「xdotool」を使用すると、キーボードイベントまたはマウスイベントを使用してウィンドウを簡単に操作できます。
送信の例 CtrlC アクティブウィンドウへのシーケンス:
xdotool getwindowfocus key ctrl+c # Sends CTRL+C to the current window.
ウィンドウの位置が本当に必要な場合:
eval $(xdotool getmouselocation --Shell); echo $X $Y
その他のアクション/オプションについては、 manページ を確認してください。