Comments (8)
Can try this out in the latest pre-release:
https://github.com/jtroo/kanata/releases/tag/v1.0.6-prerelease-2
from kanata.
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.
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.
Places to add code:
Line 760 in aea63a5
Line 770 in aea63a5
Should re-use most of this function but be able to change the config mode:
Line 806 in aea63a5
Should also edit cfg_samples/kanata.kbd to include examples of the new behaviours and document what they do.
from kanata.
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.
For naming, we could do something similar to the kmonad names since they seem reasonable:
tap-hold-next
isHoldOnOtherKeyPress
tap-hold-next-release
isPermissiveHold
Though to me, next
is a bit ambiguous for what it means. Maybe more clear might be:
tap-hold-press
isHoldOnOtherKeyPress
tap-hold-press-release
isPermissiveHold
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.
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.
No problems with it so far. Thank you!
from kanata.
Related Issues (20)
- Bug: Release 1.6.1 macos_x86_64 executable isn't what it says. HOT 6
- Feature request: Show keystroke or can let other app know the real key is stroked. HOT 2
- Feature request: Can we have a more flexible unmod? HOT 1
- See if windows shift workaround can be compiled out for winiov2 HOT 1
- Bug: kanata does not work properly with listary HOT 3
- `release-key` releases both sides of a mod and not just one, e.g. `lctl` and `rctl` or `lmet` and `rmet` HOT 7
- Feature request: Compile-time conditional mappings HOT 1
- chordsv2 activation does not trigger early interruption of `tap-hold-press|release` HOT 9
- make macro-release-cancel also cancel virtual keys HOT 1
- Bug: switch's layer logic not recognized HOT 2
- Feature request: remove dependency on AutohotKey for EnableUIAccess
- Feature request: configurable declared bus type for Linux uinput HOT 9
- unable to set linux-use-trackpoint-propety HOT 3
- one-shot shift interferes with defoverrides HOT 5
- Feature request: chord toggle action HOT 1
- Feature request: homebrew HOT 2
- Bug: special buttons on function row not working on macos HOT 2
- Bug: chord v2 overlapping chords HOT 2
- Bug: tray icons change randomly when layer changes by Meta key.
- Bug: S-home does not work as expected HOT 2
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 kanata.