Implement Mouse Chording

x64 Replacement/Alternative to Microsoft's IntelliMouse application.
Forum rules
Please read the forum rules before posting for the first time.
The more information you can provide, the quicker and more accurately someone can help.
NOTE: To reduce spam, new users can not post links or images until they have at least 4 posts.
User avatar
Kukurykus
Fanatic
Posts: 388
Joined: Sat Jul 02, 2016 1:15 pm

Re: Implement Mouse Chording

Post by Kukurykus »

IDEA 1:

Just theorically would be it possible to increase chords from 2 to 3? Some examples:

RMB with MB with 4thB, 5thB with RMB with Tilt left, MB with 4thB with LMB

Now with 2 buttons chords it works like I keep pressed one button and then click another one. If I won't click another one but release first then chord is not activated.

In case of 3 buttons achord there could be problem I have two solutions for.

FIRST solution:

Let say we have some action bound to:

- pressed and released 4thB
- pressed and kept 4thB then pressed and released RMB
- pressed and kept 4thB then pressed RMB and then pressed MB

In case of 3rd point you don't need actually release MB, because XMBC doesn't wait for signal of another button. So it is like now with 2 button accord the most.

SECOND solution:

Let say we have some action bound to:

- pressed and released 4thB
- pressed and kept 4thB then pressed and kept RMB for up to 500 ms *
- pressed and kept 4thB then pressed RMB and then during 500 ms pressed MB **

* it may be combained with FIRST solution. If you release RMB during 500 ms an action will be triggered for 2 buttons accord
** it doesn't have to be 500 ms, but any time individual user needs for a delay. So it could be adjusted from 0ms to any time higher ***
*** I think best would be to adjust it by additional option in the deepest chording menu where we could enter a value for this chords combination

Of course I'm aware that SECOND solution needs to realize another project, so great like chording so far. It had to involve a new function, a custom delay after pressing some button. Fortunately there is workaround what is given by FIRST solution in my opinion.

Now when we want to set a chord we have to choose from dropdown list a chording. If there would be 3rd chord, it needed to choose again chording from a level deeper dropdown list.

------------------------------------------------------------------------------------------------------------------------------

IDEA 2:

Would be it possible to reconfigure TILT by XMBC that we can use it as another initial chord button. Normal button works that when you press it, it sends single signal. Tilt works that it sends single input, but if you don't leave it then it send second CONSTANT signal, so a little like you would scroll a roll with no end or repeadetly click some other regular button with just few MS delay between.

I had one wrongly programmed mouse that tilt started working from phase 2 of above behaviour. So when I tilted a roll it didn't stop after first input (that I had chance to realease it in proper time), but was sending one long non-stop signal repeating action bound to. <-- these 2 sentences are some off-thought

Because of regular behaviour of tilt you couldn't make it as initial chord button, but maybe would be possible you somehow tried to make the second phase didn't started while the first, that short signal didn't break without untilting a roll. I guess it's easy to delay that first signal, but the question is can that signal be unbrekable, so worked as pressed button (not released even if you keep it pushed), that you may click any other to let work them as chords.

------------------------------------------------------------------------------------------------------------------------------

SOME MATHEMATICS:

Let's assume there is maximally 5 buttons mouse with 4 direction roll where each direction works as a button, that you can make each of them initial chord. If you have a mouse with 2 buttons, thanks to chording you gain 2 x 2 = 4 buttons. For example, only left, only right, right with left, and left with right. So increasing a mouse of every additional button up to 9 you get them: 3 x 3, 4 x 4, 5 x 5, 6 x 6, 7 x 7, 8 x 8 and 9 x 9, accordingly that would be:

2 buttons mouse gives 4 buttons
3 buttons mouse gives 9 buttons
4 buttons mouse gives 16 buttons
5 buttons mouse gives 25 buttons
6 buttons mouse gives 36 buttons
7 buttons mouse gives 49 buttons
8 buttons mouse gives 64 buttons
9 buttons mouse gives 81 buttons

Of course we can't use a tilt and scroll as intitial chord button. Actually SCROLL for sure, but if Phil is able to make it then what would be great a TILT not, it could be initial button after some reprogramming.
Anyway I focus on that we can have now, so max 5 buttons mouse recognized by Windows and 4 direction scroll. I just say a final number of all combination. It is 49 buttons (regular and chording) / with a tilt worked like I described even 75! So impressive that simple mouse when you know how to use it, with XMBC it's not only a mouse, and people who works like me but are not aware of this tool can't imagine even how much time and fun they lose. Take into consideration that each of those 49 buttons you can use not only with single command but longer commands of simulated keystrokes with different methods and 10 layers. So just for example as there are not maniacs to do so in fact, in each of 10 layers you can contain some language alphabet with some digits and characters relevant to this language.

It's funny that some brands don't make mouses with tilt, while others got only 1 - 3 models with, others did them in past in most models but with time reduced to just few or ZERO. I see only Logitech still make many mouses with tilt, even without 4th and 5th buttons, however many of their modern models like I noticed is useless to use with XMBC as are not recognized by windows or they are but some strange way. Okey so that's it about my ideas and thought. Phil it's now your turn to do it :D (in your limited time :oops: )
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD

User avatar
injtsvetkov
Fanatic
Posts: 293
Joined: Mon Jun 06, 2016 8:51 am

Re: Implement Mouse Chording

Post by injtsvetkov »

A while ago I was doing some tests with Layer Modifier keys and I noticed that you can't use mouse buttons as such. I don't know the reason, but if it is possible then you can get the same effect like triple chording.

Iliya
HAMA Mirano
Windows 8.1 x64, Intel i5-3230M @ 2.60GHz, 4GB

User avatar
Kukurykus
Fanatic
Posts: 388
Joined: Sat Jul 02, 2016 1:15 pm

Re: Implement Mouse Chording

Post by Kukurykus »

I never tried Layer Modifier till now. So if I understand you then if I set on Layer 1 some chords where I have also single keys bound to some actions and I want triple chords then I have to use Layer Modifier. But in my opinion if I'm imagining it well it would be waste of application layers (2-10). For example if I want a triple chord for RMB & MB & 4thB I have to set for ex. SHIFT to use Layer Modiefer activating for ex. Layer 2. But if I want other triple chord starting from the same button like RMB & MB & 5thB I have to set for ex. CTRL to use Layer Modifier for ex. Layer 3.

So I can have single buttons and chords on Layer 1, but if I want triple chords then I have to change that 3rd button to some Layer Modifier and bind to many certain application layers, not to mention that 3rd chord will be repleaced with Layer Modifier, so used as first of 3 another chords. If I had RMB & MB & 5thB then I have to keep for ex. SHIFT (as 5thB) - what activate for ex. layer 2 and then before I release it press RMB with MB.

Well I make it simpler:

Let's say I have set single actions and double chords on layer 1. Then I want triple chords, so I need replace every intital mouse button (left, right, middle, 4th, 5th) by for ex. shift, alt, ctrl, shift+alt, shift+ctrl. To achieve all combinations I have use 5 another layers (2 - 6) of application I want to use triple chords on. Yes it's possible to gain the same effect. Still I had 4 layers to use for something else. Unfortunatelly if I'll have another set of double chords on layer 7 then there leave only 3 free layers I could use for another triple layers releated to layer 7, while I needed 5 free layers in sum. Of course it's almost impossible there will be anyone using so many combinations of chords ever that he needed so many "virtual" keys. Anyway Triple chords where I don't need to press anything on keyboard would be much nicer and I could use some set of combination from only one application layer, while other kind of combination for the same appplication but still of other actions type keep on other layer(s). That would be easier for me to remember and use them all.


Phil, just an idea.

I notice there are modifiers like shift + ctrl / alt + ctrl / shift + alt / shift + ctrl + alt.

1) is it possible to combine SHIFT / CTRL / ALT with LWIN / RWIN / AppMenuKey ?
2) can be it added in the future that if we want to use for ex. LWIN from Layer Modifier then there will be option to block original keyboard input (the same like it's for mouse now in simulated keystrokes)?
3) we can press on mouse chords for ex. LMB & RMB as well as RMB & LMB what gives 2 different actions. Can be it the same with for ex. SHIFT & ALT that will give other result than ALT & SHIFT (in Layer Modifier)? So for ex. SHIFT & ALT will activate layer 2 if we set so, while ALT & SHIFT activate for ex. layer 3?
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD

User avatar
injtsvetkov
Fanatic
Posts: 293
Joined: Mon Jun 06, 2016 8:51 am

Re: Implement Mouse Chording

Post by injtsvetkov »

As I think of it now, if you use e.g. 4th button for Layer Modifier to activate Layer 2 in which you've got some chords, that means you won't be able to use the 4th button for chording at all. So it seems that idea is somewhat pointless :(
HAMA Mirano
Windows 8.1 x64, Intel i5-3230M @ 2.60GHz, 4GB

User avatar
phil
Site Admin
Posts: 6574
Joined: Sun Apr 06, 2003 11:12 pm

Re: Implement Mouse Chording

Post by phil »

Kukurykus wrote:Phil, just an idea.
I notice there are modifiers like shift + ctrl / alt + ctrl / shift + alt / shift + ctrl + alt.

1) is it possible to combine SHIFT / CTRL / ALT with LWIN / RWIN / AppMenuKey ?
2) can be it added in the future that if we want to use for ex. LWIN from Layer Modifier then there will be option to block original keyboard input (the same like it's for mouse now in simulated keystrokes)?
3) we can press on mouse chords for ex. LMB & RMB as well as RMB & LMB what gives 2 different actions. Can be it the same with for ex. SHIFT & ALT that will give other result than ALT & SHIFT (in Layer Modifier)? So for ex. SHIFT & ALT will activate layer 2 if we set so, while ALT & SHIFT activate for ex. layer 3?
1. Not possible - the Win key causes all sorts of trouble - it cant be blocked (see 2) so causes the start menu to appear.
2. No it cant - if its blocked, the start menu wont appear. The only possibility would be, like chording, to wait until it is released and only send the key if no other things happen - but with the keyboard this could be very dangerous/unreliable.
3. Possibly but not easy - significant change that I'm going to resist for now :)
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9, Logitech MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, Intel i5-9600k, Asus Z390-ROG, 16GB DDR4,
nVidia GeForce GTX 970, Evo 970 500Gb NVME, 2x2TB WD Black (RAID1)

Post Reply