Ticket #194 (closed enhancement: fixed)

Opened 3 years ago

Last modified 15 months ago

Enhanced input gesture mapping

Reported by: aleksey_s Owned by: jteh
Priority: major Milestone: 2011.1
Component: Core Version: development
Keywords: Cc:
Operating system: Blocked by: #601
Blocking: #810

Description

Currently it is uncomfortable to maintain more than one nvda .kbd files, becouse you need add all new written scripts to all .kbd files. thus with oficially distributed key maps it isn't so difficult, with maps which have one user it isn't possible. this must be rewoked somehow.
may be as follow:
in .kbd files pairs of settings must be no keystroke=script, but script=keystroke. so we have main kbd file (now it is desktop), and how many as one's need extending files. when loading new map, some script keystroke may be changed, and some not. ofcourse, main map file must be loaded first of all, and just it will have all assotiations, other may have redefine just some of them.

Change History

comment:1 follow-up: ↓ 2 Changed 3 years ago by jteh

I do acknowledge the problem here. However, this idea does not allow one script to be bound to multiple keys, which might be useful under certain circumstances.

Another option might be to provide a set of key bindings which are common to all keyboard layouts; i.e. a "common" keyboard layout. This would include keys such as NVDA+t, NVDA+f12, NVDA+upArrow, etc. which aren't likely to need to change in different layouts.

Out of interest, what is the use case for having different layouts here? There's obviously the laptop layout, but what other layouts are users creating?

comment:2 in reply to: ↑ 1 Changed 3 years ago by Bernd

Replying to jteh:

I do acknowledge the problem here. However, this idea does not allow one script to be bound to multiple keys, which might be useful under certain circumstances.

Another option might be to provide a set of key bindings which are common to all keyboard layouts; i.e. a "common" keyboard layout. This would include keys such as NVDA+t, NVDA+f12, NVDA+upArrow, etc. which aren't likely to need to change in different layouts.

Out of interest, what is the use case for having different layouts here? There's obviously the laptop layout, but what other layouts are users creating?

I think Users will maybe write different maps if they have a program with an key command they need often so they don't have to pass the next key command to the aplication.

comment:3 Changed 3 years ago by jteh

  • Milestone 0.6 deleted

comment:4 Changed 23 months ago by jteh

  • Status changed from new to assigned
  • Owner set to jteh

comment:5 Changed 23 months ago by jteh

  • Blocked by 601 added

comment:6 follow-up: ↓ 7 Changed 23 months ago by jteh

In the framework proposed in #601, all mappings will be included in a single map file. The syntax we think is best is rather Pythonic in nature and involves specifying the script only once with all of its input gestures. For example (note the indentation on the gesture lines):

dateTime:
 kb:common:NVDA+f12
 brl:baum:k2+k3+k4+k5
review_previousCharacter:
 kb:common:end
 kb:laptop:NVDA+m

Note that kb:common is common to both desktop and laptop layouts.
Does this satisfy your request?

comment:7 in reply to: ↑ 6 ; follow-up: ↓ 8 Changed 23 months ago by aleksey_s

Replying to jteh:

In the framework proposed in #601, all mappings will be included in a single map file. The syntax we think is best is rather Pythonic in nature and involves specifying the script only once with all of its input gestures.

Does it allow to have user customized mappings? e.g. where not all bindings are redefined but only a few of them.

Does this satisfy your request?

Certainly.

comment:8 in reply to: ↑ 7 Changed 23 months ago by jteh

Replying to aleksey_s:

Does it allow to have user customized mappings? e.g. where not all bindings are redefined but only a few of them.

Yes. There will be a single user map where users can define whatever gesture mappings they wish.

comment:9 Changed 16 months ago by jteh

  • Status changed from assigned to accepted
  • Summary changed from keystroke/script association must be improved somehow to Enhanced input gesture mapping
  • Type changed from task to enhancement
  • Milestone set to 2010.3

We've decided to go for a more ini-like format after all:

[package1.package2.class]
script = gesture1, gesture2, ...

comment:10 Changed 16 months ago by jteh

Branch:  http://bzr.nvaccess.org/nvda/gestureMapping/

App modules no longer have external key map files. Instead, gestures are bound in the app module. There will be locale and user external gesture maps to allow internal bindings to be overridden.

comment:11 Changed 15 months ago by jteh

  • Status changed from accepted to closed
  • Resolution set to fixed

Merged in changeset:main,3950.

Note: See TracTickets for help on using tickets.