dasl- / keymusix

10 stars 2 forks source link

jnativehook does not work with latest OSX updates #1

Open dasl- opened 9 years ago

dasl- commented 9 years ago

I get this error when trying to run keymusix. @pepijndevos maybe you could push the latest jnativehook jars to clojars and see if that helps? I'm not sure how to do that :)

~/keymusix2/keymusix $ lein run
--> Loading Overtone...
--> Booting internal SuperCollider server...
Found 0 LADSPA plugins
*** ERROR: open directory failed '/Users/dleibovic/Library/Application Support/SuperCollider/synthdefs'
Number of Devices: 3
   0 : "AirPlay"
   1 : "Built-in Microph"
   2 : "Built-in Output"

"Built-in Microph" Input Device
   Streams: 1
      0  channels 2

"Built-in Output" Output Device
   Streams: 1
      0  channels 2

SC_AudioDriver: sample rate = 44100.000000, driver's block size = 512
--> Connecting to internal SuperCollider server...
--> Connection established

    _____                 __
   / __  /_  _____  _____/ /_____  ____  ___
  / / / / | / / _ \/ ___/ __/ __ \/ __ \/ _ \
 / /_/ /| |/ /  __/ /  / /_/ /_/ / / / /  __/
 \____/ |___/\___/_/   \__/\____/_/ /_/\___/

   Collaborative Programmable Music. v0.8

Hello Dleibovic, just take a moment to pause and focus your creative powers...

Exception in thread "main" java.lang.RuntimeException: java.lang.ExceptionInInitializerError
    at clojure.lang.Util.runtimeException(Util.java:165)
    at clojure.lang.Compiler.eval(Compiler.java:6476)
    at clojure.lang.Compiler.eval(Compiler.java:6455)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.RT.loadResourceScript(RT.java:357)
    at clojure.lang.RT.loadResourceScript(RT.java:348)
    at clojure.lang.RT.load(RT.java:427)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$require.doInvoke(core.clj:5352)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval1.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6454)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$null_opt.invoke(main.clj:348)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:405)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
Caused by: java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:191)
    at keymusix.core$eval5$loading__4505__auto____6.invoke(core.clj:1)
    at keymusix.core$eval5.invoke(core.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    ... 32 more
Caused by: java.lang.NullPointerException
    at org.jnativehook.GlobalScreen.loadNativeLibrary(Unknown Source)
    at org.jnativehook.GlobalScreen.<init>(Unknown Source)
    at org.jnativehook.GlobalScreen.<clinit>(Unknown Source)
    ... 37 more
pepijndevos commented 9 years ago

Awww, the pain. JNativeHook is not my friend.

This is how to upload a JAR to Clojars: https://github.com/ato/clojars-web/wiki/POM

pepijndevos commented 9 years ago

Actually, go talk to @Sidnicious about his typing tool. He ported this code to Swift for his app that also does things with the keyboard backlight.

s4y commented 9 years ago

Ah, yeah! I've been meaning to wrap up Keyboard Party and release a binary.

Once decision I'd like to make is whether to make it an app that runs in your menu bar, or give it a preference pane and have no visible UI while running. @dasl-, would a native Mac app do the trick for you, and if so which UI is better?