是否可以在 Mac OS X 的终端中使用图像作为背景?

Moo*_* Xu 5 terminal macos

我知道如何使用“首选项”窗口在 Mac OS X 中的“终端”中更改背景颜色。我希望能够使用图像作为我的终端背景,但我没有看到将图像设置为背景的选项。

是否可以将图像设置为我的终端背景?如果是这样,我将如何做到这一点?我使用的是 Mac OS 10.5.8。

aba*_*aba 7

在 Tiger 中,您可以在 Preferences 中选择背景图像,但在 Leopard 中就没有了。.terminal 文件可以作为 xml 属性列表导出和导入。背景图像的 plist“键”节点值是 BackgroundImagePath 后跟一个“数据”节点,该节点包含一个 base64 编码的二进制属性列表,该列表具有一个指向图像文件的“字符串”节点。

<key>BackgroundImagePath</key>
<data>
...base64 encoded binary plist here....
</data>
Run Code Online (Sandbox Code Playgroud)

您可以使用 openssl 对数据内容进行解码。

openssl enc -d -base64 
Run Code Online (Sandbox Code Playgroud)

然后使用 plutil 将二进制 plist 转换为 xml。

plutil -convert xml1
Run Code Online (Sandbox Code Playgroud)

你会看到这样的东西......

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>$archiver</key>
 <string>NSKeyedArchiver</string>
 <key>$objects</key>
 <array>
  <string>$null</string>
  <string>/Users/user/Pictures/myimage.png</string>
 </array>
 <key>$top</key>
 <dict>
  <key>root</key>
  <dict>
   <key>CF$UID</key>
   <integer>1</integer>
  </dict>
 </dict>
 <key>$version</key>
 <integer>100000</integer>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

更改图像路径并将 xml plist 转换回二进制和 base64 编码。

plutil -convert binary1
openssl enc -base64
Run Code Online (Sandbox Code Playgroud)

然后将“data”节点的值设置为base64字符串。