HomePlay

桌上一台小屏幕,会看着你。

HomePlay 是放在 Mac 桌面上的小东西。平时它显示时间,用一双眼睛陪你;用力按一下,它就变成 CarPlay。

一台会看人的机器,要先学会不看。

HomePlay 想回答一个老问题:机器有了脸之后,该怎么跟人相处?

  1. 1984

    机器第一次打招呼

    Macintosh 开机时,屏幕上是一台在笑的小电脑。发布会上,它还自己说了一句 hello。从那天起,电脑不只是工具,也像一个会回应你的东西。

  2. 1995

    好的科技待在旁边

    Mark Weiser 和 John Seely Brown 在施乐帕洛阿尔托研究中心写下“平静技术”:好的科技平时待在你注意力的边缘,需要时才走到中间,用完再退回去。

  3. 今天

    大多数屏幕都在抢你

    通知、红点、自动播放。屏幕越来越会叫人,却越来越不会安静。

HomePlay 选了另一条路。它大部分时间只是看着你,不出声;你靠近,它才亮起来;你专心工作,它不吵;夜深了,它比你先睡。一双眼睛刚好够说“我在”,又不必要你回应。

移动指针,它会看你;停一会儿,它就闭上眼睛。

你做什么,它都看在眼里。

整个“岛”只有一双眼睛,十种表情全靠眼睛的形状。把指针移到下面任意一行,看看它的反应。

用力按一下,它就变成 CarPlay。

不是录屏,也不是画一个假的界面。iPhone 把真正的 CarPlay 画面和声音传到这台小屏幕上;你在上面点一下,就像在车上点一下。

iPhone发出 CarPlay
homeplay-receiver在 Mac 上接收、解密
小屏幕播放画面和声音,点按传回去

无线

先用蓝牙配对,再通过 Wi-Fi 传画面。

--source wireless

有线

插上数据线就能用,不需要 Wi-Fi。

--source usb

一个窗口

直接抓取 CarPlay Simulator 的窗口,开发时方便。

--source window

无线和有线都需要你自己准备一份配件身份,说明在最下面。

拖着它,转一圈。

照真机的比例做:钟形底座、一根不锈钢铰链、一整片往后仰 16° 的薄屏幕。在桌面上也一样,拖一下就能转。

左右拖动它,或继续往下滚动

拖动、双指滑动转动机身
连点两下角度回正
双指轻点两下拆开、装回
捏合、⌘+ ⌘−放大缩小
用力按进入 CarPlay
空格键直播暂停、继续

五种外观,挑一个喜欢的。

在右键菜单的“外观”里切换,它会记住你选了哪一个。

G4 白

白色亮面,带一点千禧年 Mac 的味道:屏幕是 Aqua 蓝,指针一靠近,它会像向日葵一样转过来。

从早到晚,各有各的样子。

开机先写一个 hello

它会用手写体慢慢写出 hello,向 1984 年的 Macintosh 打招呼。

屏幕上用手写体写着 hello

远看,它很安静

没人靠近时,整个屏幕暗下来,数字变细;指针一靠近才亮。

夜里变暗的时钟

夜深了,它先睡

晚上放着不管,它会打瞌睡、睡着;碰一下就醒。

睡着的桌宠,屏幕上浮着 z

自己编译,就能用。

目前没有安装包,源代码就是全部。你需要:

  • 一台 macOS 14 以上的 Mac,装好 Xcode 或 Swift 6 工具链
  • 只看桌宠:什么都不用接
  • 要用 CarPlay:一部 iPhone 和一份配件身份;无线还要 Wi-Fi
# 编译
swift build -c release
B=.build/release

# 只开桌宠
$B/homeplay-pet

# 接 CarPlay:插着线走有线,没插走无线
$B/homeplay-receiver --source auto --ssid '<Wi-Fi 名称>' --port 8788
$B/homeplay-pet --endpoint ws://127.0.0.1:8788

常见问题

这是 Apple 的产品吗?

不是。HomePlay 是个人实验项目,跟 Apple 没有关系,也没有任何认证。CarPlay 与 HomeView 是 Apple Inc. 的商标,这里只用来说明它做的是什么。

会打扰我、占资源吗?

不太会。全屏的 App 在前面时,它会自己躲起来;睡着时画面降到每秒一帧。桌宠本身不出声,只有 CarPlay 播放时才有声音。

支持哪些语言?

English、简体中文、繁體中文。默认跟随系统,也可以在右键菜单的“语言”里切换。

为什么没有下载?

它还是实验品,所以不发安装包。源代码公开,照上面的命令就能自己编译。

接 CarPlay 需要什么?

无线和有线都需要一份配件身份(identity.pk8 与 certificate.p7b),用 --identity-dir 指定。公开的源代码不附带任何身份,来源与合法性由使用者自行负责。

用什么许可证?

GPL-3.0-or-later。CarPlay 连接的部分参考 MacPlay 与 LIVI 的做法,用 Swift 重新写过,致谢写在 NOTICE。