Just bought this laptop Asus x302l about 3 weeks ago. After a week, I found out that it ([S]is[/S]) was impossible to do middle mouse button. There is no such an option for middle mouse button in ASUS Smart Gesture, or I should call ASUS not-so-Smart Gesture. In this entry, I will call it “Asus gesture”.
Tried everything I could find on the internet, also hit the support team of ASUS as well, none came with success. I was so disappointed, and still do. So, do I have carry an extra mouse on the go like forever?
Alright, screw ASUS, I do it my way. Btw, I doubt ASUS wrote the driver for this touchpad. My best guess: this touchpad is a OEM product of ELAN Microelectric Corp, which provide driver also. Hence, ASUS could not fix this thing or didn’t bother to fix this thing and let us suffer.
Since what Asus gesture does is capture the mouse gesture and send the appropriate keypress to windows, I might be able to intercept these keypresses.
So, plan A: find the process that send these keypress and crack that file, maybe simple search and replace using some hex editor or make it extreme by disassembler, find the code that send the keypress, change it and compile it back will fix it neatly. But after a few days, I gave up on finding a way to identify the original process that send these keypress, it is just impossible, and Asus uses like 3-4 different processes just to capture the touchpad gesture and then generate keypress. What the hell did you do that for Asus?
OK, plan B. If it sends Winkey + S to system, I may be able to catch those messages (keypresses) and send the middle mouse click instead (WM_MBUTTONDOWN). And I was right, it works. Set up a low level global keyboard hook, monitor Winkey and ‘S’, sort out some states of keypresses and then send WM_MBUTTONDOWN at the right circumstance, about 404 lines of code (v0.1b). That’s it.
No need to carry an extra mouse on the go anymore.
Download:
mMouse v0.1b - Basic function: three finger tap for middle mouse click.
[attach=download/mMouse.rar]mMouse.rar[/attach] - program only (2015/10/6)
[attach=download/mmouse_src_0.1b.rar]mmouse_src_0.1b.rar[/attach] - source code. (2015/10/6)
mMouse v0.2d - add three finger swipe fix -> backward / forward. Fix bug with button Alt from v0.2a, fix bug with other gesture like 3 finger swipe up/down and 4 finger gesture.
[attach=download/mMouse0.2d.rar]mMouse0.2d.rar[/attach] - program only (2016/2/29)
[attach=download/mmouse_src_0.2d.rar]mmouse_src_0.2d.rar[/attach] - source code. (2016/2/29)
How to install:
- Copy mMouse.exe or create shortcut of mMouse.exe to %AppData%/Microsoft/Windows/Start Menu/Programs/Startup
- Then restart or just simply run it. It will show a small icon in the system tray which looks alike the Asus gesture’s icon.
Note:
- You have to remove version 0.1b from start up list
- Run both v0.1 and v0.2 will likely produce very weird bugs
[update 2016/04/26]
Asus has updated their software to 4.0.12 and let user choose Microsoft gesture or Asus gesture which basically replace three fingers swipe left/right with browser back/next. But still, no sight of middle mouse button on this update.
[tag]ASUS Smart Gesture middle mouse fix windows 10[/tag]
Saturday, October 10, 2015 at 12:47:27
Man, thanks for very useful small app! It’s very big problem with new versions of Asus Smart Gesture app. In more older versions I make middle button click work correctly through registry editor by simple editing 2 key parameters. But in new versions this parameters didn’t work - app completly different.
I have some suggestion for making this app better if you don’t mind :)
For me personally more preferred middle click by 2(two) fingers tap. So, it will be great to add some settings menu where user will be able to choose middle click options - by 2 fingers ore by 3. If choosed 2finger - than by 3finger tap can be invoke context menu and conversely - when coose middle click by 3 fingers - context menu can be start from 2 fingers tap
Thanks and best regards!
Dmitry
at 15:36:36
Unfortunately, it is impossible to intercept two-finger tap because what my app does is capture the super fast combination keypress generated by Asus not-really-smart gesture, like three-finger tap -> LWin-S or four-finger tap -> LWin-D… It is really fast, no delay between LWin and S at all. In other hand, human keypressed should have shortest delay about 60ms (like 1/50 of one second). So, what my app does is monitor ‘LWin’ key and ‘S’ key and count the time between this 2 keypresses to deter it is human keypressed or machine keypressed.
For two fingers tap -> mouse 2 click, it is one key only. There is no way to know for sure it is human keypressed or machine keypressed. Thus, it is impossible to *intercept* this gesture
There will be exeption: if and only if the company makes this touchpad provides some APIs or framework or SDK or some documents like Synaptic. But it likely never happen :D
Friday, October 16, 2015 at 19:04:00
Let’s hope Synaptic to release a better driver ASAP. In the meanwhile, I’m using your very useful peace of code. Thank you very much!
Friday, October 23, 2015 at 03:34:19
Was looking for a solution for long time, you made my day
Thank you!!!!!!!!!!!!! :D
at 21:16:05
Thank you for this app! Its a must on any asus computer.
I would love to implement three finger flick (three finger swipe right or left) to swap between virtual desktops. Ive tried doing it with autohotkey scripting with out any success.
Is this a task that would not be to hard to implement in your already existing program?
Thanks again for a great program.
Saturday, October 24, 2015 at 01:41:21
Didn’t you know four-finger swipe (left / right) will switch between virtual desktop? You must have more than 1 virtual desktop anyway.
WIN + CTRL + LEFT/RIGHT: Switch to previous or next desktop
WIN + CTRL + D: Create a new desktop
WIN + CTRL + F4: Close the current desktop
WIN + TAB: Launch task view
For your question, yes it is possible to do it. Is that nessesary to waste three-finger gesture for that when you have four-finger gesture for that already?
I have plan for three-finger swipe (left / right) for back / next function like the buttons on a premium mouse. But I am kinda busy with another project and with my life right now.
Anyway, you are more than welcomed to improve my little app
at 16:57:46
This is embarrassing.
I did not know that and it is of course not worth wasting three finger gesture when the same gesture with four finger exist.
Back / next functionality sounds useful.
Thank you for a great app.
Fredrik Adolfsson
Monday, November 9, 2015 at 19:41:41
Thank you very much for this fix. I spent three days searching for solution.
Monday, November 16, 2015 at 19:31:47
Doesn’t work on my computer… :(
Ran it with administrators rights after Smart Gesture is launched, but three-finger tap won’t do anything with your programm :
Any help ?
at 19:32:43
Actually, it works, but not in Microsoft Edge !
at 20:56:41
Because Microsoft tends to screw with people!!!!
J/k :D
———–
Edit:
Fixed :)
Monday, November 30, 2015 at 02:26:17
Thank you kind Sir. It’s working fine (a little irresponsive sometimes) on my Asus X552LDV so far. Being using the old driver but windows update keep bothering me to update and didn’t let me install the new W10 update without install first the new-sucking-smart-gesture. Bless you!
at 08:11:33
There is an irritating bug in version 0.2a that makes left Alt key *stuck* after pressing it. Still working on it.
Friday, December 18, 2015 at 01:36:54
Hi, I love your work. It’s so simple yet effective. I have been using this (v0.1b) for the past couple of months, but it appears to have stopped working after the most recent windows update. Any fixes or workarounds?
at 20:56:21
Check again if [COLOR=#ff0000]Asus not-that-Smart gesture[/COLOR] is still running. Sometime, [COLOR=#ff0000]Asus not-that-Smart gesture[/COLOR] auto updates itself and thus auto exit for update, but it won’t auto start after successul update until windows restarted.
I’m running v0.2a, buggy with Alt button, and it still works fine after major windows 10 update today.
Theorically mMouse should work if there isn’t major change in [COLOR=#ff0000]Asus not-that-Smart gesture[/COLOR] for windows 10. Even if there is a kernel update of windows 10, mMouse still works fine as long as the combo keypresses Winkey-S are not changed.
Tuesday, December 22, 2015 at 23:42:01
Thank you so much amazing!
Friday, December 25, 2015 at 15:50:24
Thanks! Works great with DaVinci Resolve, which requires a middle click for one of its most important functions.
I haven’t been able to get it to work with Black Magic Fusion, which uses middle clicking to scroll around oversized screen views. But there are other ways to do that, if necessary.
Saturday, January 9, 2016 at 07:14:00
Hey, is there any option to make it works in Windows 8? I spent a lot of time searching for solution of this problem and you’re my last chance :)
Sunday, January 10, 2016 at 23:01:23
Windows 8 sucks. Upgrade to windows 10 man. M$ offers upgrade for free!
Tuesday, January 12, 2016 at 05:41:46
Unfortunately had to remove my mMouse today. I spent the weekend working with excel and I was going crazy with something: every time I used the alt key (like alt+enter), the alt seemed to be ’stuck’ as in active. This made me go nuts, I couldn’t properly used the keyboard. After trying everything I noticed it was the mMouse. Don’t ask me why, just some incompatible with the new OS upgrades, cause I think it was working with no issues before. =(
Wednesday, January 13, 2016 at 15:30:22
Hey,
This works so well! Thanks a ton!
I’m wondering if there would be an easy way to make this work for 2 finger tap rather than 3. I’m looking at the source code but I’m not sure if I can make out how to change it from 3 to 2 finger tap.
Any help would be great!
Thanks a ton
at 23:32:31
@Diogo: Actually, it is known bug of version 0.2a which I still can’t fix it. But as long as you don’t use ALT much, it should be OK. Version 0.1b doesn’t use ALT button and so it works fine with ALT but without the Next - Previous function anyway.
@Taylor Reiner: you simply can’t, my tool intercepts the message send by Asus not-that-Smart gesture which is WIN-S and ALT-TAB + RIGHT/LEFT, not the the raw touch data from the driver to the handling app which is also a part of the driver but in different process. If you can intercept that raw data and handling that raw data, you can pretty much do anything you want or like, such as create new gestures double two / three / four finger tap and make it do what ever you want it to do.
Thursday, January 28, 2016 at 08:15:44
Amazing fix! :) Thanks for your work. Greetings from Hungary!
Sunday, February 28, 2016 at 23:47:08
Thank you SOOOOOO much ! :-)
Monday, February 29, 2016 at 19:13:10
Hi man,
Im loosing the ability to change virtual desktop with for finger swipe if i use 0.2b, just wanted to let you know.
at 20:35:02
ah, I see.
Fixed with v0.2c :D
Wednesday, March 2, 2016 at 19:31:08
Nice, i will start test it right away.
Another bug ive found is that i cant toggle off “Backward / Forward” in the menu. Id dose not matter if i press “Backward / Forward” or “Middle mouse fix” both of them toggles “Middle mouse fix”.
Cheers!
Thursday, March 17, 2016 at 09:49:23
Hey Ceez!
1) This fix is fantastic, it took me a while to find your blog but I am eternally grateful.
2) I was just going to bring my laptop in to RMA tomorrow because I was experiencing the sticking alt key issue and assumed it was a keyboard hardware fault….but as I was uninstalling the start up programs, I noticed the comments! I just installed the update and it seems to be gone. LIFESAVER.
3) THANKS AGAIN MAN.
Sunday, March 27, 2016 at 06:37:11
So great, thanks a lots!
Middle click is so needed in graphical tools. How had it been suppressed like this on such asus working notebooks..
I hope you can make asus change his mind for adding the middle button (either your 3 fingers way, or dedicating touchpad “middle bottom” to middle click)
Saturday, April 9, 2016 at 07:40:30
Can’t get it to work :(
Asus ROG G752VY … Win 10
Installed as directed … I see the icon in the system tray …
3 finger still does what it always did … no middle buttom emulation :(
at 14:54:25
You need to install Asus not-that-smart gesture and enable 3-4 fingers gesture like this screenshot
http://ceezblog.info/images/blog/asus-smart-gesture-ss.png
Anyway, if Asus not-that-smart gesture looks different from this screenshot it might not work
Friday, May 6, 2016 at 13:29:52
workkk!!!!! owww my!!!!!!!!!
Tuesday, May 17, 2016 at 15:53:23
My solution is much simpler and native but I’ve tested it on win8 and win 8.1 only.
Open regedit and find HKEY_CURRENT_USERSoftwareElantechSmartPad (win8)
and additionaly for win 8.1 HKEY_CURRENT_USERSoftwareElantechGroupOptionSmartPad .
Then set Tap_Two_Finger key with 2 - which means middle button in both branches.
Reboot pc. Works like a charm
at 19:14:54
Depends on which touchpad you got, it might work or not. I tried all sort of registry hack like that, but not success.
Asus uses a wide range of touchpad for their laptop. Even with the same laptop model, it might have different touchpad comes from different company. Despite that, they still want to make it unify in software. They copy the way you use touchpad on Macbook.
They solved this problem by packing a bunch of drivers from different companies, making a process to communicate with these drivers and a nother process to do the gesture things. Then they put them all together and promote it as [COLOR=#ff0000]Asus [S]smart[/S] gesture[/COLOR].
Anyway, if that simple registry hack works for you, then good for you! All of this wouldn’t happen if they used synaptics touchpad intead of a cheaper product from a Taiwanese company like Alantech touchpad.
Sunday, June 19, 2016 at 13:36:24
worked!!!
at 23:38:37
Nice, I’ve been struggling to create autohotkey scripts to get some way to use the middle click, but this 3 fingers thing is a lot better. Thanks!
Tuesday, July 5, 2016 at 05:11:34
I use it on my new PC and AC works (ASUS K501UX). Perfect !!!
Thank you very much.
Saturday, July 9, 2016 at 23:42:06
Hi,
I modified the software, like this:
- 2 tap fingers ==> middle click
- 3 tap fingers ==> right click
- 3 swipe up ==> open file Explorer
- and always : 3 fingers swipe left / right ==> Backward / Forward
This is the configuration that I had on my old ASUS laptop
if you desire, you can add it to your blog
source and exe : htt p://dl .free. fr/ f1YXQIGxr
edit by ceez: follow the above link with caution.
Monday, July 11, 2016 at 01:57:46
What are you talking about?
You pretty much cannot modify anything with my mmouse, especially 2 fingers tap.
Anyway, I tried to download the file to see what is it, but failed to do so.
Tuesday, July 12, 2016 at 02:42:18
Hi,
Asus “smart” gesture detects 2 fingers tap and simulates a right click (machine right clic)
I used the same technique that you to detect a 2 fingers tap (install hook but for mouse: SetWindowsHookEx (WH_MOUSE_LL, …)).
I used your timeout () function to differentiate human right click or right click Machine.
And I send Middle click
Viewing the source code for details
https://github.com/Cyrillev91/mMouse
Friday, July 15, 2016 at 10:09:59
Doing that will also affect to usb mouse if you may use.
Saturday, July 16, 2016 at 19:41:10
I just tested, it is ok with an usb mouse.
at 20:13:06
Saw what you’ve done! Great job!
To all: Since Asus now allows us to use three finger swipe left/right as back/forward, 3 finger swipe fix is not necessary anymore. I wonder when will they allow us to do middle mouse button? Next year or next 2 years? LOL
Saturday, July 30, 2016 at 23:22:51
legend
Saturday, August 13, 2016 at 11:11:53
This is amazing!
Thank you for creating this. Works on my UX305LA.
Wednesday, September 28, 2016 at 03:15:17
Many thanks Ceez!
Wednesday, October 19, 2016 at 09:03:22
Thanks so much!!!! Not having this function on my x556 was making me crazy <3
Monday, November 7, 2016 at 08:46:43
It works, thank you
Friday, November 25, 2016 at 18:28:04
Great job! Thank you!