-
-
Save hawkrives/3c0a3d2ad6bf90c74a6dfb17f41bfba2 to your computer and use it in GitHub Desktop.
Act upon media keys in a Mac under OSX
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import subprocess | |
# PyObjC-related imports | |
from AppKit import NSApplication, NSSystemDefined, NSApplicationActivationPolicyProhibited | |
from PyObjCTools import AppHelper | |
KEY_UP = 11 | |
class KeySocketApp(NSApplication): | |
repeated = False | |
def sendEvent_(self, event): | |
if event.type() is NSSystemDefined and event.subtype() is 8: | |
data = event.data1() | |
keyCode = (data & 0xFFFF0000) >> 16 | |
keyFlags = (data & 0x0000FFFF) | |
keyState = (keyFlags & 0xFF00) >> 8 | |
keyRepeat = keyFlags & 0x1 | |
if keyRepeat and keyState is not KEY_UP: | |
if keyCode == 20: | |
self.repeated = True | |
print "prev" | |
subprocess.call(['cmus-remote', '-k', '-10']) | |
elif keyCode == 19: | |
self.repeated = True | |
print "forward" | |
subprocess.call(['cmus-remote', '-k', '+10']) | |
if keyState is KEY_UP: | |
if self.repeated: | |
self.repeated = False | |
elif keyCode == 20: | |
print "PREV" | |
subprocess.call(['cmus-remote', '-r']) | |
elif keyCode == 16: | |
print "PLAY" | |
subprocess.call(['cmus-remote', '-u']) | |
elif keyCode == 19: | |
print "FORWARD" | |
subprocess.call(['cmus-remote', '-n']) | |
if __name__ == '__main__': | |
app = KeySocketApp.sharedApplication() | |
app.setActivationPolicy_(NSApplicationActivationPolicyProhibited) | |
AppHelper.runEventLoop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A Big Candy Casino is themed around candy and offers a sweet selection of games here , including slots and table games. The platform is known for its vibrant design and engaging gameplay, providing players with a fun and enjoyable gaming experience. Regular promotions and bonuses add to the appeal, making it a popular choice for players looking for a lighthearted and rewarding gaming environment.