在Linux中将窗口大小调整为固定大小

41

有没有好方法可以将任何窗口调整为640x480大小?

原因当然是屏幕录制。

在Windows下,我使用过来自donationcoder的ZoneSize。(顺便说一句:对于Firefox来说很容易,只需使用Web开发者工具栏。)

4个回答

69

使用wmctrl命令:

列出窗口:

$ wmctrl -l
0x00c00003 -1 rgamble-desktop Bottom Expanded Edge Panel
0x00c00031 -1 rgamble-desktop Top Expanded Edge Panel
0x00e00022 -1 rgamble-desktop Desktop
0x0260007c  0 rgamble-desktop Google - Mozilla Firefox

根据窗口标题调整窗口大小:

wmctrl -r Firefox -e 0,0,0,640,480

resize选项的参数是方向,X坐标,Y坐标,宽度,高度,因此这将使窗口位于屏幕左上角并调整大小为640X480。


顺便提一下,你可以添加“-G”(即“wmctrl -l -G”)来获取当前的几何信息。 - Gea-Suan Lin
2
您还可以使用“-r ':SELECT:'”指定窗口。这样,您就可以指向并单击要调整大小的窗口。 - Benedikt Köppel

4
使用wmctrl,还有一些预定义的状态:
如果窗口当前处于“最大化”状态,则不会响应使用-e参数调整像素大小。这就是-b参数有用的地方。
引用: -b选项需要一个逗号分隔的参数列表:“(remove|add|toggle),PROP1,PROP2]”
例如:
wmctrl -r Firefox -b toggle,maximized_horz

可用的状态:

wmctrl -r Firefox -b toggle,maximized_vert
                     -----  ---------------
                     remove  modal
                     add     sticky
                     toggle  maximized_vert
                             maximized_horz
                             shaded
                             skip_taskbar
                             skip_pager
                             hidden
                             fullscreen
                             above
                             below

关于这个问题,-e参数允许按照以下值进行调整:

重力、X位置、Y位置、窗口宽度、窗口高度

// gravity,x,y,w,h
wmctrl -r "Resizing" -e 0,0,0,640,480

2

wmctrl -r ":ACTIVE:" -e "0,$(xdotool getactivewindow getwindowgeometry|egrep -o '[0-9]+,[^ ]+'),970,600"

此命令针对当前活动的窗口(即执行该命令的终端窗口),将窗口大小调整为970(宽度)和600(高度)。请保留HTML标签。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

1

使用 wmctrl 调整窗口大小的 sh 脚本:

#!/usr/bin/sh
wmctrl -l
echo
read -p "window id -> " wid
read -p "width -> " ww
read -p "height -> " wh
wmctrl -i -r "$wid" -e  "0,0,0,$ww,$wh"
echo "Done!"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接