如何将尺寸范围的窗口移动到工作区2?

如何将尺寸范围的窗口移动到工作区2?

我有很多数字宽度X高度(550-570)x(465-486) 在西南由 Matlabmovegui()函数逻辑设置在那里。我想打开所有这些西南外部显示器或工作区 2 中的窗口大小范围。 默赫的命令显示这些图形尺寸宽度X高度、它们的十六进制代码和标题,我想将尺寸为 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但单个命令没有任何效果(请注意此处与上面不同的十六进制代码,因为迭代不同)

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 内核:向后移植 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

答案2

Debian 8.5 中没有支持 Gnome 3.14 的工作解决方案。我们希望 2017 年第一季度至第二季度发布的 Gnome 下一个版本能够帮助解决这个问题。

相关内容