yqrashawn / GokuRakuJoudo

config karabiner with ease
GNU General Public License v3.0
1.17k stars 120 forks source link

Crash with NullPointerException when attempting simultaneous key press config #174

Open Deadairx opened 2 years ago

Deadairx commented 2 years ago

2022-07-03 11 04 50

I'm trying to implement from simultaneous key in my config. Is there something I'm doing wrong?

       {:des "qkey Window Management commands"
        :rules [:window-mode
                [[:o :l] :!TOright_arrow]]}
Exception in thread "main" java.lang.NullPointerException
        at karabiner_configurator.data$from_k_QMARK_.invokeStatic(data.clj:116)
        at karabiner_configurator.data$from_k_QMARK_.invoke(data.clj:113)
        at karabiner_configurator.froms$parse_keycode_or_pkey_vec$fn__981.invoke(froms.clj:96)
        at clojure.core$mapv$fn__8535.invoke(core.clj:6979)
        at clojure.lang.PersistentVector.reduce(PersistentVector.java:343)
        at clojure.core$reduce.invokeStatic(core.clj:6885)
        at clojure.core$mapv.invokeStatic(core.clj:6970)
        at clojure.core$mapv.invoke(core.clj:6970)
        at karabiner_configurator.froms$parse_keycode_or_pkey_vec.invokeStatic(froms.clj:96)
        at karabiner_configurator.froms$parse_keycode_or_pkey_vec.invoke(froms.clj:93)
        at karabiner_configurator.froms$parse_sim.invokeStatic(froms.clj:123)
        at karabiner_configurator.froms$parse_sim.invoke(froms.clj:119)
        at karabiner_configurator.froms$parse_from.invokeStatic(froms.clj:142)
        at karabiner_configurator.froms$parse_from.invoke(froms.clj:137)
        at karabiner_configurator.rules$parse_rule.invokeStatic(rules.clj:246)
        at karabiner_configurator.rules$parse_rule.invoke(rules.clj:228)
        at karabiner_configurator.rules$generate_one_rules$iter__1325__1329$fn__1330$fn__1331.invoke(rules.clj:432)
        at karabiner_configurator.rules$generate_one_rules$iter__1325__1329$fn__1330.invoke(rules.clj:415)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$seq__5467.invoke(core.clj:139)
        at clojure.core$tree_seq$walk__6455$fn__6456.invoke(core.clj:4970)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.LazySeq.more(LazySeq.java:87)
        at clojure.lang.RT.more(RT.java:722)
        at clojure.core$rest__5453.invokeStatic(core.clj:73)
        at clojure.core$flatten.invokeStatic(core.clj:7204)
        at clojure.core$flatten.invoke(core.clj:7204)
        at karabiner_configurator.rules$generate_one_rules.invokeStatic(rules.clj:382)
        at karabiner_configurator.rules$generate_one_rules.invoke(rules.clj:376)
        at karabiner_configurator.rules$generate$fn__1362.invoke(rules.clj:445)
        at karabiner_configurator.rules$generate.invokeStatic(rules.clj:443)
        at karabiner_configurator.rules$generate.invoke(rules.clj:435)
        at karabiner_configurator.rules$parse_mains.invokeStatic(rules.clj:471)
        at karabiner_configurator.rules$parse_mains.invoke(rules.clj:465)
        at karabiner_configurator.core$parse_edn.invokeStatic(core.clj:93)
        at karabiner_configurator.core$parse_edn.invoke(core.clj:73)
        at karabiner_configurator.core$parse.invokeStatic(core.clj:150)
        at karabiner_configurator.core$parse.doInvoke(core.clj:142)
        at clojure.lang.RestFn.invoke(RestFn.java:439)
        at karabiner_configurator.core$_main.invokeStatic(core.clj:239)
        at karabiner_configurator.core$_main.doInvoke(core.clj:234)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at karabiner_configurator.core.main(Unknown Source)
yqrashawn commented 2 years ago

This error is caused by using simultaneous keys in layer. It's not supported by the layer syntax right now. You can still archive that by adding multiple rules to manipulate the variable (something like https://github.com/yqrashawn/yqdotfiles/blob/62ce77f1e3f5949d5a5ab714a2086daa85ae64e9/modules/yqrashawn/home-manager/dotfiles/karabiner.edn#L175)