#!/usr/bin/env python
import osxmmkeys
import subprocess
import time

commands = {
    'play_pause': '-u',
    'next_track': '-n',
    'prev_track': '-r'
}

class CmusKeys():
    def __init__(self):
        def cmusRemote(command, flag):
            def f():
                print(command)
                subprocess.call(['cmus-remote', flag])
                return False
            return f

        self.tap = osxmmkeys.Tap()
        for command, flag in commands.items():
            self.tap.on(command, cmusRemote(command, flag))

    def run(self):
        self.tap.start()
        try:
            while True: time.sleep(1)
        except (KeyboardInterrupt, SystemExit):
            self.tap.stop()

if __name__ == '__main__': CmusKeys().run()