Comments (9)
There's no functionality to convert json config to edn one. You may need to convert them yourself. I converted my 3000 line json config to edn config within 1 hour when I finished goku. You can ask for help in the telegram group.
Or you can write a small program to watch for karabiner.json and insert your json rule after it changes.
from gokurakujoudo.
So it took like 4 hours, but I managed to copy all my most used rules to the goku syntax. I'm pretty happy because editing the json was seriously depressing.
Can you please help me with the things I couldn't figure out on my own?
- [solved]
- I'm trying to press enter when 'e' is held, but press regular 'e' when it's tapped, I just can't get it to work, this is what I tried and it produces an 'e' when I'm holding the key. I have many key holding rules I haven't done because I can't figure out this one.
{:des "long e -> enter" :rules [[:e {:key :e :repeat false} nil {:held :return_or_enter}]]}
also tried this, but it has the same problem, printing both symbols:
[:open_bracket {:key :open_bracket :repeat false } nil { :held [:!S9] :halt true :repeat false }]
-
[solved] How to set the timeout for a
delayed
action? I have this and it's resetting too quickly, I want the variable to stay alive for 500ms. EDIT: I found it, it'sdelay
. -
Is it possible to set the timeouts in the edn? I couldn't find how to do it, the more layers I create the more letters I lose while typing. I tried using
simlayers
but it gave up too quickly on the second key, so I'm usinglayers
and constantly losing letters while typing :( -
I copied from your dotfile the double cmd+q handling,
!C#Pq
- what does the P stand for? I couldn't find it in the docs. (also your dotfile has a typo I think - "commandq" instead of "command-q") -
In the old karabiner I used multi-key sequences, don't even know how to call it, using
KEYTOKEY_DELAYED_ACTION
which allows to assign not just simple char+K or char+B but also char+K+K. I'm guessing it's possible? With multiple variables or something?
Thanks!
from gokurakujoudo.
2 I don't know if karabiner-elements support this feature, I tried several methods. Seems you need to combine :held and :alone and adjust those milliseconds. (place to setup rule specific milliseconds)
4 you can set universal sim key press threshold with karabiner gui. I'll update goku soon so that it can support rule specific sim threshold.
5 P is caps_lock (code)
6 Maybe it can be called "key chord". But "key chord" means sim key in emacs. You can achieve it by to_delayed_action
, check here and here.
from gokurakujoudo.
2. about holding, after your comment, I gave it another try and finally found a combination that sort of works, but it takes forever (maybe 1000ms) for the hold to register, can you please give an example of how to set the timeout? I tried some things and none seem to affect it
This is what worked for me (note the arg in the end, is that where I'm supposed to pass the threshold values? I'm not experienced with clojure):
{:des "hold keys" :rules [
[:open_bracket nil nil { :alone :open_bracket :held {:key :!S9 :repeat false :halt true }}, { :alone 50 :held 50 }]
[:close_bracket nil nil { :alone :close_bracket :held {:key :!S0 :repeat false :halt true }}, { :alone 50 :held 50 }]
]}
4. Rule specific thresholds would be awesome - I'm currently trying out simlayers
for letters and layers
for "edge" symbols, like comma, tab, quote, etc. It's still not perfect and I would love to be able to finetune that.
5. Got chord to work! but I have to put these two lines with :b
in separate sections, otherwise it doesn't work, is that normal?
{:des "slash mode", :rules [:slash-mode
; when these are together, they don't work
[:b [:hs "app?name=firefox"] ["b_pressed" 1]]
[:b nil ["b_pressed" 0] {:delayed {:invoked [[:hs "app?name=chrome"] ["b_pressed" 0]] :canceled ["b_pressed" 0]} :alone ["b_pressed" 1]}]
]}
:layers {
:slash-mode {:key :slash}
}
from gokurakujoudo.
2
{:des "hold keys"
:rules [[:open_bracket nil nil {:alone :open_bracket :held {:key :!S9 :repeat false :halt true} :params {:alone 50 :held 50}}]
[:close_bracket nil nil {:alone :close_bracket :held {:key :!S0 :repeat false :halt true} :params {:alone 50 :held 50}}]]}
4 I'll update it as soon as I fix #17
5
{:des "slash mode",
:rules
; when these are together, they don't work
[:slash-mode
[:b [:hs "app?name=firefox"] ["b_pressed" 1]]
[:b nil ["b_pressed" 0] {:delayed {:invoked [[:hs "app?name=chrome"] ["b_pressed" 0]] :canceled ["b_pressed" 0]} :alone ["b_pressed" 1]}]]}
These two rules have different conditions. They have to be separated into to multiple rules.
from gokurakujoudo.
2
Yay, I put the :params in the wrong place initially, but after I looked closer and moved one curly brace, holding is finally almost perfect! Thank you so much, I'm so happy to have all my brackets on the same key finally.
Now the only problem left with holding is letters, because letters are usually typed fast and no matter which number I put in :alone
it swallows the letter, this is what I tried:
[:e nil nil { :alone :e :held {:key :return_or_enter :repeat false :halt true } :params { :held 200 :alone 50 }}]
I'm trying to remap 'e' to enter when held. But with this rule, when I type 'power' it comes out as 'powr' unless I wait a while aftr hitting th lettr 'e'.
I opened this issue in KE, do you think it's a bug or just a matter of plugging in the right number?
Any idea why 2 timeouts are needed in KE while old karabiner only needed one ThresholdMillisecond::RawValue::200
for holding?
from gokurakujoudo.
There's something different between karabiner and karabiner-element. Old karabiner won't swallow "alone" keys.
I believe that's some system level changes introduced into macos by apple in 10.12. It might be one of the reasons why old karabiner don't work in 10.12 and makes tekezo write the new karabiner-element.
from gokurakujoudo.
By the way, why you are setting helding e to enter. Held is way more slow than just press entre imho.
from gokurakujoudo.
By the way, why you are setting helding e to enter. Held is way more slow than just press entre imho.
I don't use it while typing, more while navigating webpages, when I only use my left hand I can do quite a lot from my left side of the keyboard, besides pressing enter, for which I do not have a good mapping on the left side. Enter is needed when I have something focused after a search or after tabbing between fields for example and I don't want reach with my right hand.
I'm going to think of a nice simultaneous pair I think, maybe [:e :f]
Thanks for all your help!
from gokurakujoudo.
Related Issues (20)
- Typo in tutorial "Command a to Control 1" example: missing ":rules" and "[]" HOT 1
- Broken links in tutorial: from and to section
- zsh: bad CPU type in executable: goku HOT 1
- setrlimit to increase file descriptor limit failed, errno 22
- [Feature Request] Leader Key to have much more shortcuts near homerow
- Allow a..z ranges in similar rules
- Hold l for hyphen HOT 1
- Send key_up immediately
- ## not working with custom tos: {}
- How to overwrite goku.log file each time goku command executes?
- Force up_key events to occur after the modifier has been pressed?
- Yabai - function with arguments HOT 2
- How can I add multiple key presses after running a shell script?
- Perf issue caused by sim rule
- device specific rules and misc issues HOT 1
- Using `pointer_button` as a `from` causes `NullPointerException`
- I want to say that...
- Generating `karabiner.json` from scratch?
- Goku not working HOT 2
- Working in conjunction with tap danced keys
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gokurakujoudo.