gnome-terminal的--geometry参数必须放在所有--window/--tab选项之前才会生效,其格式是--geometry=COLSxROWS+X+Y(列×行+像素偏移),就像--geometry=80x24+100+50这样。但要注意,在Wayland环境下该参数是无效的,只有切换到X11会话才能精确定位。

gnome-terminal --geometry 参数怎么写才生效
在命令行中直接输入 gnome-terminal --geometry=80x24+100+50 就能打开一个终端,其宽度为80列,高度为24行,左上角位于屏幕的X=100、Y=50像素处。不过需要注意的是:该参数必须放在其他所有选项(例如 --tab 或 --window)之前,否则会被忽略。
常见错误是把 --geometry 放在 --tab 后面,结果窗口还是按默认大小弹出。另外,ROWSxCOLS+X+Y 里的 ROWS 是行数(高度),COLS 是列数(宽度)——和直觉相反,容易写反。
80x24表示 80 列 × 24 行(不是像素)+100+50是相对于屏幕左上角的偏移,单位是像素- 如果只写
80x24,窗口会居中;加了+X+Y才固定位置 - 负值(如
+0-20)会让窗口上移出任务栏,慎用
如何获取当前终端的实际 geometry 值
手动调好一个终端窗口后,运行 xwininfo,鼠标变成十字,点一下该窗口,输出末尾会出现类似 -geometry 120x30+200+100 的行——这就是你要的值。别抄错符号,xwininfo 输出的是带减号的格式(-geometry),而 gnome-terminal 要求的是等号格式(--geometry=),所以得把 -geometry 换成 --geometry=,其余照搬。
如果你用的是 Wayland(Ubuntu 22.04+ 默认),xwininfo 会失效,此时只能靠估算或改用 --maximize 这类确定性更强的参数。
- Wayland 下
xwininfo、wmctrl、xdotool基本不可用 - GNOME on Wayland 不支持
--geometry精确定位,只支持--maximize或--full-screen - 若必须精确定位,得切回 X11 会话(登录界面右下角选 “Ubuntu on Xorg”)
让每次启动都用自定义 geometry 的三种方法
最可靠的是改快捷方式或桌面启动器,而不是动系统配置文件。GNOME 已弃用 gconf-editor 和旧版 dconf 键路径,硬改 /desktop/gnome/applications/terminal/exec 在新版里无效。
- 新建一个 .desktop 文件(比如
~/.local/share/applications/my-terminal.desktop),内容包含Exec=gnome-terminal --geometry=120x30+100+50 - 用
sudo update-desktop-database刷新后,在应用菜单里就能看到新入口 - 或者绑定快捷键:在“设置 > 键盘 > 快捷键”里新增命令,填
gnome-terminal --geometry=120x30+100+50 - 不推荐改
/usr/share/applications/org.gnome.Terminal.desktop,升级时会被覆盖
为什么改了 termcap 里的 co/li 没效果
修改 /usr/share/vte/termcap/xterm 中的 :co#80:li#24: 只影响 VTE 组件内部的字符缓冲区尺寸,不控制窗口像素大小或位置。它决定的是“终端能显示多少字符”,不是“窗口有多大”。所以你改了之后,窗口本身还是小的,只是里面文字换行逻辑变了——容易误以为没生效。
真正影响视觉尺寸的,只有 --geometry、--maximize、GUI 设置里的“行/列数”,以及桌面环境对窗口管理器的约束。
co(columns)和li(lines)是 terminfo 数据库字段,被 ncurses 等库读取- 现代 GNOME Terminal 优先遵循 GUI 设置或命令行参数,几乎忽略 termcap 里的 co/li
- 除非你在跑纯文本 tty(Ctrl+Alt+F1~F6),否则 termcap 修改基本无感