Ah thank you, I was holding down one finger and tapping with the other. I think thats how it worked on a macbook - haven't used one in awhile though.yak wrote:Hmm. It works for me. You just shortly tap with two fingers.ranova wrote:Just noticed in the intro of your script:
How do you do that? Or is it not working at the moment?
You may want to increase the tap settings at the top of the script. Maybe they're too strict for you.
Take a look at our
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message
two-finger scrolling on T43 under XP?
Hmm. I used Mac's only occasionally so I didn't know how it's done there. But this is indeed a good idea because tapping with two fingers at the same time is a bit harder.ranova wrote:Ah thank you, I was holding down one finger and tapping with the other. I think thats how it worked on a macbook - haven't used one in awhile though.
What do you think?
EDIT:
Thinking about it, it could be done like this: you hold down one finger and tap with the other. This would simulate a push (with no release) of the right button. The release would be simulated when the remaining finger is lifted up. This would allow dragging with right button. On the other hand it would be odd with popup menus because they would show up only when both fingers were removed.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
I think the current method is fine - yes, it would be too odd for the menu to popup only after you released both fingers.yak wrote:Hmm. I used Mac's only occasionally so I didn't know how it's done there. But this is indeed a good idea because tapping with two fingers at the same time is a bit harder.ranova wrote:Ah thank you, I was holding down one finger and tapping with the other. I think thats how it worked on a macbook - haven't used one in awhile though.
What do you think?
EDIT:
Thinking about it, it could be done like this: you hold down one finger and tap with the other. This would simulate a push (with no release) of the right button. The release would be simulated when the remaining finger is lifted up. This would allow dragging with right button. On the other hand it would be odd with popup menus because they would show up only when both fingers were removed.
Another update. The tap will now work in both ways:
- tapping with two fingers
- holding one and tapping with another (new)
Other minor improvements added too. For example the driver reports some unreal movement deltas sometimes, especially upon touching. The new version ignores them.
The link once again:
TwoFingerScroll.pyw
Notice that the new way of tapping prevents from accidental left button taps and lets you easily handle popup menus. Point with one finger, tap with another to bring up the popup menu, without lifting the first finger move to an option and tap with another finger again to select. Well, there usually won't be enough place on the TouchPad for this but still
- tapping with two fingers
- holding one and tapping with another (new)
Other minor improvements added too. For example the driver reports some unreal movement deltas sometimes, especially upon touching. The new version ignores them.
The link once again:
TwoFingerScroll.pyw
Notice that the new way of tapping prevents from accidental left button taps and lets you easily handle popup menus. Point with one finger, tap with another to bring up the popup menu, without lifting the first finger move to an option and tap with another finger again to select. Well, there usually won't be enough place on the TouchPad for this but still
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
-
- Freshman Member
- Posts: 118
- Joined: Fri Oct 20, 2006 11:08 pm
- Location: Cumberland, Rhode Island
Anyone know how to automate selection of the Synaptics control widgets in setup.py? I'm trying to make TwoWheelScrolling and ChiralScrolling executables.
I thought this would do it, but it didn't:
I got that ID by running makepy.py -i and selecting the Synaptics control widget.
Additionally, I tried inserting this into the TwoFingerScrolling.py file itself:
Still no-go on workable .exe creation. The latter option would also eliminate the need to select the Synaptics widgets even when just running the py scripts as-is, I believe.
I thought this would do it, but it didn't:
Code: Select all
"typelibs": [('{82D70786-7968-46EA-836D-203AEBCA4481}', 0, 1, 0)]
Additionally, I tried inserting this into the TwoFingerScrolling.py file itself:
Code: Select all
from win32com.client import gencache
gencache.EnsureModule('{82D70786-7968-46EA-836D-203AEBCA4481}', 0, 1, 0)
IBM ThinkPad T60p 2623-DDU | Intel Core Duo 2.0 GHz T2500 | 2 GB RAM | 256 MB ATI FireGL V5200 | 100 GB 7200 RPM SATA HDD | 15" UXGA BOE-Hydis (1600x1200) | NMB Keyboard | 9 Cell Battery x2
Ive tried messing around with pyinstaller1.3 and had no luck, it gave some compiling errors and when you run it, it doesnt seem to do anything. Like Yak said earlier, it will probably be rewritten in C++ when he gets the chance.
I know people hate having more applications run, but if you want the script to automatically execute after waking from sleep, use this program:
http://www.desimonesystems.com/suspendtrigger/index.php
and set it to run the script on resume.
Seems to use about 5-6 megs of memory.
You can also create a task event:
Edit:
You should use the vbs script I created below this post to automatically terminate all pythonw.exe processes (each takes around 10 megs of memory) and relaunch the script for you, otherwise you may end up with a lot of pythonw.exe processes each time you load up the script manually
I know people hate having more applications run, but if you want the script to automatically execute after waking from sleep, use this program:
http://www.desimonesystems.com/suspendtrigger/index.php
and set it to run the script on resume.
Seems to use about 5-6 megs of memory.
You can also create a task event:
I used a system information event [resuming from sleep] as my trigger. Here's how -
1. Open task sheduler [press windows key, type task, click on task scheduler at the top of the menu list]
2. In Actions [menu or right pane] click 'new task'
3. In General tab, give your task a name
4. In Trigger tab, click 'new'
5. Choose 'on an event' in the top drop-down list.
6. Choose 'custom' radio button
7. Click on the 'new event filter' button that now appears.
8. For event level, choose 'information'
9. In 'event logs' drop-down menu, choose windows logs > system. Put a tick next to 'system' only
10. Click on the text 'All event ID's' [the text will clear] and insert 1
11. Click ok
12. In the 'Actions' tab, choose the program you want to start by clicking 'new'
13. In the 'new action' window, use the browse button to navigate to the .exe of the program you want to run. If you have a shortcut on your desktop for the program, you can simply choose that and scheduler will extract the path from the shortcut.
Edit:
You should use the vbs script I created below this post to automatically terminate all pythonw.exe processes (each takes around 10 megs of memory) and relaunch the script for you, otherwise you may end up with a lot of pythonw.exe processes each time you load up the script manually
Last edited by ranova on Sun Oct 12, 2008 11:38 pm, edited 3 times in total.
I quickly created a VB script that terminates all processes of pythonw.exe and relaunches twofingerscroll script
Paste in notepad and save as whatever.vbs
You can edit this to your needs to launch a different script (or program) - it is recommended you use this script each time you launch the script since each time you open up a python script it opens another process. You can use this with Hibernate Trigger to automatically terminate pythonw.exe and relaunch the script upon waking up from sleep.
Hopefully someone will be able to code this all into one single file to run once during a system startup soon
Paste in notepad and save as whatever.vbs
Code: Select all
' Python Process Kill
'
' Usage:
' * Edit the path to your python script near the end of the script
' * Developed and tested with Python 2.5 in Windows Vista
' * Quick and dirty way to kill all python processes and relaunch python script
Option Explicit
Dim objWMIService, objProcess, colProcess, WshShell
Dim strComputer, strProcessKill
strComputer = "."
strProcessKill = "'pythonw.exe'"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Python25\TwoFingerScroll.pyw"
Wscript.Quit
Wscript.Quit
You can edit this to your needs to launch a different script (or program) - it is recommended you use this script each time you launch the script since each time you open up a python script it opens another process. You can use this with Hibernate Trigger to automatically terminate pythonw.exe and relaunch the script upon waking up from sleep.
Hopefully someone will be able to code this all into one single file to run once during a system startup soon
I've started writing the C++ implementation. I successfully got the Synaptics API working and I was able to fix the wakeup problem. Stay tuned.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
Ok, here it goes:
TwoFingerScroll.exe
Just save the exe wherever you want and start it. An icon should appear in the tray and scrolling should start working. Double click the icon to bring up the settings dialog where you may want to make the tool start with the windows or enable the tapping.
Let me know how it works for you.
TwoFingerScroll.exe
Just save the exe wherever you want and start it. An icon should appear in the tray and scrolling should start working. Double click the icon to bring up the settings dialog where you may want to make the tool start with the windows or enable the tapping.
Let me know how it works for you.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
Haven't tested the code yet but yes, it checks for multiple fingers support and tries to enable it if possible.
In such case you will get a message asking you to reboot (clicking 'OK' should restart the system).
EDIT
File updated to v1.0.1.
New:
* fixed a performance bug when the Active checkitem in popup menu was disabled and reenabled,
* minor gesture improvement: if edgemotion is enabled and you start the scroll in the edge area, the edgemotion isn't triggered unless you move the fingers away from the edge and move them back.
I think I'll move this project to Google Code so I can easily maintain updates and source code.
In such case you will get a message asking you to reboot (clicking 'OK' should restart the system).
EDIT
File updated to v1.0.1.
New:
* fixed a performance bug when the Active checkitem in popup menu was disabled and reenabled,
* minor gesture improvement: if edgemotion is enabled and you start the scroll in the edge area, the edgemotion isn't triggered unless you move the fingers away from the edge and move them back.
I think I'll move this project to Google Code so I can easily maintain updates and source code.
Last edited by yak on Tue Oct 14, 2008 12:15 pm, edited 1 time in total.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
I don't think that will help. Seems like some problem with Synaptics drivers, are you sure he has them properly installed?
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
Dell... yuck!
But anyway, it would be good to know the minimal version of the driver and the TouchPad firmware. The latter one can be seen in mouse properties, unfortunately not in Lenovo drivers.
Could someone test it on a T4x?
The things this tool absolutely requires are:
- Synaptics TouchPad,
- Synaptics drivers (what's important is the SynCOM.dll, installed and registered).
I'm testing it on a T60 from my sig, with latest drivers from Lenovo (v11 series).
@renova
If nothing helps about the classid problem, he may want to try this command, assuming the Synaptics driver files are in place:
I have an old Dell Latitude D800 here and it has an Apls TouchPad, not Synaptics.
But anyway, it would be good to know the minimal version of the driver and the TouchPad firmware. The latter one can be seen in mouse properties, unfortunately not in Lenovo drivers.
Could someone test it on a T4x?
The things this tool absolutely requires are:
- Synaptics TouchPad,
- Synaptics drivers (what's important is the SynCOM.dll, installed and registered).
I'm testing it on a T60 from my sig, with latest drivers from Lenovo (v11 series).
@renova
If nothing helps about the classid problem, he may want to try this command, assuming the Synaptics driver files are in place:
Code: Select all
regsvr32 %systemroot%\system32\syncom.dll
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
The project has now its home at Google Code:
http://code.google.com/p/two-finger-scroll/
The direct exe link posted before no longer works. Go to Downloads on the project page to get TwoFingerScroll.
The source code can be found in SVN, published under the Apache 2.0 license. You will need CodeGear C++Builder to compile it.
http://code.google.com/p/two-finger-scroll/
The direct exe link posted before no longer works. Go to Downloads on the project page to get TwoFingerScroll.
The source code can be found in SVN, published under the Apache 2.0 license. You will need CodeGear C++Builder to compile it.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
hey yak,
I had a few concerns after using it for 3 hours in class.
First is battery life: My battery life went down considerably. Normally I could use my laptop for around 3 hours in class without charging. My battery died in 2 hours 15 minutes after having the exe run the full time. Not sure how much strain this causes when scrolling and if thats even fixable. Ill try again for my 3 hour class tomorrow. I see that the cpu usage goes higher then regular scrolling.
I've also noticed that with the exe and the old script, it accesses the hard disk a lot. I used AnVir Task Manager and twofingerscroll.exe (or pythonw.exe if you use the script) always is about 7-10kb/s accessing the hard drive.
Second is smoothness. I have the hacked asus drivers installed, so chiralrotate and side scrolling is still enabled. I notice a huge difference in scrolling between side scroll\chiralrotate and the double finger scrolling. With the sidescroll or chiralrotate, the scrolling on screen is very smooth. With double finger, its noticably jumpy and not smooth at all. Is this just a variable that can be changed or is that how it works?
Thanks again
I had a few concerns after using it for 3 hours in class.
First is battery life: My battery life went down considerably. Normally I could use my laptop for around 3 hours in class without charging. My battery died in 2 hours 15 minutes after having the exe run the full time. Not sure how much strain this causes when scrolling and if thats even fixable. Ill try again for my 3 hour class tomorrow. I see that the cpu usage goes higher then regular scrolling.
I've also noticed that with the exe and the old script, it accesses the hard disk a lot. I used AnVir Task Manager and twofingerscroll.exe (or pythonw.exe if you use the script) always is about 7-10kb/s accessing the hard drive.
Second is smoothness. I have the hacked asus drivers installed, so chiralrotate and side scrolling is still enabled. I notice a huge difference in scrolling between side scroll\chiralrotate and the double finger scrolling. With the sidescroll or chiralrotate, the scrolling on screen is very smooth. With double finger, its noticably jumpy and not smooth at all. Is this just a variable that can be changed or is that how it works?
Thanks again
I have worked on battery too, yesterday, and didn't notice any change in battery life. I'll do some more tests too.
I'm not sure if this is harddisk but there's definitely some I/O going on. It is caused by the API so it's out of my control. The SynTPEnh.exe task seems to behave the same. Also, the SynMood.exe demo tool from the Synaptics folder does this. It would therefore seems to be normal.
I have to agree about smoothness. One of the causes is the scroll amount cumulation code proposed by Zender. Since the scrolling is done by simulation a mouse wheel, this code ensures that the applications only receive the whole "clicks" of the wheel. This was added because some apps don't handle partial "clicks" properly (as I recall, OneNote was one of them). However, this also made the scroll jumpy in applications that do things properly (like Firefox).
I'm currently looking for a good solution that would give us a more smooth scroll while retaining compatibility.
Added:
I have an idea to make the scroll smooth by default and if the Shift+Ctrl is pressed while scrolling, it would switch to a jumpy one on an application basis. So you would have to do it once in OneNote and then it would just work.
I'm not sure if this is harddisk but there's definitely some I/O going on. It is caused by the API so it's out of my control. The SynTPEnh.exe task seems to behave the same. Also, the SynMood.exe demo tool from the Synaptics folder does this. It would therefore seems to be normal.
I have to agree about smoothness. One of the causes is the scroll amount cumulation code proposed by Zender. Since the scrolling is done by simulation a mouse wheel, this code ensures that the applications only receive the whole "clicks" of the wheel. This was added because some apps don't handle partial "clicks" properly (as I recall, OneNote was one of them). However, this also made the scroll jumpy in applications that do things properly (like Firefox).
I'm currently looking for a good solution that would give us a more smooth scroll while retaining compatibility.
Added:
I have an idea to make the scroll smooth by default and if the Shift+Ctrl is pressed while scrolling, it would switch to a jumpy one on an application basis. So you would have to do it once in OneNote and then it would just work.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
hmm that is a good idea. Also, how about that option and an option for "compatibility mode" which would turn on that method described. Turning it off would result in regular scrolling.yak wrote:I have worked on battery too, yesterday, and didn't notice any change in battery life. I'll do some more tests too.
I'm not sure if this is harddisk but there's definitely some I/O going on. It is caused by the API so it's out of my control. The SynTPEnh.exe task seems to behave the same. Also, the SynMood.exe demo tool from the Synaptics folder does this. It would therefore seems to be normal.
I have to agree about smoothness. One of the causes is the scroll amount cumulation code proposed by Zender. Since the scrolling is done by simulation a mouse wheel, this code ensures that the applications only receive the whole "clicks" of the wheel. This was added because some apps don't handle partial "clicks" properly (as I recall, OneNote was one of them). However, this also made the scroll jumpy in applications that do things properly (like Firefox).
I'm currently looking for a good solution that would give us a more smooth scroll while retaining compatibility.
Added:
I have an idea to make the scroll smooth by default and if the Shift+Ctrl is pressed while scrolling, it would switch to a jumpy one on an application basis. So you would have to do it once in OneNote and then it would just work.
Try the v1.0.2
http://code.google.com/p/two-finger-scr ... loads/list
I've added a Scroll Mode setting where you can choose between compatible mode, smooth mode and a smart mode. The last one chooses smooth by default but lets you use Ctrl+Shift+Alt+Scroll to switch to compatible (and back) per application.
By default the compatible mode is set (v1.0.1 behavior).
You may also have to set the acceleration again (if you've changed it) since the registry value name changed.
I really like how the smooth mode works in IE. In Firefox (without any extensions) it's almost the same as compatible mode when the number of lines per mouse wheel tick is set to 1 in Mouse control panel.
http://code.google.com/p/two-finger-scr ... loads/list
I've added a Scroll Mode setting where you can choose between compatible mode, smooth mode and a smart mode. The last one chooses smooth by default but lets you use Ctrl+Shift+Alt+Scroll to switch to compatible (and back) per application.
By default the compatible mode is set (v1.0.1 behavior).
You may also have to set the acceleration again (if you've changed it) since the registry value name changed.
I really like how the smooth mode works in IE. In Firefox (without any extensions) it's almost the same as compatible mode when the number of lines per mouse wheel tick is set to 1 in Mouse control panel.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
Do you think it will be possible to implement the tweaks that "Yet another smooth mouse" addon for firefox does to the standalone exe so it works in every program?yak wrote:Try the v1.0.2
http://code.google.com/p/two-finger-scr ... loads/list
I've added a Scroll Mode setting where you can choose between compatible mode, smooth mode and a smart mode. The last one chooses smooth by default but lets you use Ctrl+Shift+Alt+Scroll to switch to compatible (and back) per application.
By default the compatible mode is set (v1.0.1 behavior).
You may also have to set the acceleration again (if you've changed it) since the registry value name changed.
I really like how the smooth mode works in IE. In Firefox (without any extensions) it's almost the same as compatible mode when the number of lines per mouse wheel tick is set to 1 in Mouse control panel.
Thanks Ill give 1.02 a try
edit: gave it a test for my class tonight - it seems like battery is pretty normal. Although I didnt notice any difference between compatibility mode or smooth mode in FF or other programs. I can see the diff with the two in onenote 2007 (smooth is very jumpy, needs to be on compat mode)
-
- Junior Member
- Posts: 315
- Joined: Sun Mar 18, 2007 8:34 pm
- Location: Prague, Czech Republic
- Contact:
Hello there
I have to admit the application is quite nice. Seems to work a little better than the Python script, this time there's a difference between smooth and compatible mode in Firefox, unfortunately still the zooming works bad with smooth.
Nevertheless, I'd like to say that it happened to me not once that my finger reached edge of touchpad, "edgemotion" activated and when I was half way through the page, the scrolling direction reversed (at full speed). I guess I just moved the fingers a little, but still in the edge area. Could you please force edges to scroll only in the direction in which the edge is from center?
Second I miss the option to set tap_max_distance, because the two-finger click does often scroll instead.
Though I might eventually not be lazy and fix it myself. Thanks for all your effort, yak
I have to admit the application is quite nice. Seems to work a little better than the Python script, this time there's a difference between smooth and compatible mode in Firefox, unfortunately still the zooming works bad with smooth.
Nevertheless, I'd like to say that it happened to me not once that my finger reached edge of touchpad, "edgemotion" activated and when I was half way through the page, the scrolling direction reversed (at full speed). I guess I just moved the fingers a little, but still in the edge area. Could you please force edges to scroll only in the direction in which the edge is from center?
Second I miss the option to set tap_max_distance, because the two-finger click does often scroll instead.
Though I might eventually not be lazy and fix it myself. Thanks for all your effort, yak
Last edited by Zender on Mon Oct 20, 2008 8:08 pm, edited 1 time in total.
T60 14" SXGA+ 9c T5600 3GB X1400 4965AGN MC8780 IR BT FPR DVDRW Alps XPP
@renova
Adding something like the smoothing extension of firefox globally would be tricky at least.
Try the difference between smooth and compatible in IE7 for example, you surely can see a difference there.
@Zender
Thanks.
I'll try to improve "edge motion".
What value did you use in the script for tap_max_distance?
Added:
My latest idea about the scrolling is that maybe instead of reinventing the wheel with all those smooth and compatible modes I should try to reuse the vertical (and horizontal!) edge scrolling of the Synaptics driver. The API has this nice function to send the data to the driver as if they were generated by the actual TouchPad. It would be therefore theoretically possible to translate two finger scrolling into edge scrolling, of course with our own acceleration algorithm and stuff (I find the acceleration of edge scrolling too aggressive). I'll do some Python testing.
Added:
Or maybe not. The edge scrolling isn't smooth anyway.
Adding something like the smoothing extension of firefox globally would be tricky at least.
Try the difference between smooth and compatible in IE7 for example, you surely can see a difference there.
@Zender
Thanks.
I'll try to improve "edge motion".
What value did you use in the script for tap_max_distance?
Added:
My latest idea about the scrolling is that maybe instead of reinventing the wheel with all those smooth and compatible modes I should try to reuse the vertical (and horizontal!) edge scrolling of the Synaptics driver. The API has this nice function to send the data to the driver as if they were generated by the actual TouchPad. It would be therefore theoretically possible to translate two finger scrolling into edge scrolling, of course with our own acceleration algorithm and stuff (I find the acceleration of edge scrolling too aggressive). I'll do some Python testing.
Added:
Or maybe not. The edge scrolling isn't smooth anyway.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
1.0.3 update.
Small fixes plus a new setting:
* Tap max finger distance
Download:
http://code.google.com/p/two-finger-scr ... loads/list
Small fixes plus a new setting:
* Tap max finger distance
Download:
http://code.google.com/p/two-finger-scr ... loads/list
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
Inspiron 9400 support?
Hey this is great work i'm glad i stumbed across this thread.
I was wondering if it is possible to get this working on my Dell Inspiron 9400 I see that it has worked on another dell system already.
Maybe I'm missing a step? I've installed the latest 10.1.8 version of synaptics generic vista driver. And i get the message that my touch pad doesn't support multiple fingers-- I think i have seen it work on Linux though.
Thanks again for your hard work
I was wondering if it is possible to get this working on my Dell Inspiron 9400 I see that it has worked on another dell system already.
Maybe I'm missing a step? I've installed the latest 10.1.8 version of synaptics generic vista driver. And i get the message that my touch pad doesn't support multiple fingers-- I think i have seen it work on Linux though.
Thanks again for your hard work
Welcome to the ThinkPads forum. I hope you have a ThinkPad too or plan to get one soon
But on to your problem...
After you installed the drivers and started the TwoFingerScroll utility, you should get a message saying that multiple fingers support has been enabled in the driver and that a system restart is required for the change to take effect.
I've just checked and there is a bug in the current version. Even if you click "Yes" which should restart the system, it won't - you have to restart manually.
If you won't and start TwoFingerScroll again, it will notice that the support has been enabled but the driver still refuses to report multiple fingers (because it wasn't restarted). So, it will complain that the TouchPad doesn't support multiple fingers.
If that's the case, try restarting the system and try again.
If it still doesn't work, try installing the modded driver from this page (uninstall previous drivers first):
http://www.laptopvideo2go.com/forum/ind ... 17890&st=0
This driver has the multiple finger support enabled by default. It has also some nice features enabled like 2- and 3-finger swiping gestures. Go to the TouchPad preferences to enable them and see if they work. If they do not, I can't help you.
But on to your problem...
After you installed the drivers and started the TwoFingerScroll utility, you should get a message saying that multiple fingers support has been enabled in the driver and that a system restart is required for the change to take effect.
I've just checked and there is a bug in the current version. Even if you click "Yes" which should restart the system, it won't - you have to restart manually.
If you won't and start TwoFingerScroll again, it will notice that the support has been enabled but the driver still refuses to report multiple fingers (because it wasn't restarted). So, it will complain that the TouchPad doesn't support multiple fingers.
If that's the case, try restarting the system and try again.
If it still doesn't work, try installing the modded driver from this page (uninstall previous drivers first):
http://www.laptopvideo2go.com/forum/ind ... 17890&st=0
This driver has the multiple finger support enabled by default. It has also some nice features enabled like 2- and 3-finger swiping gestures. Go to the TouchPad preferences to enable them and see if they work. If they do not, I can't help you.
ThinkPad™ X201 / AFFS-120
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
i5-560M 2.67Ghz, 8GB RAM, Samsung 840 Pro 256GB SSD, Win 8 Pro 64-bit, UltraBase X200, ThinkPad Compact USB Keyboard,
Dell U2713HM (2560x1440, IPS), ExpressCard USB 3.0 (2 ports, flush), Nexus 7+10
-
- Junior Member
- Posts: 315
- Joined: Sun Mar 18, 2007 8:34 pm
- Location: Prague, Czech Republic
- Contact:
Thanks yak, it's better, still though sometimes happens to me that both regular tap (left click) and then the two-finger tap (middle click) occurs in quick succession, possibly the tap isn't taken from the Synaptics driver early enough?
Managed to get horizontal scrolling working in Firefox:
It might also work in other applications, but only in fairly new ones - the message was added in/for Vista. Works in Firefox 2.0 on WinXP.
I'm playing with balancing when to scroll in which direction, so that you can actually scroll only horizontally when you want and not go on a wawe to the side, when I'm satisfied, I'll post what I've got, right now I 'prefilter' the values like this:
And after apply the standard square/divisor.
EDIT: for other applications, probably the most reliable way is to send WM_HSCROLL, wParam=SB_LINELEFT/SB_LINERIGHT to window's child under the mouse cursor. GetForegroundWindow(), EnumChildWindows(), when one enclosing GetCursorPos() is found, SendMessage(WM_HSCROLL, SB_LINELEFT/RIGHT) times (dx/WHEEL_DELTA). Use buffer. Whacked it together in Python, will contribute to the C++ app when time allows and no one does it earlier
EDIT2: forgot to mention, applications which handle WM_MOUSEHWHEEL must return true/non-zero, so it's easy to decide whether to fallback to WM_HSCROLL/SB_LINELEFT-RIGHT.
Managed to get horizontal scrolling working in Firefox:
Code: Select all
WM_MOUSEHWHEEL = 526
x, y = win32api.GetCursorPos()
win32gui.SendMessage(win32gui.GetForegroundWindow(), \
WM_MOUSEHWHEEL, (dx << 16), (y << 16) | x)
I'm playing with balancing when to scroll in which direction, so that you can actually scroll only horizontally when you want and not go on a wawe to the side, when I'm satisfied, I'll post what I've got, right now I 'prefilter' the values like this:
Code: Select all
if abs(dx) < 5 and abs(dy) > 8:
dx = 0
else:
if abs(dx) > 3 and abs(dy) < 12:
dy = 0
dx = int(dx * 1.5)
EDIT: for other applications, probably the most reliable way is to send WM_HSCROLL, wParam=SB_LINELEFT/SB_LINERIGHT to window's child under the mouse cursor. GetForegroundWindow(), EnumChildWindows(), when one enclosing GetCursorPos() is found, SendMessage(WM_HSCROLL, SB_LINELEFT/RIGHT) times (dx/WHEEL_DELTA). Use buffer. Whacked it together in Python, will contribute to the C++ app when time allows and no one does it earlier
EDIT2: forgot to mention, applications which handle WM_MOUSEHWHEEL must return true/non-zero, so it's easy to decide whether to fallback to WM_HSCROLL/SB_LINELEFT-RIGHT.
T60 14" SXGA+ 9c T5600 3GB X1400 4965AGN MC8780 IR BT FPR DVDRW Alps XPP
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Thinkpad 600 driver problems under Win95.
by ThinkIsaac » Sun Mar 10, 2024 9:09 am » in ThinkPad Legacy Hardware - 1 Replies
- 337 Views
-
Last post by ThinkDan
Thu Mar 21, 2024 7:03 am
-
-
-
Two external displays with T61 and docking station?
by babysheegoth » Thu Jan 25, 2024 10:36 am » in ThinkPad T60/T61 Series - 23 Replies
- 3586 Views
-
Last post by ap63
Wed Mar 13, 2024 5:38 pm
-
-
-
T14 G5 and T16 G3 have two SO-DIMM slots again
by TPFanatic » Sun Feb 25, 2024 7:19 pm » in GENERAL ThinkPad News/Comments & Questions - 2 Replies
- 834 Views
-
Last post by mikemex
Sun Feb 25, 2024 11:19 pm
-
-
- 22 Replies
- 1666 Views
-
Last post by TPFanatic
Tue Apr 09, 2024 4:57 pm
Who is online
Users browsing this forum: No registered users and 1 guest