web-dev-qa-db-ja.com

CLIから既知のPIDでアプリケーションを最大化する

コマンドラインのみを使用して最小化した場合、アプリケーションのウィンドウを最大化する必要があります。

プロセスIDを知ってそれを行う方法。

wmctrlコマンドを操作すると、次のエラーが発生しました。

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x6718
  Serial number of failed request:  11
  Current serial number in output stream:  11
3
Maythux

これは動作するはずです:

xdotool windowactivate `xdotool search --pid YOUR_PID_HERE | tail -1`

xdootoolは、pidで検索したときにかなりの数のウィンドウIDを報告するため、出力から最後のウィンドウIDのみを取得するように出力を「テーリング」しました。私にとっては、Firefoxとgnome-calculatorの両方でうまく機能しました。 xdotoolがpidに対して1つのウィンドウIDのみを報告する場合、テールパイプはもちろん不要です。

6
falconer

wmctrlman page )を使用して、コマンドラインからウィンドウを操作できます。

  1. Sudo apt-get install wmctrlまたは他の使いやすいパッケージマネージャーを使用してプログラムをインストールします。
  2. PIDに属するウィンドウIDを取得します。 wmctrl -lpは、出力の最初の列にウィンドウID、2番目の列にPIDを持つすべての既存のウィンドウをリストします。
  3. デスクトップに切り替えるか、現在のデスクトップに移動するかに応じて、wmctrl -iR <window ID>またはwmctrl -ia <window ID>でウィンドウを上げます。
4
drc

これはそれを行う必要があります:

awk '$3 == 17213 {print $1}' <(wmctrl -lp) | xargs -i% sh -c "xwit -id % -pop -raise; wmctrl -i -r % -b add,maximized_vert,maximized_horz"

awkステートメントのIDを変更する必要がありますが、これによりウィンドウが最大化されてアクティブになります。最小化を有効にするには、xwitSudo apt-get install xwit)もインストールする必要があります。


これが非常に複雑な理由は、必要なすべてを実行するツールはなく、わずかに機能するツールに端末の問題があるためです。

  • xdotoolはPIDで検索できません(宣伝されている機能にもかかわらず)
  • wmctrlは、物事を最小化および最大化する方法を知りません
  • xwitはできません変更ウィンドウのヒントですが、物事を最小限に抑えることができます

理想的には、これはxdotoolまたはwmctrlだけで実行できるはずですが、それぞれのPIDルックアップは機能しないか、存在しません。

1
Oli