Giter Club home page Giter Club logo

wallberrytheme's Introduction

WallberryTheme: A MagicMirror² Module

The WallberryTheme module re-themes MagicMirror² to look like a beautiful photo-box wall display. It adds a new font, styles, and periodically changing background image pulled from Unsplash.com.

The WallberryTheme also comes packaged with two companion modules for displaying the time (WB-clock) and weather (WB-weather).

REQUIRED API KEYS:

  • A (free) Unsplash API key is required and can be obtained from Unsplash.com.
  • For the weather module, a (free) DarkSky API key is required and can be obtained at DarkSky.net.

Screenshots

Now With More Options For Bright Images!

WallberryTheme has new options for dealing with light text on bright background images!

  • The addBackgroundFade option allows you to add soft gradient backgrounds to the top and bottom regions of your magic mirror, providing more contrast for the modules in those regions. These gradients use Unsplash's color data to automatically shift to the general color hue of the photo, so they blend better with the image.

  • The autoDimOn feature auto-detects bright images and automatically dims them, ensuring bright images don't wash out your text and dark images remain vibrant.

No background fade, auto dim set to off:

With addBackgroundFade and autoDimOn (on their default settings):

Using the module

To use this module and its companion modules:

  1. Copy the WallberryTheme folder to your MagicMirror/modules directory
  2. Add the modules to the modules array in the config/config.js file like in the following example:
modules: [
  // Base WallberryTheme adds new font, styles, and a rotating background image pulled from Unsplash.com
  {
    module: "WallberryTheme",
    position: "fullscreen_below", // Required Position
    config: {
      unsplashAccessKey: "Your Unsplash API Key", // REQUIRED
      collections: "2589108" // optional - leave empty for a random photo
    }
  },
  // WB-clock adds local time (Optional Module)
  {
    module: "WallberryTheme/WB-clock",
    position: "top_bar", // highly suggest using top_bar position
    config: {
      localCityName: "Seattle", // optional
      otherCities: [
      	{name: "DC", timezone: "US/Eastern"}, // optional
      	{name: "Anchorage", timezone: "US/Alaska"} // optional
      ]
    }
  },
  // WB-weather adds weather via DarkSky API (Optional Module)
  {
    module: "WallberryTheme/WB-weather",
    position: "bottom_bar",  // Highly suggested location
    config: {
      // See "Configuration options" for more information.
      darkSkyApiKey: "Your DarkSky API key", // REQUIRED
      latitude:   47.603230, // REQUIRED
      longitude: -122.330276 // REQUIRED
    }
  }
]

Configuration options

The following properties of WallberryTheme can be configured. For more information on how to configure the WB-clock and WB-weather modules see their individual README files.

Option Type Description
unsplashAccessKey String Your Unsplash API access key. Sign up for free at https://unsplash.com/developers. Demo accounts are allowed 50 API requests per hour.

This value is REQUIRED
collections String A comma-separated list of Unsplash collection IDs that photos should be pulled from. Collection IDs can be found in the URL of the collection, shown in the highlighted part of this screenshot:

Example: "1538150,162213"
Default value: "" (no collection, theme will use a random Unsplash photo)
queries Array A list of queries to search for on Unsplash. When multiple queries are specified, one gets randomly picked every refresh.

Example: ["cars", "new york", "black cat"]
Default value: []
updateInterval Number How often the photo should change (Milliseconds).

Default value: 300000 (5 minutes)
orientation String What screen orientation photos should be optimized for.

Possible values: "portrait", "landscape", or "squarish"
Default value: "portrait"
resizeForScreen Boolean Whether a photo should be resized to fit the screen.

Possible values: true (resize photo) or false (use photo at full dimensions)
Default value: true
backgroundOpacity Number Controls the darkness of the background photo.

Possible values: Any number from 0.0 (black screen) to 1 (fully bright image)
E.G.: 0.5 would be the background at half brightness
Default value: 1
brightImageOpacity Number Controls the darkness of bright photos (determined by autoDimOn). Only used when autoDimOn is true.

Possible values: Any number from 0.0 (black screen) to 1 (fully bright image)
Default value: 0.85
autoDimOn Boolean Automatically darkens bright photos to the value set by brightImageOpacity.

Possible values: true (on) or false (off)
Default value: true
addBackgroundFade Array Adds darker gradient backgrounds to the top bar region and/or bottom bar regions of MagicMirror (helps with readability for bright or busy background images).

Possible values: "top" will add a gradient background to the top bar region, "bottom" will add a gradient background to the bottom bar region. Set to an empty list to remove all gradients.
Default value: ["top", "bottom"]
clearCacheOnStart Boolean Clears Electron's cache on MagicMirror startup, preventing an issue where Electron would sometimes encounter a CORS error when trying to load a previously cached background image (see this issue here for details).

Possible values: true (on) or false (off)
Default value: true

Changelog

Visit the Changelog file to see the latest changes to the project :)

Attributions & Special Thanks

Contributing

Contributions of all kinds (pull requests, bug reports, feature suggestions, documentation, etc) are all welcome and encouraged. If you're enjoying the WallberryTheme and wanna make my day send me a pic or screenshot of your MagicMirror on the MM forums or on twitter, I love seeing people's set ups :)

Huge thanks to everyone who has contributed and made the WallberryTheme better!

Guidelines for Pull Requests

  • Pull Requests should be submitted to the dev branch
  • If there isn't one already, it's helpful to open an issue detailing the feature/bug your PR will address before you submit it.
  • Add a short description of your change to the Changelog file file under the [Unreleased] section.

wallberrytheme's People

Contributors

delightedcrow avatar samusaran avatar

Watchers

James Cloos avatar  avatar

Forkers

rudibarani

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.