So up until now, I've been using my UltraNav middle-click button with "advanced features" disabled, meaning no magnification or scrolling use - this is because I always use the middle-click button to open a link in a new tab, navigate around Google Sketchup, and it's a handy button in general.
However, I have recently tried out the TrackPoint scrolling along with the middle-click button's scrolling feature, and it's very useful. When I enable the feature, however, it uses clicks of the middle button as a toggle to turn the scrolling on or off, and does not allow middle-clicking of links anymore.
I was wondering whether it is possible at all to use the TrackPoint scrolling along with the middle-click button?
-
-
Smooth scrolling needs to be set. I use the middle button to scroll and to open and close tabs.
-
Ah, well smooth scrolling is just the conventional press-in-middle-button-on-mouse scroller thing. I prefer the standard scroller, the one with the small gray vertical bar with the mouse pointer. Any way to still use that along with the middle click function?
Thanks for the answer though. -
what i did was, i set the the trackpoint middle button to the default scrolling
then, i set a tap zone on the top left corner of the touchpad to act as the conventional middle click button. i then just have to move my right thumb 1 cm to tap the button to open links, and still have the trackpoint middle button scrolling -
Slightly-more-than-three-month-bump
I was wondering whether anyone has any more insight into this issue. I recently found another thread on NBR of someone who has the exact same issue as me. Unfortunately, no resolution in that thread
-
Note sure if anyone still cares about this, but I wanted to do exactly what MidnightSun does and I have a sort of a working solution. It's a bit long winded and...improvised but it works.
Basically I found a script on the Autohotkey forum that emulates a scroll wheel when you hold down a button and move in the x or y direction. The result was good, but it made the cursor jittery because the script tries to keep your cursor in its original place but it still allows for movement. So I solved this by hiding the cursor while scrolling (a work around to the work around...).
If you just want to run a script exe then download the attachment, unzip it to a place of your preference and add a shortcut to it in your Startup folder.
Install Steps (If you want to be able to edit the script):
You need Autohotkey installed.
Copy/paste code into .ahk file with Notepad.
Double click the file to run it, place it Startup folder so it runs all the time (works after standby/resume).Code:$*MButton:: Hotkey, $*MButton Up, MButtonup, off KeyWait, MButton, T0.2 If ErrorLevel = 1 { Hotkey, $*MButton Up, MButtonup, on MouseGetPos, ox, oy SetTimer, WatchTheMouse, 1 SystemCursor("Toggle") } Else Send {MButton} return MButtonup: Hotkey, $*MButton Up, MButtonup, off SetTimer, WatchTheMouse, off SystemCursor("Toggle") return WatchTheMouse: MouseGetPos, nx, ny dy := ny-oy dx := nx-ox If (dx**2 > 0 and dx**2>dy**2) ;edit 4 for sensitivity (changes sensitivity to movement) { times := Abs(dy)/1 ;edit 1 for sensitivity (changes frequency of scroll signal) Loop, %times% { If (dx > 0) Click WheelRight Else Click WheelLeft } } If (dy**2 > 0 and dy**2>dx**2) ;edit 0 for sensitivity (changes sensitivity to movement) { times := Abs(dy)/1 ;edit 1 for sensitivity (changes frequency of scroll signal) Loop, %times% { If (dy > 0) Click WheelDown Else Click WheelUp } } MouseMove ox, oy return SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others { static AndMask, XorMask, $, h_cursor ,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors , b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors , h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call { $ = h ; active default cursors VarSetCapacity( h_cursor,4444, 1 ) VarSetCapacity( AndMask, 32*4, 0xFF ) VarSetCapacity( XorMask, 32*4, 0 ) system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650 StringSplit c, system_cursors, `, Loop %c0% { h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% ) h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 ) b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0 , "int",32, "int",32, "uint",&AndMask, "uint",&XorMask ) } } if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T")) $ = b ; use blank cursors else $ = h ; use the saved cursors Loop %c0% { h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 ) DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% ) } }
Scrolling with the script is very sensitive, you can adjust it to your own preferences. I also opened Regedit, went to HKEY_CURRENT_USER\Control Panel\Desktop and changed WheelScrollLines to 1 (default is 3)
Now you have the best of both worlds, middle clicking in any program, as well as scrolling in most places (I would say everywhere but I haven't tested enough).
Sources:
http://www.autohotkey.com/docs/commands/DllCall.htm#HideCursor
http://www.autohotkey.com/forum/topic33712.html
Edit: This is all with the middle button set to neither btw. Actually, if you have only a trackpoint and no touchpad (or no use for the touchpad), you can uninstall Lenovo's drivers and use the generic Windows Driver + Autohotkey to eliminate the extra process. Although Autohotkey is like 4 times the size of Daemon, still only 2mb.
Further testing shows horizontal scrolling doesn't really work at all xD. Worked in notepad, presumably some other stuff...Not gonna worry about it, it was a perk anyway. Also hiding the cursor only seems to work on windows cursors, stuff like Foxit's hand and Firefox's magnifying class stay on the screen.Attached Files:
-
-
Autohotkey huh? What a great find! Ive been trying to look for a Setpoint alternative and I think this may be it!
-
Never heard of Setpoint before. Did it serve the same purpose as this script? I imagine a driver from a large corporation would be a better solution than a random script off the internet xD. Why are you looking for a replacement?
-
Setpoint (from Logitech if you really dont know
) is getting very bloated nowadays and I only need the functions of the extra buttons of my vx revolution mouse! Besides, Logitech dont listens anymore of complaints that their software messes a lot of stuffs!
-
Uploaded a Autohotkey compiled script in previous post, you no longer have to have Autohotkey installed unless you want to adjust the script for your own preference
Updated the code so that horizontal scrolling works better...Did I say I wasn't going to worry about it? Well it was actually simple and with that attitude I wouldn't of had this script in the first place =D.
Also made it so that it only either scrolls horizontally or vertically and not both at once, felt this was needed for control since my settings have it so sensitive to movement.
Code:$*MButton:: Hotkey, $*MButton Up, MButtonup, off KeyWait, MButton, T0.2 If ErrorLevel = 1 { Hotkey, $*MButton Up, MButtonup, on MouseGetPos, ox, oy SetTimer, WatchTheMouse, 5 SystemCursor("Toggle") } Else Send {MButton} return MButtonup: Hotkey, $*MButton Up, MButtonup, off SetTimer, WatchTheMouse, off SystemCursor("Toggle") return WatchTheMouse: MouseGetPos, nx, ny dy := ny-oy dx := nx-ox If (dx**2 > 0 and dx**2>dy**2) ;edit 4 for sensitivity (changes sensitivity to movement) { times := Abs(dy)/1 ;edit 1 for sensitivity (changes frequency of scroll signal) Loop, %times% { If (dx > 0) Click WheelRight Else Click WheelLeft } } If (dy**2 > 0 and dy**2>dx**2) ;edit 0 for sensitivity (changes sensitivity to movement) { times := Abs(dy)/1 ;edit 1 for sensitivity (changes frequency of scroll signal) Loop, %times% { If (dy > 0) Click WheelDown Else Click WheelUp } } MouseMove ox, oy return SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others { static AndMask, XorMask, $, h_cursor ,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors , b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors , h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call { $ = h ; active default cursors VarSetCapacity( h_cursor,4444, 1 ) VarSetCapacity( AndMask, 32*4, 0xFF ) VarSetCapacity( XorMask, 32*4, 0 ) system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650 StringSplit c, system_cursors, `, Loop %c0% { h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% ) h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 ) b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0 , "int",32, "int",32, "uint",&AndMask, "uint",&XorMask ) } } if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T")) $ = b ; use blank cursors else $ = h ; use the saved cursors Loop %c0% { h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 ) DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% ) } } -
Thanks.the msscroll.exe does well , but it has a little bug. when midbtn focused on a new window , it still move the old window's scollbar. when changing window, it should first switch focus then to scroll, I think that is better. how about you ,thanks again.
-
I've noticed that...and...well that's it xD, I have no idea how to interact with windows that are not the focused window.
I know the Lenovo's drivers are able to do it, but hey...that's why we pay them isn't it =P.
Now, if you want to edit the script so that it middle clicks first and then scrolls when you hold it down, that'll change the focus for you. But this will cause accidental link clicks when you're scrolling a web page. I don't know how to change a focus window without a click of some sort. -
aperture science Notebook Consultant
copy this into notepad, rename it to ahk, then put it in startup? -
Yes, if you want to play with the code. Otherwise just download MScroll.exe
Make sure to do the registry edit to number of lines per scroll -
Old thread, but I wanted to say thank you so much aznguyphan. Your script works great. I like it better than the other solution I found, which is to use Marble Mouse Scroll Wheel. It sets up similarly to your script (set the trackpoint settings to neither), and it probably acts more like the trackpoint's standard scroll, but yours has a better feel and it works smoother on more programs (I've noticed Pidgin and Winamp).
Also I would like to add that you don't need to edit the registry, you can change the number of lines it scrolls in Window's control panel under mouse.
Now if only we could figure out how to scroll whichever window the cursor is hovering over, regardless of focus, then it would be perfect.
-
I have been searching for a way to get essentially "trackpoint scrolling = standard" funtionality, but with middle clicking functionality. I don't quite understand everything about MScroll.exe, but I downloaded it and ran it, and I set the trackpoint to neither, and I seem to now have what I want.
Awesome! Thanks aznguyphan! -
This is great! IMHO Lenovo should pay you guys and incorporate this into all of the current Thinkpads. Whomever coded this should know that the Thinkpad community is very grateful!
-
This Script is amazing! Sorry for the old bump, but could you please clarify how to change the sensitivity? I don't understand the two lines you commented, but I want to decrease the sensitivity for vertical scrolling.
-
Howdy. Thanks. I have been looking for this for years. I was going to say I didn't realise it would be as simple as an AutoHotkey script, but then also realisd that script does not look that simple
edit: Also if you have paypal want some beer money then pm me your paypal id
-
Not sure if anyone still cares but for future reference:
The UltraNav that came with my x220 has a scrolling type "Auto-select" under trackpoint settings which seems to accomplish what we're after. -
I'm not sure if this is the same as what you're talking about, but the UltraNav on my T520 has an option for scrolling type 'auto-select'.
For me it doesn't do what is desired in the OP of this thread.
If I set the scrolling type to smooth, and the functionality to scrolling, it just acts like a middle click. For programs like chrome and firefox this is manageable as they bring up the scroller. For programs like notepad, it does nothing (it cannot scroll). -
adante is correct. With the settings suggested, the X220 behaves like laptops bevor: middle click is then just the "normal" middle click, which in browsers triggers "smooth scrolling".
-
I've since realised that this "auto-select" mode only really works in Internet Explorer. There it allows opening closing tabs with middle click and the normal trackpoint style scrolling. Anyway its a moot point because no one really uses IE.
I will give this script a go. -
Just wondering, apart from changing the scroll wheel lines from regedit/control panel, how can i change the sensitivity in the script?
-
Thanks, this script is great. However, since I updated a bunch of Lenovo programs this morning (including the navpoint software) it stopped working. It still works with a mouse or if I hold the middlebutton and use one finger on the touchpad, but not while using the touchpoint. I can't see how it's any different but somehow it is. Any suggestions would be appriciated, thanks.
-
I have no idea what could be causing that problem. I use the script on a x200s which doesn't have a trackpad and probably uses a different driver from Thinkpads with trackpad/trackpoint combos. Only thing to try is to downgrade your driver.
Another option is to use an API based program someone else on the forum posted: http://forum.notebookreview.com/lenovo-ibm/472713-map-double-clicking-trackpoint-center-button.html -
I have discovered a better solution for this, and it's very simple. A little program called Marble Mouse Scroll Wheel. It's somewhat difficult to find as the original page is down, but you can get it here: Casey Tech: Download Marble Mouse Scroll Wheel Here!. Just install it and set the scroll button to Middle (Button 3).
This problem has bothered me since I first got my Thinkpad. I looked everywhere and tried the script mentioned in this thread but never really found what I was looking for, until today. This program achieves a scroll very much like the UltraNav's, including the ability to scroll windows that are behind other windows without changing focus, and it allows you to use the middle click as normal.
*edit*
I forgot to say, you should uninstall the UltraNav drivers first, this program works with the generic Windows drivers. -
Good find. But uninstalling UltraNav drivers is not really necessary. You might still want to use some touchpad features.
-
The middle button doesnt work for me. scrolling works fine. Do I need to go into ultranav settings and do something there to make the middle button thing work?
-
Why don't you try Marble Mouse Wheel as hyetou suggested?
-
When I install Marble Mouse on a Thinkpad T410, it doesn't work. It gives me scroll functionality when I hold down the middle button and use the touchpad, but not when I hold down the middle button while moving the trackpoint. It will scroll a few lines and then stop, sometimes going up when I move down and vice versa, sometimes running away and scrolling way down the page. Is this a conflict between Marble mouse and ultranav? Can I reinstall ultranav if I uninstall it?
-
Marble Mouse and Ultranav worked fine when I tried it. Yes, you can reinstall Ultranav, just use System Update or download it from Lenovo's driver matrix page. By the way, I use the AutoHotKey Script from this post as I find it a tad more reliable.
-
I'm going crazy with a similar problem. My problem is that Middle Click stops the Trackpoint cursor. Touchpad works fine.
I'm trying to explain it on Lenovo's forums:
Newest UltraNav driver brakes native windows middl... - Lenovo Community
Here is my post from that forum:
So here is the sample application I made:
Button Tester (source code included, in case you are afraid of a virus)
Can you try if you can draw with the middle button using the TrackPoint? For me it doesn't work with Lenovo's driver. -
I have a thinkpad e430 and been trying to retain thinkpad scrolling AND use middle click.
I'm running windows 8... and finally found this tiny little app to do exactly what I wanted.
Thought I'd share since it took me forever to find this...
ThinkPad TrackPoint & mouse middle click button... | msafi.com -
A thread discussing TPMiddle is linked on page 3 of this thread. Anyway, I like Marek's program, but the problem is that it does not allow adjusting the scrolling speed, i.e. it uses the Windows default setting, e.g. 3 rows per "wheel". Consequently it is way to sensitive, at least for me. I asked Marek a while ago if he would be able to implement some speed adjustment and he said he would think about it.
-
As far as I know, Marek's app doesn't mess with the scroll speed at all. All it does is send a middle click when the middle button of the TrackPoint is used.
Since we're here talking about this, I'd really like to express how much I appreciate this little app that Marek made for the ThinkPad community. It's a life saver. Thank you so much Marek! -
At least for opening tabs using the middle click, I've become used to navigating the trackpoint with my right hand and being able to control+click on links.
-
Really sorry for the old bump, but I'm looking for a similar solution as well.
Marek's solution is excellent, fits my need almost perfectly except for one little thing: I don't really press down my middle button firmly when I scroll, so usually it kind of "bounces" when I press it. Since Marek is using timeout to distinguish middle clicks and scrolling, it's really annoying when I scroll halfway and suddenly registers a middle click when I don't want to.
If Marek's program can be changed to count movements (as the script in the first page) rather than timeout, that would be the perfect solution for me. Could someone modify Marek's program or write a script that does the same thing? -
Hi, sorry but I don't quite understand what you mean with not pressing the middle button "firmly"...either you press it (and it is registered as pressed) or you don't. It's not touch sensitive.
-
It appears that the Ultranav buttons on my T430 uses a membrane switch instead of a microswitch. This likely why it feels better than most other mouse buttons, but has the drawback of bad contact if there's not enough pressure. Most keyboards provide this pressure with the rubber dome, but the ultranav buttons seems to be not very tactile.
UltraNav Middle Click Button & Scroll
Discussion in 'Lenovo' started by MidnightSun, Oct 6, 2009.