如何从 shell 中打开一个具有特定大小和位置的新窗口?

如何从 shell 中打开一个具有特定大小和位置的新窗口?

例如,假设我想在西北角 0,0 处启动 gnome-terminal,并将窗口设置为 736x434 像素(显然是默认值,它允许 80 个字符 x 24 个字符的终端窗口)。

我不确定这有多重要,但我正在使用 Ubuntu 11.04 和 GNOME 3,并且该发行版附带任何版本的 Xorg 和窗口管理器(metacity?compiz?)。

答案1

我具体不了解 gnome-terminal,但您可以将标准 xterm 放置为特定的列和行大小,如下所示:

xterm -geometry 80x24+50+100

这是一个 80 列、24 行的 xterm,西北线位于 (50, 100)。我相信X11的坐标是(x,y),屏幕的左上角是(0,0),并且坐标向右和向下变大。

答案2

如果您想要控制的不仅仅是终端窗口,您可以通过使用wmctrl和一些其他X命令行工具来编写常规 X GUI 窗口放置等的脚本,但是这个启动位置这个问题已经被一个名为 .. 的应用程序合理地解决了devilspie。它位于 Ubuntu 存储库中。

This tool will find windows as they are created and perform actions
on them, such as resizing, moving to another workspace, or pinning
them to all workspaces.

答案3

您可以使用 wmctrl 控制任何窗口。该脚本打开几个 mtr 窗口,对它们进行唯一命名并将它们放置在屏幕上。


#!/bin/bash
OPTS='--gtk --interval=30'


function place_mtr
{
        host=$1
        name=mtr_$1
        xpos=$2
        ypos=$3
        xsize=$4
        ysize=$5

        mtr $OPTS $host &
        sleep 1
        wmctrl -r "My traceroute" -N "$name"
        wmctrl -r "$name" -e 0,$xpos,$ypos,$xsize,$ysize
}


place_mtr www.debian.org 0 0 710 150
place_mtr www.ubuntu.com 0 203 710 150
place_mtr www.kernel.org 0 390 710 150

place_mtr www.yahoo.com 770 0 710 150
place_mtr www.facebook.com 770 203 710 150
place_mtr www.google.com 770 390 710 150

相关内容