node package manager

google-music-electron

google-music-electron Build status

Desktop app for Google Music on top of Electron

Features:

  • Google Music as a standalone application
  • Tray for quick play/pause/quit and tooltip with information
  • Media key shortcuts
  • MPRIS integration (for GNU/Linux desktop environments)

Screenshot

This was written as a successsor to google-music-webkit. When upgrading between versions of nw.js, there were regressions with taskbar and shortcut bindings. We wrote this as an alternative.

Requirements

Getting Started

google-music-electron can be installed globally via npm:

# Install google-music-electron via npm
npm install -g google-music-electron
 
# Run google-music-electron
google-music-electron

When the application has launched, it will appear in your taskbar and via a tray icon, tray icon.

Screenshot

Newsletter

Interested in hearing about updates and new releases of google-music-electron?

Subscribe to our newsletter!

MPRIS integration

If you are on GNU/Linux and your desktop environment supports MPRIS, you can install our MPRIS integration via:

google-music-electron install-mpris
# Once this succeeds, MRPIS will be integrated on `google-music-electron` restart

MPRIS screenshot

Updating

google-music-electron can be updated via npm:

# Update google-music-electron to a newer version via npm
npm update -g google-music-electron
# Alternatively, the following can be used as well to specify a version
# npm install -g google-music-electron@latest

Documentation

CLI

We have a few CLI options available for you:

  Usage: google-music-electron [options] [command]
 
 
  Commands:
 
    install-mpris   Install integration with MPRIS (Linux only)
 
  Options:
 
    -h, --help                  output usage information
    -V, --version               output the version number
    -S, --skip-taskbar          Skip showing the application in the taskbar
    --minimize-to-tray          Hide window to tray instead of minimizing
    --hide-via-tray             Hide window to tray instead of minimizing (only for tray icon)
    --allow-multiple-instances  Allow multiple instances of `google-music-electron` to run
    --verbose                   Display verbose log output in stdout
    --debug-repl                Starts a `replify` server as `google-music-electron` for debugging

Development

Running locally

To get a local development copy running, you will need:

  • npm, usually installed with node. Same npm that is used during installation
  • git, version control tool

Follow the steps below to get a development copy set up:

# Clone our repository
git clone https://github.com/twolfson/google-music-electron.git
cd google-music-electron/
 
# Install our dependencies and dev dependencies
npm install
 
# Start up `google-music-electron`
npm start

After running the above steps, a copy of google-music-electron should begin running.

Screenshot

Adding local setup as a global installation

After getting our local development set up, we can go one step further and get google-music-electron working on our CLI as if it were installed via npm install -g.

# Link local copy as a global copy
# WARNING: Make sure that `npm install` has been run before this point
#   or your local copy's permissions may get messed up
npm link
 
# Run `google-music-electron` for local copy
google-music-electron

More information on npm link can be found in npm's documentation:

https://docs.npmjs.com/cli/link

Icons

Source images are kept in the resources/ folder. Icons are maintained via Inkscape and the play/pause buttons are isolated in layers.

To generate icons:

  1. Export each of the play/pause/clean variants as a .svg file
  2. Load the icons via GIMP as a 32x32 SVG
  3. Export via GIMP as a .png

At the time of writing, Inkscape and Image Magick seemed to be generating non-transparent backgrounds upon converting SVG to PNG.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via npm run lint and test via npm test.

Donating

Support this project and others by twolfson via gratipay.

Support via Gratipay

Attribution

Headphones designed by Jake Dunham from the Noun Project

Unlicense

As of May 16 2015, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.