恢复MacOS默认终端 - MacOS restore default terminal application

  • 阴的没边了,默认应用没法直接 GUI 改

Why

其实是用 Ghostty 的时候把默认终端改成了它,想改回去发现在设置里没有

How

其实 Ghostty 这个修改是改两项,一项是 public.shell-script 对应 .sh 文件的默认打开应用,另一项是 public.unix-executable,需要查看的话只需要

1
/usr/bin/swift -e 'import CoreServices; import Foundation; let h = LSCopyDefaultRoleHandlerForContentType("public.unix-executable" as CFString, .all); if let r = h { print(r.takeRetainedValue() as NSString) } else { print("unknown") }'

以及

1
/usr/bin/swift -e 'import CoreServices; import Foundation; let h = LSCopyDefaultRoleHandlerForContentType("public.shell-script" as CFString, .all); if let r = h { print(r.takeRetainedValue() as NSString) } else { print("unknown") }'

然后将其改回去,只需要

1
/usr/bin/swift -e 'import CoreServices; let s = LSSetDefaultRoleHandlerForContentType("public.unix-executable" as! CFString, .all, "com.apple.Terminal" as! CFString); print(s == 0 ? "Success" : "Error: \(s)")'

这个会给交互式弹窗,选择 Terminal.app 就行了,以及

1
/usr/bin/swift -e 'import CoreServices; let s = LSSetDefaultRoleHandlerForContentType("public.shell-script" as! CFString, .all, "com.apple.Terminal" as! CFString); print(s == 0 ? "Success" : "Error: \(s)")'