news 2026/9/11 12:35:59

Windows Terminal 怎么设置窗口初始位置与启动模式:initialPosition 与 launchMode

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows Terminal 怎么设置窗口初始位置与启动模式:initialPosition 与 launchMode

Windows Terminal 怎么设置窗口初始位置与启动模式:initialPosition 与 launchMode

【免费下载链接】terminalThe new Windows Terminal and the original Windows console host, all in the same place!项目地址: https://gitcode.com/GitHub_Trending/term/terminal

每次启动 Windows Terminal,窗口都停在系统默认位置、默认尺寸,多显示器环境下还容易开到不方便的屏幕上。Windows Terminal 提供了两个顶层全局设置来解决这个问题:initialPosition指定窗口左上角的初始坐标,launchMode指定启动模式(普通窗口、最大化、全屏等)。把这两个配置写进设置文件settings.json,下次新建窗口时就会按你的设置打开。本文依据仓库内的设计文档与设置 Schema,给出完整的配置方法、取值规则和验证方式。

先打开要修改的 settings.json

这两个设置属于设置文件的顶层全局项,不是某个 profile 的属性。用文本编辑器打开用户设置文件即可编辑:

  • 在 Terminal 的按键绑定中配置命令{ "action": "openSettings", "target": "settingsFile" }可以打开settings.json,文档中的说明是"openssettings.jsonin your default text editor"(在你的默认文本编辑器中打开 settings.json),见 Settings Keybinding 规格。
  • 设置值遵循级联规则:settings.json里定义的值优先生效,未定义的项回退到defaults.json,再回退到系统值,见 cascading-settings 说明。其中launchMode的默认值在 defaults.json 中为"default"

配置 initialPosition:窗口左上角的初始坐标

initialPosition是一个字符串,结构为"X value, Y value",表示窗口左上角在首次加载时的位置。按 设置 Schema 的描述:

The position of the top left corner of the window upon first load. On a system with multiple displays, these coordinates are relative to the top left of the primary display.

要点:

  • 多显示器系统中,坐标原点以主显示器的左上角为基准。接在主显示器左侧的显示器,其 X 坐标为负值,Schema 中Coordinates的类型定义(patterns)也允许以-开头。
  • 空格会被忽略;X、Y 任一缺失或无效时,该项使用系统默认值。设计文档 spec.md 给出的取值规则:
设置值实际效果
"1000"等价于 (1000, 1000)
", 1000"X 用系统默认,Y 为 1000
"1000, "X 为 1000,Y 用系统默认
","X、Y 都用系统默认
"abc, 1000"X 无效回退系统默认,Y 为 1000

settings.json顶层写入(文档示例值):

{ "initialPosition": "500,500", "launchMode": "default", "profiles": [ ], "schemes": [ ], "defaultProfile": "" }

解析实现按"左值为 X、右值为 Y"处理字符串,见 ModelSerializationHelpers.h。

配置 launchMode:窗口启动模式

launchMode定义终端以什么模式启动。当前 Schema 支持的取值:

取值行为
default以系统默认尺寸的普通窗口启动(默认值)
maximized启动时最大化
fullscreen全屏启动
focus等价于default模式,但启用 focus mode
maximizedFocus最大化窗口启动,并启用 focus mode

最初的 #1043 设计只规划了maximizeddefault两种模式,全屏、focus 等取值是后续扩展进来的,以当前 Schema 的枚举为准。launchModeinitialPosition有关联行为:当设置为maximized(或maximizedFocus)且同时提供了initialPosition时,窗口会在该坐标所在的那块显示器上最大化(见 spec 的 Edge cases 与 Schema 描述)。

另外两个相关项,Schema 中有明确说明:

  • initialCols/initialRows(默认 120 / 30):首次加载时窗口的列数与行数;当launchModemaximized(或maximizedFocus)时这两个属性被忽略(Schema)。
  • centerOnLaunch(默认false):设为true时窗口在打开的显示器上自动居中,并且终端会用initialPosition来决定在哪块显示器上打开(Schema)。

验证结果与边界行为

保存settings.json后,关闭现有窗口、新建一个窗口来验证:

  • 普通模式:窗口左上角出现在initialPosition指定的坐标;左侧显示器的窗口会出现在负 X 坐标对应的区域。
  • 窗口被开到屏幕外:如果设置的初始位置超出屏幕范围、左上角落在屏幕外,Terminal 会把窗口放到最近显示器的左上角,保证你能看到并把它拖回屏幕内(spec 的 Reliability 一节)。
  • 最大化 + 初始位置:窗口在坐标指向的显示器上最大化,而不是全部显示器铺满。
  • 解析位置失败或该项缺省时,回退到系统默认位置(CW_USEDEFAULT路径,见 spec 的 Solution Design 一节)。

实现细节可作为验证依据:GetInitialPosition从设置读取坐标,缺失分量用默认值补齐;GetLaunchMode决定最终启动模式,见 TerminalWindow.cpp。

两个会覆盖settings.json的优先级情况(均出自上述源码):

  1. 持久化窗口布局:若启用了布局恢复(firstWindowPreference设为persistedWindowLayoutpersistedLayoutAndContent,见 Schema),上次保存的窗口位置与启动模式会优先于设置文件中的initialPosition/launchMode(GetLaunchMode、GetInitialPosition)。如果你发现设置"不生效",先检查这一项。
  2. 命令行参数:命令行传入的位置参数和--maximized/--fullscreen会覆盖设置文件中的值(源码注释引用 GH#4620/#5801,见 TerminalWindow.cpp)。

限制

  • 该功能只负责"初始位置 + 启动时是否最大化/全屏/焦点模式"。退出时保存位置并在下次启动恢复、多窗口场景下的位置保存与恢复,在 spec 的 Future considerations 中仍列为后续工作(当前可通过firstWindowPreference的持久化布局部分覆盖,见上文)。
  • 多显示器场景下 spec 明确提示需要关注社区反馈,属于已知需留意的边界(Potential Issues 一节)。

完成配置后的实际效果是:新建的 Terminal 窗口稳定出现在你指定的显示器与坐标上,或按指定模式(最大化/全屏/focus)启动,不再受系统默认摆放位置影响。

【免费下载链接】terminalThe new Windows Terminal and the original Windows console host, all in the same place!项目地址: https://gitcode.com/GitHub_Trending/term/terminal

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 12:30:21

Alexa设备接入全链路解析:从ACK机制到StateReport实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 12:29:52

微信小程序在古诗词学习中的创新应用与技术实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 12:25:16

CMSIS-FreeRTOS源码静态审计:ARM Cortex-M实时系统确定性验证实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华