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 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.
8
+
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.
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 Chrome's built-in list (no history permission needed).
16
+
- 📌 **Top sites** widget pulled from the browser's built-in list when available (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,19 @@ Replace Chrome's new tab page with macOS's aerial screensaver videos and a small
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).
25
+
Or load unpacked: see [Building from source](#building-from-source). For a local Safari build, see [SAFARI.md](SAFARI.md).
26
26
27
27
## Choosing a video source
28
28
29
29
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
30
31
31
### 1. Apple Server (default)
32
32
33
-
Streams directly from `sylvan.apple.com`. Chrome may not trust Apple's certificate by default; two ways to fix it:
33
+
Streams directly from `sylvan.apple.com`. If direct video playback fails, two fallback paths are available:
34
34
35
-
**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.
35
+
**Option A — Reverse proxy.** Video requests are routed through your own Cloudflare Worker. Convenient, but it requires a CDN host you control.
36
36
37
-
**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.
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
38
39
39

40
40
@@ -84,21 +84,20 @@ In Macify settings, switch the source to **Local server** and confirm the URL is
84
84
85
85
## Permissions
86
86
87
-
Macify requests three permissions, all non-sensitive:
87
+
Macify requests two permissions, both non-sensitive:
88
88
89
89
| Permission | Used for |
90
90
|---|---|
91
91
|`storage`| Persist user preferences and cache weather data. |
92
-
|`topSites`| Read Chrome's most-visited list for the Top Sites widget. |
93
-
|`favicon`| Show favicons next to Top Sites entries (uses Chrome's built-in cache; no external network). |
92
+
|`topSites`| Read the browser's most-visited list for the Top Sites widget when supported. |
94
93
95
94
No `history` permission. No host permissions for arbitrary sites.
96
95
97
96
## Building from source
98
97
99
98
Requirements: Node.js 20+ and npm.
100
99
101
-
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.
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
101
103
102
### 1. Stand up your CDN host
104
103
@@ -134,13 +133,13 @@ Skip this if you don't care — the worker still works.
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 Chrome's new tab into macOS's gorgeous aerial screensaver videos."
6
+
"message": "Transform your 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": "Chrome doesn't always trust Apple's sylvan.apple.com certificate, so direct video loading may fail. Two ways to make it work:"
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:"
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 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."
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."
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 using Chrome's built-in on-device Translator API. No new network requests beyond the one-time model download."
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."
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 (requires Chrome 138+)"
309
+
"message": "Your browser doesn't support the Translator API"
0 commit comments