设置正在运行的应用程序的窗口尺寸

Jam*_*mie 31 window-manager utilities x11

我正在尝试在 Ubuntu(xfce 或 gnome)中通过命令行启动一个应用程序,并且想知道是否有一种通用的方法来设置当前正在运行的给定应用程序的给定窗口的尺寸?

fra*_*ous 23

如果您安装类似xdotool. 然后你可以这样做:

xdotool search --name "window name" windowsize 300 400
Run Code Online (Sandbox Code Playgroud)

将“窗口名称”替换为出现在窗口标题中的名称或正则表达式(您也可以按窗口类别和其他各种内容进行搜索),出现在windowsize之后的两个数字分别是宽度和高度。(您也可以使用百分比等)man xdotool安装后查看。

但是,如果您使用的是 Lucid 或更早版本,我建议您访问 xdotool 网站以获取更新版本。

例如,要调整 Firefox 的大小:

xdotool search --name "Mozilla Firefox" windowsize 1024 768
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法在没有装饰(标题栏)的情况下调整全屏窗口的大小?并在屏幕上设置精确位置(例如 x=0, y=0)?我正在尝试将其设置为最大化 mplayer 到 800x600 x=0 y=0,然后在几分钟后进入相同的全屏模式。谢谢 (3认同)

Mic*_*zek 18

如果窗口管理器支持 Xlib,则有。这使用 Python 将窗口的大小设置为 500x300:

WIDTH, HEIGHT = 500, 300
import Xlib
import Xlib.display

display = Xlib.display.Display()
root = display.screen().root
windowID = root.get_full_property(display.intern_atom('_NET_ACTIVE_WINDOW'), Xlib.X.AnyPropertyType).value[0]
window = display.create_resource_object('window', windowID)
window.configure(width = WIDTH, height = HEIGHT)
display.sync()
Run Code Online (Sandbox Code Playgroud)

困难的部分是获取窗口 ID;在上面的代码中,它获得了活动窗口的 ID。如果你想要另一个 ID,你可以使用这样的东西来获取每个窗口的标题和控制 PID,并根据这些选择正确的 ID:

windowIDs = root.get_full_property(display.intern_atom('_NET_CLIENT_LIST'), Xlib.X.AnyPropertyType).value
for windowID in windowIDs:
    window = display.create_resource_object('window', windowID)
    name = window.get_wm_name() # Title
    prop = window.get_full_property(display.intern_atom('_NET_WM_PID'), Xlib.X.AnyPropertyType)
    pid = prop.value[0] # PID
Run Code Online (Sandbox Code Playgroud)