You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何像在Windows中一样设置Ubuntu终端的启动坐标?

在Ubuntu中让终端窗口启动于自定义坐标的方法

Ubuntu下不同终端模拟器的启动参数略有不同,下面分几种常见场景给出实现方式:

一、直接启动终端时指定位置

GNOME Terminal(Ubuntu默认终端)

用--geometry参数控制窗口位置,格式是[宽x高]+X+Y,X和Y就是你要的坐标。如果不需要指定窗口大小,直接写坐标就行:

gnome-terminal --geometry +100+50

要是想同时设置窗口尺寸(比如80列×24行):

gnome-terminal --geometry 80x24+100+50

Konsole(KDE桌面终端)

同样用--geometry参数,用法和GNOME Terminal一致:

konsole --geometry +100+50

xfce4-terminal(Xfce桌面终端)

参数还是--geometry,写法相同:

xfce4-terminal --geometry +100+50

二、从C++程序里启动终端并定位

如果你的需求是用C++程序触发终端窗口启动,同时指定坐标,有两种常用方式:

方式1:用system()函数快速实现

直接调用终端的启动命令,-e参数用来指定终端启动后要运行的你的C++程序:

#include <cstdlib>

int main() {
    // 启动GNOME Terminal并定位到x=100,y=50,同时运行你的程序
    system("gnome-terminal --geometry +100+50 -e './your_cpp_executable'");
    // 用Konsole的话换成这条
    // system("konsole --geometry +100+50 -e './your_cpp_executable'");
    return 0;
}

方式2:用execvp()函数(更安全)

system()会调用shell,有注入风险,用execvp更稳妥,配合fork创建子进程:

#include <unistd.h>
#include <sys/wait.h>
#include <stdio.h>

int main() {
    pid_t pid = fork();
    if (pid == 0) {
        // 子进程中启动终端
        const char* args[] = {"gnome-terminal", "--geometry", "+100+50", "-e", "./your_cpp_executable", nullptr};
        execvp("gnome-terminal", (char* const*)args);
        // 如果execvp执行失败,打印错误
        perror("Failed to launch terminal");
        _exit(1);
    } else if (pid > 0) {
        // 父进程等待子进程完成
        wait(nullptr);
    } else {
        perror("Fork failed");
        return 1;
    }
    return 0;
}

三、设置终端默认启动位置(一劳永逸)

如果想让终端每次启动都固定在这个位置,直接改配置就行:

  • GNOME Terminal:打开终端,点顶部菜单栏的编辑→首选项→配置文件,选中你用的配置文件,点编辑,在窗口选项卡选初始窗口位置为自定义,输入X=100、Y=50即可。
  • Konsole:打开设置→编辑当前配置文件→窗口,设置初始位置为自定义坐标。

内容的提问来源于stack exchange,提问作者JamesQReader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:03:37