• Stars
    star
    178
  • Rank 214,989 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A desktop screensaver app using web technologies

Before Dawn

Before Dawn is a an open-source, cross-platform screensaver application using web-based technologies. You can generate screensavers with it using HTML/CSS, javascript, canvas, and any tools that rely on those technologies. In theory, generating a Before Dawn screensaver is as simple as writing an HTML page.

The project developed out of a personal project to explore the history of early screensavers. I decided that I wanted to write a framework that I could use to actually run screensavers on my computer. I wanted it to be cross-platform and easily accessible to artists and developers.

Before Dawn is definitely a bit of a experiment -- to actually use it, you need to run it as a separate application on your computer and disable whatever screensaver you have running in your OS, but it is fun and definitely works.

The core of the app is built on Electron, a system that allows you to build desktop applications that run on node.js and are rendered via Chrome.

There's about a dozen screensavers right now, with more on the way. Here's the Flying Emoji screensaver:

flying emoji

You can get a quick preview of the other screensavers via this preview page.

The first time you open the application, the preferences window will open. You can preview and pick screensavers there:

preferences window

There's an 'Advanced Settings' section where you can specify certain options for how the application should run.

settings window

Downloads

Installers are available from the releases page.

Status

Right now the application itself is pretty stable. This repo includes the main code for running the actual screensaver, a simple app for picking your screensaver and setting some options, and a bunch of modules to pull it all together.

The actual code for the screensavers is in a separate repo. If you want to write a screensaver, please add it to the project via a PR!

Running It

The easiest way to use the tool is to install it to your computer. You can grab an installer from the releases page. Binaries are available for OSX and Windows, and there's an experimental release for Ubuntu/Debian.

Once it's running, there will be a sunrise icon in your system tray, with a few different options. If you click 'Preferences,' you can preview the different screensavers, set how much idle time is required before the screensaver starts to run, specify custom paths, etc.

Once you've set all of that up, Before Dawn will happily run in the background, and when it detects that you have been idle, it will engage your screensaver. That's all there is to it!

Building It

Steps for generating your own build Before Dawn are listed in the wiki

Hacking It

If you would like to hack on Before Dawn, there's some instructions on the Development page in the wiki. It's pretty straightforward once you have a basic setup in place.

How to Write a Screensaver

A Before Dawn screensaver is basically just a web page running in fullscreen mode. That said, there's a few twists to make it run as smoothly as possible. There's a bunch of specific implementation details in the wiki.

There's also a very basic editor mode built into Before Dawn, which will generate some basic code for you to work from, and will make it easier to add some configurable options to your work.

The editor has a simple preview, a form to describe the screensaver, and a section where you can add custom options for your screensaver:

editor window

Contributing

Contributions and suggestions are eagerly accepted. Please check out the code of conduct before contributing.

If you find a bug or have a suggestion, you can open an issue or a pull request here.

If you would like to add a screensaver to the program, you can submit a PR to the before-dawn-screensavers repo.

I will accept pretty much any pull request to the repository given that the content you are posting is legal and appropriate. If you need help or have a suggestion, please feel free to open an issue here.

Copyright/License

Unless otherwise stated, Copyright (c) 2022 Colin Mitchell.

Before Dawn is is distributed under the MIT licence -- Please see LICENSE.txt for further details.

More Repositories

1

chatterbot

A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate.
Ruby
493
star
2

namey

Random name generator based on US Census data
Ruby
80
star
3

gopher2000

Gopher2000 - world domination via old school protocols
Ruby
72
star
4

really-simple-history-api

A Really Simple History API that pulls data from wikipedia to do a 'this day in history' type thing
Ruby
51
star
5

wayback_exe

code for twitter bot @wayback_exe
JavaScript
46
star
6

gophper-proxy

A PHP/JS-based proxy for gopher servers
PHP
30
star
7

botgle

A Twitter bot that runs boggle games
Ruby
15
star
8

history_parse

Parse wikipedia's today in history data into JSON files
Ruby
11
star
9

rust-rss-to-fedi

Rust
9
star
10

kaleid_o_bot

code for kaleid_o_bot, a twitter bot
Java
8
star
11

gopherpedia.com

gopher server for gopherpedia.com, an interface to wikipedia
Ruby
8
star
12

before-dawn-screensavers

screensaver collection for Before Dawn
JavaScript
6
star
13

twitter-rss-digest

Sinatra app to generate RSS feed for twitter stream
Ruby
5
star
14

detect-fullscreen

A node module to detect if the local computer has a fullscreen window open
Objective-C++
4
star
15

yulelogbot

Code for the twitter bot @yulelogbot, and a web version as well
JavaScript
4
star
16

snowfall_exe

code for twitter bot @snowfall_exe which adds falling snow to images
Ruby
3
star
17

eliza

mastodon bot version of eliza
Ruby
3
star
18

hide-cursor

Hide the cursor in node.js
C++
3
star
19

spacejam

Ruby gem to check on the status of a website
Ruby
3
star
20

audio-sweetener

Code for the mastodon bot https://botsin.space/@audiosweetener
Ruby
3
star
21

HulkDonaldTrump

code for the twitter bot @HulkDonaldTrump
Ruby
3
star
22

Five-Pawns

Flash game on a 5x5 chessboard
ActionScript
2
star
23

chrome-tw

Mask tweets that contain particular phrases with option to view on demand
JavaScript
2
star
24

twitter-archive-generator

Code to maintain an archive of a Twitter account's tweets
JavaScript
2
star
25

palm-pitch

The game of Pitch for the PalmOS. Pretty much dead at this point, open-sourcing per the request of several people
2
star
26

prison_scrape

Scripts to scrape and normalize data from insideprison.com
Ruby
1
star
27

cat_in_field

code for the twitter bot @cat_in_field
Ruby
1
star
28

PedanticMagick

Ruby
1
star
29

drillify_exe

code for twitter bot @drillify_exe
JavaScript
1
star
30

goto-sleep

Put the screen to sleep
JavaScript
1
star
31

lists_of_lists

code for the twitter bot @lists_of_lists
Ruby
1
star
32

dotfiles

Files with a dot at the beginning
Emacs Lisp
1
star
33

ushouldframeit

Slack Bot
JavaScript
1
star
34

indyday

Twitter Bot that delivers the speech from Independence Day
Ruby
1
star
35

EarthRoverBot

Code for the twitter bot @EarthRoverBot 🚙
Ruby
1
star
36

RTsFromSpace

code for the twitter bot @RTsFromSpace
Ruby
1
star
37

NaNoGenMo2015

NaNoGenMo2015
Ruby
1
star
38

head_2_keyboard

code for the twitter bot @head_2_keyboard
Ruby
1
star
39

herbarium

mastodon bot that toot's images from Emily Dickinson's Herbarium
HTML
1
star
40

history.muffinlabs.com

HTML
1
star
41

wowwwburn

Ruby
1
star
42

happened_today

code for twitter bot @happened_today
Ruby
1
star
43

montaguepaperorplastic

PHP
1
star