You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace Safari or Chrome's new tab page with macOS's aerial screensaver videos and a small set of calm, optional widgets. macOS is **not** required — videos are streamed from Apple's CDN.
8
+
Replace Chrome's new tab page with macOS's aerial screensaver videos and a small set of calm, optional widgets. macOS is **not** required — videos are streamed from Apple's CDN and play in any platform that runs Chrome.
9
9
10
10

11
11
12
12
## Features
13
13
14
14
- 🎥 **156 aerial videos** in 4K SDR, sourced from Apple's current macOS catalog (Landscapes, Cities, Underwater, Space, and more).
15
15
- 🌤️ **Live weather** — current temperature, "feels like", 3-day forecast, sunrise/sunset, UV, wind, air quality. Powered by [Open-Meteo](https://open-meteo.com/), no API key required.
16
-
- 📌 **Top sites** widget pulled from the browser's built-in list when available (no history permission needed).
16
+
- 📌 **Top sites** widget pulled from Chrome's built-in list (no history permission needed).
17
17
- 💬 **Random quotes** from a curated 500-entry public-domain set.
18
18
- 🧘 **Zen mode** — fullscreen the video with optional ambient music.
19
19
- 🔤 **4 languages** — English, 简体中文, 繁體中文, 日本語.
@@ -22,19 +22,20 @@ Replace Safari or Chrome's new tab page with macOS's aerial screensaver videos a
22
22
23
23
[Install from Chrome Web Store](https://chromewebstore.google.com/detail/macify-macos-screensaver/lgdipcalomggcjkohjhkhkbcpgladnoe).
24
24
25
-
Or load unpacked: see [Building from source](#building-from-source). For a local Safari build, see [SAFARI.md](SAFARI.md).
25
+
Or load unpacked: see [Building from source](#building-from-source). For an
26
+
experimental local Safari build, see [SAFARI.md](SAFARI.md).
26
27
27
28
## Choosing a video source
28
29
29
30
Three options. Each section in the extension's settings page also includes a built-in step-by-step setup guide — this README only summarises.
30
31
31
32
### 1. Apple Server (default)
32
33
33
-
Streams directly from `sylvan.apple.com`. If direct video playback fails, two fallback paths are available:
34
+
Streams directly from `sylvan.apple.com`. Chrome may not trust Apple's certificate by default; two ways to fix it:
34
35
35
-
**Option A — Reverse proxy.** Video requests are routed through your own Cloudflare Worker. Convenient, but it requires a CDN host you control.
36
+
**Option A — Reverse proxy (default on, easiest).** Video requests are routed through a hosted Cloudflare Worker that handles the certificate dance. Zero local setup. Convenient but should not be relied on long-term — set up local hosting or trust the cert when possible.
36
37
37
-
**Option B — Trust Apple's cert manually.** Visit [https://sylvan.apple.com](https://sylvan.apple.com) once in the target browser. If you see a security warning, use the browser's advanced option to proceed. The browser should remember that trust.
38
+
**Option B — Trust Apple's cert manually (cleanest).** Visit [https://sylvan.apple.com](https://sylvan.apple.com) once in Chrome. You'll see a security warning — click "Advanced", then "Proceed to sylvan.apple.com (unsafe)". Chrome remembers the trust and direct connection works thereafter.
38
39
39
40

40
41
@@ -84,20 +85,21 @@ In Macify settings, switch the source to **Local server** and confirm the URL is
84
85
85
86
## Permissions
86
87
87
-
Macify requests two permissions, both non-sensitive:
88
+
Macify requests three permissions, all non-sensitive:
88
89
89
90
| Permission | Used for |
90
91
|---|---|
91
92
|`storage`| Persist user preferences and cache weather data. |
92
-
|`topSites`| Read the browser's most-visited list for the Top Sites widget when supported. |
93
+
|`topSites`| Read Chrome's most-visited list for the Top Sites widget. |
94
+
|`favicon`| Show favicons next to Top Sites entries (uses Chrome's built-in cache; no external network). |
93
95
94
96
No `history` permission. No host permissions for arbitrary sites.
95
97
96
98
## Building from source
97
99
98
100
Requirements: Node.js 20+ and npm.
99
101
100
-
The default self-use build is zero-config: it streams directly from Apple and does not require a CDN. A CDN is only needed for the optional Apple aerial reverse proxy and zen-mode music.
102
+
The build is **not zero-config** — Macify needs a CDN you control for the Apple aerial reverse proxy and the zen-mode music. The published Chrome Store build uses my own infrastructure; if you fork, you bring your own. The build refuses to run without these set.
101
103
102
104
### 1. Stand up your CDN host
103
105
@@ -133,13 +135,13 @@ Skip this if you don't care — the worker still works.
"Transform your new tab into macOS's gorgeous aerial screensaver videos.",
13
+
video_apple_help_intro:
14
+
"Some browsers may not trust Apple's sylvan.apple.com certificate, so direct video loading can fail. Two ways to make it work:",
15
+
video_apple_help_option2_body_post:
16
+
'in the target browser once. If you see a security warning, open the advanced option and proceed. The browser should remember your trust after that.',
17
+
options_translation_description:
18
+
'Translates English mottos into your display language when the browser provides an on-device Translator API. No new network requests beyond the one-time model download.',
19
+
options_translation_status_no_api:
20
+
"Your browser doesn't support the Translator API",
21
+
},
22
+
ja: {
23
+
ext_description:
24
+
'新しいタブをmacOSの美しいエアリアル・スクリーンセーバー動画に変えます。',
25
+
video_apple_help_intro:
26
+
'一部のブラウザでは Apple の sylvan.apple.com の証明書を信頼せず、動画の直接読み込みに失敗する可能性があります。2つの解決方法:',
Copy file name to clipboardExpand all lines: src/_locales/en/messages.json
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
"message": "Macify - Gorgeous Aerial Videos as Your New Tab"
4
4
},
5
5
"ext_description": {
6
-
"message": "Transform your new tab into macOS's gorgeous aerial screensaver videos."
6
+
"message": "Transform Chrome's new tab into macOS's gorgeous aerial screensaver videos."
7
7
},
8
8
"options_title": {
9
9
"message": "Macify Settings"
@@ -228,7 +228,7 @@
228
228
"message": "Why might Apple's server need extra setup?"
229
229
},
230
230
"video_apple_help_intro": {
231
-
"message": "Some browsers may not trust Apple's sylvan.apple.com certificate, so direct video loading can fail. Two ways to make it work:"
231
+
"message": "Chrome doesn't always trust Apple's sylvan.apple.com certificate, so direct video loading may fail. Two ways to make it work:"
232
232
},
233
233
"video_apple_help_option1_title": {
234
234
"message": "Option 1 — Use the reverse proxy (easy)"
@@ -243,7 +243,7 @@
243
243
"message": "Open"
244
244
},
245
245
"video_apple_help_option2_body_post": {
246
-
"message": "in the target browser once. If you see a security warning, open the advanced option and proceed. The browser should remember your trust after that."
246
+
"message": "in Chrome once. You'll see a security warning — click Advanced, then \"Proceed to sylvan.apple.com (unsafe)\". Chrome remembers your trust and direct connection works from then on."
247
247
},
248
248
"video_local_help_title": {
249
249
"message": "Set up a local Apache server (one-time)"
@@ -282,7 +282,7 @@
282
282
"message": "Translation"
283
283
},
284
284
"options_translation_description": {
285
-
"message": "Translates English mottos into your display language when the browser provides an on-device Translator API. No new network requests beyond the one-time model download."
285
+
"message": "Translates English mottos into your display language using Chrome's built-in on-device Translator API. No new network requests beyond the one-time model download."
286
286
},
287
287
"options_translation_model_label": {
288
288
"message": "Model"
@@ -306,7 +306,7 @@
306
306
"message": "Not supported for this language pair"
307
307
},
308
308
"options_translation_status_no_api": {
309
-
"message": "Your browser doesn't support the Translator API"
309
+
"message": "Your browser doesn't support the Translator API (requires Chrome 138+)"
0 commit comments