这个问题的上下文:我正在编写一个bash脚本,用我的工具/首选项自动设置任何Mac,如果可能的话,理想情况下使用一个命令。
问题:我有一个.terminal
主题文件,我使用,我希望脚本能够将其设置为默认的终端配置文件,而无需在运行我的脚本后通过GUI执行,是否有一个命令?
这个问题的上下文:我正在编写一个bash脚本,用我的工具/首选项自动设置任何Mac,如果可能的话,理想情况下使用一个命令。
问题:我有一个.terminal
主题文件,我使用,我希望脚本能够将其设置为默认的终端配置文件,而无需在运行我的脚本后通过GUI执行,是否有一个命令?
Answers:
好吧,我找到了一个解决方案:
要以编程方式设置终端主题,您需要写入系统首选项。因此,我发现这样做的最简单方法是首先从现有的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 "