我有几个脚本可以根据模板重写我的 Windows 终端 settings.json 文件。
在修复错误时,我注意到另一个文件state.json
。但我找不到任何相关文档。这是我的删节版:
{
"dismissedMessages" :
[
"setAsDefault"
],
"generatedProfiles" :
[
"{<some-guid1>}",
"{<some-guid2>}",
"{<some-guid3>}",
"{<some-guid4>}",
"{<some-guid5>}",
"{<some-guid6>}"
],
"settingsHash" : "<some-hash<"
}
这些键/值是什么意思?
答案1
我在 Microsoft Terminal 文档网站上找到的唯一信息是这一页在将 settings.json 重置为默认值时使用以下语句:
从 Windows Terminal 1.10 或更高版本开始,您还需要删除与 settings.json 文件位于同一目录中的 state.json 文件,以将设置完全重置为默认值。
在 github repo 中我发现此规格页面,其中提到:
终端需要一个地方来存储应用程序的“状态”,包括:
- 用户选择使用 [ ] 不再询问复选框隐藏的对话框,如问题 6641 中所述
- 已生成哪些动态配置文件,以解决用户对配置文件“返回”的不满
- 窗口在屏幕上的位置、活动会话状态、布局等,以便最终恢复
此规范提供了存储这些东西的地方。
我没有找到此文件的架构,就像 settings.json 中的架构一样,但是 这个.h文件似乎至少有一些字段被声明了。
因此,这似乎是 Terminal 用来保存状态的文件,不会被用户编辑 settings.json 所影响。它似乎还专注于存储与 Terminal 交互相关的状态,而该文件也由用户直接编辑过。
我的 json 文件中的键在上述规范的上下文中是不言而喻的,尽管我不太确定设置哈希。这似乎是它目前使用的地方,作为一种避免重新计算“JumpList”的方法。这似乎表明 settingsHash 应该是所有当前设置的哈希值,包括用户的 settings.json 编辑,而不仅仅是 Terminal 生成的原始设置。
我不知道为什么计算 JumpList 会占用大量 CPU。也许不是,只是涉及到对操作系统的缓慢 API 调用。
特别是,除非我想将 settings.json 重置为出厂默认设置,否则我认为没有理由编辑或修改此文件。
答案2
虽然我没有找到任何官方文档,但state.json
它用于在Open windows from previous session
启用设置时保存 Windows 终端会话状态("firstWindowPreference": "persistedWindowLayout"
如settings.json
所述这里。
我摆弄了state.json
很多东西,因为我经常自定义我的启动选项卡、目录等,它似乎与行动. 看来 Windows 终端重播WT 启动时指定的操作,state.json
而可能的操作可能是“在此目录中打开具有此类标题的选项卡”、“将选项卡重命名为‘某些内容’”等。
我尝试搜索一些state.json
规范,但没有成功,但似乎指定了可用操作的列表在 WT github 上
从它们的名称中可以推断出很多信息。例如,该操作switchToTab
允许在 WT 启动时设置默认活动选项卡。
下面是我的一个代码片段state.json
,它打开两个选项卡并将第二个选项卡设置为活动选项卡:
{
"action" : "newTab",
"commandline" : "\"C:\\Program Files\\PowerShell\\7\\pwsh.exe\"",
"profile" : "PowerShell",
"startingDirectory" : "P:\\git-cz-moneta-wps\\wps\\devops\\openapi-codegen\\output",
"suppressApplicationTitle" : false,
"tabTitle" : "openapi-codegen/output"
},
{
"action" : "newTab",
"commandline" : "\"C:\\Program Files\\PowerShell\\7\\pwsh.exe\"",
"profile" : "PowerShell",
"startingDirectory" : "s:\\",
"suppressApplicationTitle" : false,
"tabTitle" : "scripts"
},
{
"action" : "switchToTab",
"index" : 1
}