1

私は何年もの間 Linux でプログラミングを行ってきましたが、表示に関する知識はあまりありません。ここで、どのウィンドウ (おそらく私のプロセスによって作成されたウィンドウではない) がユーザーによってフォーカスされているかを監視し、移動やサイズ変更などの簡単な操作を行う別のプロセスを作成するよう求められます。

出来ますか?それを達成するための一般的な方法はありますか?誰かが私が調べることができるヒントを教えてもらえますか? ありがとう!

4

2 に答える 2

0

xdotoolを使用します。キーストローク、マウスアクション、アクティブなウィンドウの検索などをエミュレートできます。

例: (最大化されていない) ターミナル ウィンドウでこのコマンドを実行すると、10 ピクセル下と右にジャンプします。

xdotool windowmove --relative $(xdotool getwindowfocus) 10 10

ほとんどのディストリビューションで利用できるはずです。つまりsudo apt-get install xdotool、他のパッケージ マネージャーでも同様です。

于 2014-02-04T21:28:39.770 に答える
0

基本的に、すべてを行う XWindow システムです。ただし、単純なユーティリティを使用して多くのことを制御できます。たとえば、VLC ウィンドウのタイトルを変更したい場合は、次のようにできます。

# this will ask me to point to a window and I will point to VLC player
$ xwininfo -all | grep 'xwininfo: Window id:'
xwininfo: Window id: 0x2000011 (has no name)

これは、私0x2000011のシステムで実行されている VLC Player のウィンドウ ID です。このウィンドウを使用して、プロパティを取得または設定できます。これを行うには、xpropユーティリティを使用できます。

for p in _NET_WM_VISIBLE_NAME _NET_WM_NAME; \
   do xprop -id 0x2000011 -format $p 8s -set $p "MyVLC"; done

これにより、VLC Player のウィンドウ タイトルがMyVLCに変更されます。

これはxdotool舞台裏でも行われていることですが、これらのコマンドはかなり低レベルであり、デフォルトでインストールされる可能性が非常に高いです。

参考文献:

于 2014-02-04T21:54:17.670 に答える