簡體   English   中英

如何使用wmctrl在窗口外移動窗口

[英]How to move window offscreen with 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的錯誤?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM