2016-04-08 9 views
2

プログラムが部分的に画面に表示されるようにプログラムを移動しようとしています。たとえば、VLCのタイトルバーをクリックし、ウィンドウの半分だけが見えるようにドラッグすると、うまく動作します。私は、画面上に戻ってそれを移動し、その位置を試してみて、複製したときにwmctrlでウィンドウをオフスクリーンに移動する方法

0x04a00011 0 -293 138 600 420 HEVM002 VLC media player 

しかし、それが窓を仕事とクリップしません:私は、出力wmctrl -lGの結果は、これがうまく動作します

向こう側:

wmctrl -r "VLC media player" -e 0,-200,0,800,600 

私は、ウィンドウマネージャのカップルでテストしている、そしてxfwmではなく、Compizの上で正常に動作するようです。ウィンドウを画面外に動かせるように設定できるフラグなどがありますか?

答えて

3

ウィンドウマネージャで実行している場合、これはすべてウィンドウマネージャによって異なります。部分オフスクリーン位置を強制するフラグがあるかどうかは、それがどのウィンドウマネージャであるかによって異なります。

これを達成するための唯一のウィンドウマネージャーの唯一の方法は、ウィンドウをoverride_redirectウィンドウにすることです。しかし、もちろん、これはウィンドウが管理されなくなったことを意味します。それを再び通常のウィンドウにすると、ウィンドウマネージャは再びウィンドウマネージャを管理します。ウィンドウマネージャによっては、再びウィンドウマネージャにそれが強制的にインバウンドすることを意味します。

つまり、wmctrlのソースコードを見ると、ウィンドウマネージャがサポートしている場合は_NET_MOVERESIZE_WINDOWが使用され、それ以外の場合はXMoveResizeWindow(またはそれに類する)にフォールバックします。しかし、最初のケースでは、位置値を最初にunsigned longにキャストします。これは、実際に負の値が失われることを意味します。 2番目のケースでは、負の値は "移動しない"という信号を示すように見えるので、そこには運がありません。

代わりに、負の値を正しく処理するxdotool windowmoveを試してみることができます。また、wmctrlに対するバグを提出することも考えてください。

+0

歓声 - xdotool windowmoveは同じ結果を出しましたので、サポートを追加するためにcompizを編集する可能性があります – John

+0

私(i3wm)ではxdotoolは動作しますが、wmctrlは動作しません。この場合、おそらくウィンドウマネージャーが要求を拒否している可能性があります。 –

関連する問題