[英]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.