如何以编程方式设置终端主题/个人资料


2

这个问题的上下文:我正在编写一个bash脚本,用我的工具/首选项自动设置任何Mac,如果可能的话,理想情况下使用一个命令。

问题:我有一个.terminal主题文件,我使用,我希望脚本能够将其设置为默认的终端配置文件,而无需在运行我的脚本后通过GUI执行,是否有一个命令?


我看到我被投票了...如果你认为这是一个糟糕的问题,请留下评论解释。
Jemar Jones

1
我不知道是谁贬低了这一点,但是当人们没有任何解释时,我讨厌它。IMO应该有解释downvotes的要求。这对我来说似乎是一个非常合理的问题。如果有人有不同的想法,我希望他们能解释原因。
TJ Luoma

@TJLuoma谢谢。我知道我是这个特殊社区的新手,所以如果这是一个糟糕/错误的问题我会批评。
Jemar Jones

1
我使用的是iTerm,而不是终端,所以我无法帮助,但我会查看DuckDuckGo以查看是否有AppleScript方式来激活主题。
TJ Luoma

1
请参阅apple.stackexchange.com/questions/63062 / ...您需要默认写com.apple.terminal
Mark

Answers:


1

好吧,我找到了一个解决方案:

要以编程方式设置终端主题,您需要写入系统首选项。因此,我发现这样做的最简单方法是首先从现有的mac中提取用户首选项。这假设您已将.terminal文件导入现有计算机上终端的配置文件中。首先在现有的mac上运行以下内容(我的主题称为Material-Theme,用您自己的部分替换该部分)

plutil -extract Window\ Settings.Material-Theme xml1 -o - ~/Library/Preferences/com.apple.Terminal.plist > theme.xml

这将创建一个theme.xml供您在脚本中使用的文件。接下来就是编辑文件了。这可以自动化,但如果你像我一样,你只需要做一次这个部分,所以我手动完成了这个。打开文件并删除顶部和底部周围的xml,这样你所拥有的就是dict,我看起来像这样参考:https//pastebin.com/zfXFRY2e

现在,在新计算机上的脚本中,您可以运行以下命令将此主题插入到用户首选项中:

theme=$(<theme.xml)
plutil -replace Window\ Settings.Material-Theme -xml "$theme" ~/Library/Preferences/com.apple.Terminal.plist
defaults write com.apple.Terminal "Default Window Settings" -string "Material-Theme"
defaults write com.apple.Terminal "Startup Window Settings" -string "Material-Theme"

现在,在完全关闭终端应用程序并重新启动它之后运行上述操作后,您的主题应该是默认主题。这个过程可能会有所改进,但这对我有用!

请注意,您可能还想运行defaults read com.apple.Terminal并检查是否存在与您的主题相关的任何其他键。在我的情况下,我发现"NSWindow Frame TTWindow Material-Theme" = "0 327 640 450 0 0 1280 777 ";我的脚本也包括这个defaults write com.apple.Terminal "NSWindow Frame TTWindow Material-Theme" -string "0 327 640 450 0 0 1280 777 "

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.