{"id":13765769,"url":"https://github.com/muffinista/before-dawn","last_synced_at":"2026-01-22T08:17:56.489Z","repository":{"id":3864873,"uuid":"49520328","full_name":"muffinista/before-dawn","owner":"muffinista","description":"A desktop screensaver app using web technologies","archived":false,"fork":false,"pushed_at":"2024-11-06T19:35:39.000Z","size":19090,"stargazers_count":196,"open_issues_count":4,"forks_count":23,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-11-06T20:32:56.036Z","etag":null,"topics":["electron","electron-app","screensaver","screensavers"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/muffinista.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"code_of_conduct.md","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}},"created_at":"2016-01-12T18:29:09.000Z","updated_at":"2024-11-06T19:35:41.000Z","dependencies_parsed_at":"2023-07-05T18:31:56.997Z","dependency_job_id":"fb0f80a8-b610-44e0-81a7-54c2ce4f744b","html_url":"https://github.com/muffinista/before-dawn","commit_stats":{"total_commits":1537,"total_committers":4,"mean_commits":384.25,"dds":0.4456733897202342,"last_synced_commit":"fcfd400d3a9a6e874da945cf7336ca3fc059628b"},"previous_names":[],"tags_count":88,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinista%2Fbefore-dawn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinista%2Fbefore-dawn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinista%2Fbefore-dawn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinista%2Fbefore-dawn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muffinista","download_url":"https://codeload.github.com/muffinista/before-dawn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224989516,"owners_count":17403408,"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":["electron","electron-app","screensaver","screensavers"],"created_at":"2024-08-03T16:00:45.519Z","updated_at":"2026-01-22T08:17:56.483Z","avatar_url":"https://github.com/muffinista.png","language":"JavaScript","funding_links":[],"categories":["Apps","JavaScript"],"sub_categories":["Open Source"],"readme":"# Before Dawn\n\nBefore Dawn is a an open-source, cross-platform screensaver application using\nweb-based technologies. You can generate screensavers with it using HTML/CSS,\njavascript, canvas, and any tools that rely on those technologies. In theory,\ngenerating a Before Dawn screensaver is as simple as writing an HTML page.\n\nThe project developed out of a personal project to explore the history of early\nscreensavers. I decided that I wanted to write a framework that I could use to\nactually run screensavers on my computer. I wanted it to be cross-platform and\neasily accessible to artists and developers.\n\nBefore Dawn is definitely a bit of a experiment -- to actually use it, you need\nto run it as a separate application on your computer and disable whatever\nscreensaver you have running in your OS, but it is fun and definitely works.\n\nThe core of the app is built on [Electron](https://www.electronjs.org/), a system\nthat allows you to build desktop applications that run on\n[node.js](https://nodejs.org/) and are rendered via Chrome.\n\nThere's a bunch of screensavers to choose from. Here's the Flying Emoji screensaver:\n\n![flying\nemoji](https://github.com/muffinista/before-dawn/raw/main/assets/emoji-on-monitor-opt.gif\n\"Flying Emoji!\")\n\nYou can get a quick preview of the other screensavers via this [preview\npage](http://muffinista.github.io/before-dawn-screensavers/).\n\n\nThe first time you open the application, the preferences window will open. You\ncan preview and pick screensavers there:\n\n![preferences window](assets/prefs.png \"Preferences Window\")\n\nThere's an 'Advanced Settings' section where you can specify certain options for\nhow the application should run.\n\n![settings window](assets/settings.png \"Preferences Settings\")\n\n\n## Downloads\n\nInstallers are available from the\n[releases](https://github.com/muffinista/before-dawn/releases) page.\n\n## Status\n\nRight now the application itself is pretty stable. This repo includes the main\ncode for running the actual screensaver, a simple app for picking your\nscreensaver and setting some options, and a bunch of modules to pull it all\ntogether.\n\nThe actual code for the screensavers is in [a separate\nrepo](https://github.com/muffinista/before-dawn-screensavers). If you want to\nwrite a screensaver, please add it to the project via a PR!\n\n## Running It\n\nThe easiest way to use the tool is to install it to your computer. You can grab\nan installer from the\n[releases](https://github.com/muffinista/before-dawn/releases) page. Binaries\nare available for OSX and Windows, and there's an experimental release for\nUbuntu/Debian.\n\nOnce it's running, there will be a sunrise icon in your system tray, with a few\ndifferent options. If you click 'Preferences,' you can preview the different\nscreensavers, set how much idle time is required before the screensaver starts\nto run, specify custom paths, etc.\n\nOnce you've set all of that up, Before Dawn will happily run in the background,\nand when it detects that you have been idle, it will engage your screensaver.\nThat's all there is to it!\n\n### A note for Linux/Wayland users\n\nWhen using Wayland, seemingly every time it's started the app will request \npermission to capture the screen. I get around this by running with \n`XDG_SESSION_TYPE=x11` set.\n\n\n## Building It\n\nSteps for generating your own build Before Dawn are listed in [the\nwiki](https://github.com/muffinista/before-dawn/wiki/Building-Before-Dawn)\n\n## Hacking It\n\nIf you would like to hack on Before Dawn, there's some instructions on the\n[Development page](https://github.com/muffinista/before-dawn/wiki/Development)\nin the wiki. It's pretty straightforward once you have a basic setup in place.\n\n\n## How to Write a Screensaver\n\nA Before Dawn screensaver is basically just a web page running in fullscreen\nmode. That said, there's a few twists to make it run as smoothly as possible.\nThere's a bunch of specific implementation details in [the\nwiki](https://github.com/muffinista/before-dawn/wiki/Writing-A-Screensaver).\n\nThere's also a very basic editor mode built into Before Dawn, which will\ngenerate some basic code for you to work from, and will make it easier to add\nsome configurable options to your work.\n\nThe editor has a simple preview, a form to describe the screensaver, and a\nsection where you can add custom options for your screensaver:\n\n![editor window](assets/editor.png \"Editor Window\")\n\n\n## Contributing\n\nContributions and suggestions are eagerly accepted. Please check out the [code\nof\nconduct](https://github.com/muffinista/before-dawn/blob/main/code_of_conduct.md)\nbefore contributing.\n\nIf you find a bug or have a suggestion, you can open an issue or a pull request\nhere.\n\nIf you would like to add a screensaver to the program, you can submit a PR to\nthe\n[before-dawn-screensavers](https://github.com/muffinista/before-dawn-screensavers)\nrepo.\n\nI will accept pretty much any pull request to the repository given that the\ncontent you are posting is legal and appropriate. If you need help or have a\nsuggestion, please feel free to open an issue here.\n\n\n## Copyright/License\n\nUnless otherwise stated, Copyright (c) 2024 [Colin\nMitchell](http://muffinlabs.com).\n\nBefore Dawn is is distributed under the MIT licence -- Please see LICENSE.txt\nfor further details.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuffinista%2Fbefore-dawn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuffinista%2Fbefore-dawn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuffinista%2Fbefore-dawn/lists"}