linux系统怎么移动窗口,linux – 如何使用wmctrl在窗口外移动窗口

我试图以编程方式移动一个窗口,使其部分在屏幕上.例如,单击VLC标题栏并拖动它以便只有一半窗口可见,效果很好.

当我输出wmctrl -lG的结果时,这很好用:

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

然而,当我然后将它移回屏幕并尝试复制其位置时,它不起作用并将窗口剪切到远端:

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

我已经测试了几个窗口管理器,它似乎在xfwm上工作正常但不在compiz上.是否有一个标志或类似的东西,我可以设置为启用屏幕移动窗口?

解决方法:

在窗口管理器下运行时,这完全取决于窗口管理器.是否存在强制部分屏幕外位置的标志取决于它是哪个窗口管理器.

唯一的窗口管理器不可知的方法是使窗口成为override_redirect窗口.但是,当然,这意味着窗口不再受管理.再次使其成为普通窗口将导致窗口管理器再次管理它,这可能再次取决于窗口管理器,意味着再次强制它进入入口.

也就是说,查看wmctrl的源代码,如果窗口管理器支持它,则使用_NET_MOVERESIZE_WINDOW,否则返回XMoveResizeWindow(或类似).但是,在第一种情况下,它首先将位置值转换为unsigned long,这实际上意味着任何负值都会丢失.在第二种情况下,负值似乎表示“不动”,所以也没有运气.

您可以尝试使用xdotool windowmove,它将正确处理负值.也许还考虑提交针对wmctrl的错误?

标签:window-managers,linux,ubuntu,x11,compiz

来源: https://codeday.me/bug/20190829/1759065.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值