{"id":15113930,"url":"https://github.com/sindresorhus/plash","last_synced_at":"2025-05-13T23:10:01.223Z","repository":{"id":41801119,"uuid":"232793032","full_name":"sindresorhus/Plash","owner":"sindresorhus","description":"💦 Make any website your Mac desktop wallpaper","archived":false,"fork":false,"pushed_at":"2025-02-18T15:54:27.000Z","size":8976,"stargazers_count":3669,"open_issues_count":34,"forks_count":138,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-11T21:24:52.221Z","etag":null,"topics":["active-desktop","app","desktop-wallpaper","dynamic-wallpaper","macos","macos-app","plash","swift","swiftui","wallpaper"],"latest_commit_sha":null,"homepage":"https://sindresorhus.com/plash","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sindresorhus.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"sindresorhus","open_collective":"sindresorhus","buy_me_a_coffee":"sindresorhus","custom":"https://sindresorhus.com/donate"}},"created_at":"2020-01-09T11:26:46.000Z","updated_at":"2025-05-11T18:57:52.000Z","dependencies_parsed_at":"2023-09-24T07:15:25.989Z","dependency_job_id":"5ef01c66-e717-4286-a4d1-a8f8c110a8fc","html_url":"https://github.com/sindresorhus/Plash","commit_stats":{"total_commits":200,"total_committers":8,"mean_commits":25.0,"dds":0.04500000000000004,"last_synced_commit":"a2356b15b6b09940bc0808c8a33ba8fc677a180a"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sindresorhus%2FPlash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sindresorhus%2FPlash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sindresorhus%2FPlash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sindresorhus%2FPlash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sindresorhus","download_url":"https://codeload.github.com/sindresorhus/Plash/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254042310,"owners_count":22004898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-desktop","app","desktop-wallpaper","dynamic-wallpaper","macos","macos-app","plash","swift","swiftui","wallpaper"],"created_at":"2024-09-26T01:40:30.672Z","updated_at":"2025-05-13T23:09:56.189Z","avatar_url":"https://github.com/sindresorhus.png","language":"Swift","readme":"\u003cdiv align=\"center\"\u003e\n\t\u003ca href=\"https://sindresorhus.com/plash\"\u003e\n\t\t\u003cimg src=\"Stuff/AppIcon-readme.png\" width=\"200\" height=\"200\"\u003e\n\t\u003c/a\u003e\n\t\u003ch1\u003ePlash\u003c/h1\u003e\n\t\u003cp\u003e\n\t\t\u003cb\u003eMake any website your Mac desktop wallpaper\u003c/b\u003e\n\t\u003c/p\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\u003c/div\u003e\n\nPlash enables you to have a highly dynamic desktop wallpaper. You could display your favorite news site, Facebook feed, or a random beautiful scenery photo. The use-cases are limitless. You could even set an animated GIF as wallpaper. You can even add multiple websites and easily switch between them.\n\n## Use-cases\n\n- [**Random Unsplash image**](https://source.unsplash.com)\\\n\tExample: https://source.unsplash.com/random/2880x1756?puppy \\\n\t\tThis returns a new random puppy image each time.\n\tSee the [tip](#tips) on how to get exact screen size.\n- [**Bing Photo of the Day**](https://github.com/sindresorhus/plash-bing-photo-of-the-day)\n- **Calendar**\\\n\tFor example, Google Calendar or Outlook 365.\n- **Personal stats**\\\n\tYou could even make a custom website for this.\n- [**Random street view image**](https://randomstreetview.com/#slideshow)\n- **Animated GIF**\\\n\tExample: https://media3.giphy.com/media/xTiTnLmaxrlBHxsMMg/giphy.gif?cid=790b761121c10e72aca8bcfe50b030502b62a69ac7336782\u0026rid=giphy.gif\n- [**Random color**](https://www.color.pizza)\n- **Build a custom website**\\\n\tYou could build something quick and host it on [GitHub Pages](https://pages.github.com), [jsfiddle](https://jsfiddle.net), or [CodePen](https://codepen.io).\n\n[*Share your use-case*](https://github.com/sindresorhus/Plash/discussions/136)\n\n## Features\n\n- Show a remote or local website\n- Interact with the website (“Browsing Mode”)\n- Automatically reload the website at a custom interval\n- Add multiple websites\n- Show the website on a different display\n- Invert website colors (fake dark mode)\n- Add custom CSS and JavaScript to the website\n- Lower the opacity\n- [Transparent background](https://github.com/sindresorhus/Plash/issues/1#issuecomment-573513816)\n- Automatically deactivate while on battery\n- Audio is muted\n- Single image will be aspect-filled to your screen\n- Hide menu bar icon\n- Shortcuts support\n- [Scriptable](#scripting)\n- [Share extension](#share-extension)\n\n## Download\n\n[![](https://sindresorhus.com/assets/download-on-app-store-badge.svg)](https://apps.apple.com/app/id1494023538)\n\nRequires macOS 15 or later.\n\n**Older versions**\n\n- [2.15.0](https://github.com/user-attachments/files/18840646/Plash.2.15.0.-.macOS.14.zip) for macOS 14+\n- [2.14.1](https://github.com/sindresorhus/Plash/releases/download/v2.14.1/Plash.2.14.1.-.macOS.13.zip) for macOS 13+\n- [2.12.1](https://github.com/sindresorhus/Plash/releases/download/v2.12.1/Plash.2.12.1.-.macOS.12.zip) for macOS 12+\n- [2.10.1](https://github.com/sindresorhus/Plash/releases/download/v2.10.1/Plash.2.10.1.-.macOS.11.zip) for macOS 11+\n- [2.1.0](https://github.com/sindresorhus/Plash/releases/download/v2.1.0/Plash.2.1.1.-.macOS.10.15.zip) for macOS 10.15+\n\n**Non-App Store version**\n\nA special version for users that cannot access the App Store. It won't receive automatic updates. I will update it here once a year.\n\n[Download](https://github.com/user-attachments/files/18840560/Plash.2.16.0.zip) *(2.16.0 · macOS 15+)*\n\n## Tips\n\n### Browsing mode\n\nYou can interact with the website by enabling “Browsing Mode”. When in this mode, you can right-click to be able to go back/forward, reload, and zoom in the page contents (the zoom level is saved). You can also pinch to magnify. This is different from zooming the page contents in that it will zoom in to a specific part of the page instead of just enlarging everything.\n\nPlash injects a CSS class named `plash-is-browsing-mode` on the `\u003chtml\u003e` element while browsing mode is active. You could use this class to customize the website for browsing mode.\n\nIf clicking a link opens it in a new window, you can hold the \u003ckbd\u003eOption\u003c/kbd\u003e key while clicking the link to open it in the main Plash window.\n\n### Zoom in website\n\nTo zoom in the website, activate “Browsing Mode”, right-click the website, and then select “Zoom In”.\n\n### URL placeholders for screen width and height\n\nUse `[[screenWidth]]` and `[[screenHeight]]` in any URL and Plash will substitute the right values for you. For example, `https://source.unsplash.com/random/[[screenWidth]]x[[screenHeight]]?puppy`.\n\n### Scroll to position\n\nYou can scroll a website to a specific position each time it is loaded by putting the following in the website's “JavaScript” field. Adjust the “500” to how far down it should scroll.\n\n```js\nwindow.scrollTo(0, 500);\n```\n\nYou can also [scroll to a specific element](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) matching a [CSS selector](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors):\n\n```js\ndocument.querySelector('.title')?.scrollIntoView();\n```\n\n### Make the website occupy only half the screen\n\nYou can use the “CSS” field in the website settings to adjust the padding of the website:\n\n```css\n:root {\n    margin-left: 50% !important;\n}\n```\n\n### Detect Plash\n\nPlash injects a CSS class named `is-plash-app` on the `\u003chtml\u003e` element. You could use this class to customize your website for Plash. For example, if your website has instructions on how to use it in Plash, you could hide those when it's running in Plash.\n\n## Screenshots\n\n![](Stuff/screenshot1.jpg)\n![](Stuff/screenshot2.jpg)\n![](Stuff/screenshot3.jpg)\n![](Stuff/screenshot4.jpg)\n![](Stuff/screenshot5.jpg)\n\n## Scripting\n\nYou can control Plash using anything that supports opening a URL with a custom scheme.\n\nFor example, to reload the current website, run this terminal command:\n\n```console\n$ open -g plash:reload\n```\n\n## Share extension\n\nPlash comes bundled with a [share extension](https://support.apple.com/guide/mac-help/use-the-share-menu-on-mac-mh40614/mac). You can, for example, use it to quickly add a website you have open in Safari to Plash.\n\n### Tools\n\n- [plash-cli](https://github.com/sindresorhus/plash-cli) - Command-line tool.\n- [alfred-plash](https://github.com/sindresorhus/alfred-plash) - Alfred workflow.\n- [Raycast commands](https://github.com/raycast/script-commands/tree/master/commands#plash)\n\n### Commands\n\n#### `add`\n\nAdd a website to Plash.\n\nYou can optionally specify a title. If no title is given, a title will be automatically fetched from the website.\n\n```console\n$ open -g 'plash:add?url=https://sindresorhus.com/plash\u0026title=Plash%20website'\n```\n\n*Don't forget to correctly encode query parameters.*\n\n**Note:** Local file URLs are not supported.\n\n#### `reload`\n\nReload the current website.\n\n```console\n$ open -g plash:reload\n```\n\n#### `next`\n\nSwitch to the next website in the list.\n\n```console\n$ open -g plash:next\n```\n\n#### `previous`\n\nSwitch to the previous website in the list.\n\n```console\n$ open -g plash:previous\n```\n\n#### `random`\n\nSwitch to a random website in the list.\n\nIt will never show the same website twice in a row, unless you only have a single website.\n\n```console\n$ open -g plash:random\n```\n\n#### `toggle-browsing-mode`\n\nToggle browsing mode.\n\n```console\n$ open -g plash:toggle-browsing-mode\n```\n\n### Examples\n\n#### Node.js\n\n```js\nimport {execFileSync} from 'node:child_process';\n\nexecFileSync('open', ['--background', 'plash:reload']);\n```\n\n#### Swift\n\n```swift\nimport Cocoa\n\nlet command = \"plash:reload\"\n\nlet configuration = NSWorkspace.OpenConfiguration()\nconfiguration.activates = false\nNSWorkspace.shared.open(URL(string: command)!, configuration: configuration)\n```\n\n#### AppleScript\n\n```applescript\ndo shell script \"open --background 'plash:reload'\"\n```\n\n#### Python\n\n```python\nimport subprocess\n\nsubprocess.run(['open', '--background', 'plash:reload'])\n```\n\n## FAQ\n\n#### The app does not show up in the menu bar\n\nmacOS hides menu bar apps when there is no space left in the menu bar. This is a common problem on MacBooks with a notch. Try quitting some menu bar apps to free up space. If this does not solve it, try quitting Bartender if you have it installed.\n\n#### Can it automatically switch websites every 10 minutes?\n\nPlash can be automated with the built-in Shortcuts app, for example, using the “Switch to Next Website” action. Shortcuts on macOS does not yet support automations, but for now, you can use the [Shortery app](https://apps.apple.com/app/id1594183810).\n\n#### Does it support multiple displays?\n\nSupport for multiple displays is currently limited to the ability to choose which display to show the website on. Support for setting a separate website for each display is [planned](https://github.com/sindresorhus/Plash/issues/2).\n\nHowever, I there is a [workaround](https://github.com/sindresorhus/Plash/issues/2#issuecomment-653891524).\n\n#### Why does Plash use so much memory?\n\nPlash uses very little memory. Usually around 40 MB. However, the websites you display can take up a lot of memory, and sometimes even have a memory leaks.\n\n#### The menu bar does not adapt to the Plash wallpaper\n\nThe menu bar adapts its color from the actual system wallpaper. Plash is not actually a wallpaper, but rather runs right above the wallpaper. So Plash cannot influence the menu bar color.\n\n#### Can Plash block ads?\n\nNot built-in, but you can block ads system-wide with a [DNS ad-blocker](https://alternate-dns.com).\n\n#### How can I switch to a specific website with a keyboard shortcut?\n\nMake a shortcut in the Shortcuts app that uses the “Set Current Website” action and then set a keyboard shortcut for the shortcut.\n\n#### Can I contribute localizations?\n\nI don't plan to localize the app.\n\n#### What does “Plash” mean?\n\n[Click here.](http://letmegooglethat.com/?q=define+plash)\n\n#### [More FAQs…](https://sindresorhus.com/apps/faq)\n\n## Built with\n\n- [Defaults](https://github.com/sindresorhus/Defaults) - Swifty and modern UserDefaults\n- [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts) - Add user-customizable global keyboard shortcuts to your macOS app\n\n## Links\n\n- [More apps by me](https://sindresorhus.com/apps)\n","funding_links":["https://github.com/sponsors/sindresorhus","https://opencollective.com/sindresorhus","https://buymeacoffee.com/sindresorhus","https://sindresorhus.com/donate"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsindresorhus%2Fplash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsindresorhus%2Fplash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsindresorhus%2Fplash/lists"}