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)
- Feature request: Compatibility with Chrome Remote Desktop HOT 3
- Feature request: Run a command like xset r rate at the start HOT 4
- Feature request: Delegate transparent keys to first or specified layer instead of defsrc HOT 3
- Kanata ignores the configuration. HOT 5
- Bug: LShift moves cursor down when using WSL NeoVim in WezTerm HOT 2
- Feature request: allow mouse buttons being hold until they trigger releases, not just tap HOT 2
- Unknown number in deflocalkeys-win: 223 HOT 2
- Feature request: a way to to send a key as a physical keypress, but only once using kanata wintercept HOT 3
- Kanata added to Scoop HOT 1
- Feature request: include kbd files inline HOT 6
- Bug: kanata crashes randomly when typing a sequence in the latest build HOT 5
- Bug: `tap-hold` (all variations) can unnecessarily repeat the previous key HOT 3
- Bug: Starting kanata resets the repeat-delay-rate to default, but `lrld` loads it properly HOT 13
- Bug: `--symlink-path` no longer points to device file HOT 2
- Bug: kanata silently ignores invalid boolean values in `defcfg`
- Bug: switching to change first row with symbols instead of numbers HOT 5
- How do I activate a layer for a set amount of time? HOT 3
- One-shot always times out (does not leave after key press) HOT 4
- Refactor proposal: move parser to a separate crate HOT 10
- It would be amazing to have a way to use literal characters, ignoring any modifiers 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.