Giter Club home page Giter Club logo

Comments (8)

jtroo avatar jtroo commented on July 21, 2024 1

Can try this out in the latest pre-release:
https://github.com/jtroo/kanata/releases/tag/v1.0.6-prerelease-2

from kanata.

oblitzitate avatar oblitzitate commented on July 21, 2024

Any progress on this?

When combined with a timeout, these are basically tap-hold-next and tap-hold-next-release in kmonad and I feel like they are superior to the usual tap-hold because they rely less on timing, making it far better for fast typers.

tap-hold-next is better for keys you would press either in isolation or as a modifier (e.g. Caps key -> ctrl/esc) and tap-hold-next-release is better for keys for writing where you also want something like home row mods (e.g. asdf also as ctrl shift alt super)

from kanata.

jtroo avatar jtroo commented on July 21, 2024

I haven't had anyone request it yet and I have no need for it myself which is why it hasn't been added.

It's marked as a good first issue in case someone wanted to add it themselves; it's not too complicated. If you'd like to try your hand at it, I can point you to the places in the code that might make sense to do the changes.

Otherwise if you'd like this functionality and don't have the knowledge/time to implement it, I can add it probably on the weekend.

from kanata.

jtroo avatar jtroo commented on July 21, 2024

Places to add code:

"tap-hold" => parse_tap_hold(&ac[1..], parsed_state),

"Unknown action type: {}. Valid types:\n\tlayer-switch\n\tlayer-toggle\n\ttap-hold\n\tmulti\n\tmacro\n\tunicode\n\tone-shot\n\ttap-dance\n\trelease-key\n\trelease-layer\n\tcmd",


Should re-use most of this function but be able to change the config mode:

fn parse_tap_hold(


Should also edit cfg_samples/kanata.kbd to include examples of the new behaviours and document what they do.

from kanata.

br-lemes avatar br-lemes commented on July 21, 2024

I prefer PermissiveHold. I changed my version to use it always. I was planing to implement that, but was in doubt what could I name it: tap-hold-permissive seems long but ok. But tap-hold-otherkeypress seems ugly.

from kanata.

jtroo avatar jtroo commented on July 21, 2024

For naming, we could do something similar to the kmonad names since they seem reasonable:

  • tap-hold-next is HoldOnOtherKeyPress
  • tap-hold-next-release is PermissiveHold

Though to me, next is a bit ambiguous for what it means. Maybe more clear might be:

  • tap-hold-press is HoldOnOtherKeyPress
  • tap-hold-press-release is PermissiveHold

I'm not too attached to any particular name though. Other good ones can also be fine. More important is that the behaviour of these variations is well documented.

from kanata.

oblitzitate avatar oblitzitate commented on July 21, 2024

Yeah, tap-hold-press seems fine.

You could probably shorten tap-hold-press-release to just tap-hold-release since the press part is implied (and unimportant) when using release.

from kanata.

oblitzitate avatar oblitzitate commented on July 21, 2024

No problems with it so far. Thank you!

from kanata.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.