サイズ範囲ウィンドウをワークスペース2に移動するには?

サイズ範囲ウィンドウをワークスペース2に移動するには?

私は数が多いX高い(550-570)x(465-486)in南西Matlab関数ロジックにmovegui()設定します。全部開けたい南西外部モニタまたはワークスペースのウィンドウサイズの範囲 2. まあこのコマンドは、次の図形寸法を表示します。X高い、16進コードとタイトルを使用して、560 x 475サイズのウィンドウを次の位置に移動したいと思います。X高い、それぞれワークスペース2

masi@masi:~$ wmctrl -l -G
0x01c0000b  0 0    0    3840 1080 masi Desktop
0x01e00002  0 0    54   1920 1023 masi Edit - Unix & Linux Stack Exchange - Google Chrome
0x02200006  0 2088 333  1608 501  masi masi@masi: ~
0x0280003d  0 1920 78   1920 1041 masi MATLAB R2016a - academic use
0x02800ac6  0 11   113  568  465  masi Figure 1: data gray all 4
0x02800af2  0 687  113  560  475  masi Figure 2: data gray top half (1/2)
0x02800aff  0 1364 113  560  475  masi Figure 3: data gray top #1 (1/4)
0x02800b16  0 1364 621  560  475  masi Figure 4: Time domain
0x02800b2a  0 11   631  568  465  masi Figure 5: Memory/... Monitoring
0x02800b31  0 683  631  568  465  masi Figure 6: data Size(I) monitoring 
0x02800b3b  0 11   621  560  475  masi Figure 7: Histograms
0x02800b85  0 774  594  386  28   masi Press SPACEBAR to continue

meuhのコマンドを実行すると正しい数のコマンドが提供されますが、単一のコマンドwmctrlは効果がありません(ここでは反復が異なるため、上記とは異なる16進コードに注意してください)。

masi@masi:~$ wmctrl -l -G |
> awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
>                if(width>=550 && width<=570 && height>=465 && height<=485)
>                   printf "wmctrl -i -r %s -t 2\n",winid
>              }' | sh -x
+ wmctrl -i -r 0x03200120 -t 2
+ wmctrl -i -r 0x03200149 -t 2
+ wmctrl -i -r 0x0320015f -t 2
+ wmctrl -i -r 0x03200173 -t 2
+ wmctrl -i -r 0x03200188 -t 2
+ wmctrl -i -r 0x0320019f -t 2
+ wmctrl -i -r 0x032001b2 -t 2

なぜ+ wmctrl -i -r 0x03200120 -t 2ワークスペース2にウィンドウを置くのですか?そこのシンボルは何ですか+

  • 私はwmctrl -r 1 -t 2ここで何とかTODO次元を指定する以外は何もしませんでした。
  • 560x475サイズのウィンドウをワークスペース2に移動するには?
  • (550-570)x(465-485)サイズのウィンドウをワークスペース2に移動するには?

オペレーティングシステム:Debian 8.5 64ビット
Linuxカーネル:Backport 4.6
Matlab:2016a
ウィンドウマネージャ:Gnome 3.14
ハードウェア:Asus Zenbook UX303UA、Asus PC
その他のソース:Commandlinefuを検索コントロールパネル関連するものをインポートしていません

ベストアンサー1

小さな awk スクリプトを使用すると、空白で区切られた列 5 と 6 の幅と高さを使用して、目的のウィンドウ ID をフィルタリングできます。

wmctrl -l -G |
awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
               if(width>=550 && width<=570 && height>=465 && height<=485)
                  printf "wmctrl -i -r %s -t 2\n",winid
             }' | sh

おすすめ記事