Removing Mouse Acceleration OSX
The default axis acceleration is disgusting and makes me nauseous. To be honest I can't believe such a simple thing was so badly F'd up.
Any help is appreciated =]
MacBook Pro, Mac OS X (10.6.4)
You can make a difference in the Apple Support Community!
When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.
When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.
MacBook Pro, Mac OS X (10.6.4)
azpc wrote:
No trolling, just Mac users asking Apple to provide them additional mouse control settings to increase their satisfaction with the product.
I wasn't accusing anybody of trolling. I was responding to foxx1337 who did.
There's no Apple here. We're just users like you. If you want it changed, contact Apple via the appropriate channels (Feedback page or Bug Report/Enhancement Request at Apple Dev Center).
I understand your dissatisfaction because I have the same disatisfaction at work using Windows. I've tried to adjust the mouse settings to make it familiar and useful, but I can't. We have no ability to fix your dissatisfaction with the mouse movement, so continuing to try to justify the need for options here has zero effect on actually getting the options implemented.
foxx1337 wrote:
So now that we've established that in your view the lack of user options is the opposite of broken, and that we understand that the product suits you just fine and it shouldn't be changed in your oppinion (how does that help with my problem I wonder), waiting for the rapidshare / mediafire / etc links to hacks 😀.
Where did I say it shouldn't be changed? I posted a suggestion of how to actually get the feature implemented. As far as I know, all the links to any hacks or third-party workarounds have already been posted.
foxx1337 wrote:
I'd like each count, of the 450 / 900 / 1800 / 3500 CPS my mouse is capable of to translate into exactly "Factor times 1 pixel" on screen. And I require that "Factor" be a fractional number, controlled through a slider similar to the one currently existing in the System preferences, between, say, 0 and 10 with increments of, say, 0.2. That behavior, regarless of the speed of my hand swipes, between 0 and 5 meters per second, which is about the malfunction speed of my mouse.
This isn't as simple to do as you might think because the mouse doesn't continuously send absolute position information to the computer. Instead, it sends arbitrary X & Y counts that Microsoft calls "mickeys" at the update rate of the mouse bus.
So say the mouse is set to 900 mickeys per inch & the bus update rate is the typical 125 Hz USB one. Moving the mouse at a constant 1 inch per second speed produces about 7 mickeys per sample. Move the mouse twice as fast & you get twice the mickeys per sample, & so on. Move the mouse at something other than at a constant speed & you get different mickeys for each sample.
So as I hope is obvious, what the computer actually does is calculate the velocity of the mouse by comparing the difference in mickey values between successive samples, & from that calculates how far the pointer should move on the screen. This is called the transfer function, & its characteristics determine the sensitivity & ballistic characteristics of the pointer. Note that it must take into account the sample frequency of the bus, the mickeys/inch of the mouse, & the dpi resolution of the screen.
A flat, straight line transfer function has no acceleration at all. (Note that neither the Mac nor Windows defaults are flat; they both include acceleration.) The steepness of the transfer function curve determines its sensitivity, which more or less corresponds to the scaling factor you are talking about.
The "more or less" part comes in because of a number of factors. For one thing, the mouse actually puts out two counts, one each for the X & Y directions of movement. To convert this into an accurate vector distance to use for the velocity calculation, some algorithm that approximates the square root of the sum of the squares (the good old Pythagorean theorem) calculation must be used; otherwise the pointer will square off circular mouse movements. Because a truly accurate calculation would require resource intensive floating point math, less accurate but computationally less expensive fixed point math approximations are usually used for this.
So far, this is pretty much the same for Windows & the Mac OS. But where it is not is the really tricky (& hardest to explain!) part: Note that above the transfer function (& what you want) assumes a fixed pixel display resolution. While the screen resolution is constant on a Mac, the underlying display model of the Mac OS isn't based on pixels. Instead, it is based on technology somewhat like Postscript or PDF, in which the pixels you see are just the closest approximation to the graphics objects the OS actually works with.
This is why for instance you can do things in OS X like drag the corner of a Quicktime movie or QuickView overlay & scale it to an arbitrary size without aliasing artifacts (a.k.a. "jaggies") -- what you see at any window size is a representation of the graphic object interpolated onto the screen pixels. (This is sometimes know as sub-pixel interpolation.)
Anyway, the end result is where you see the tip of the pointer on the screen is not necessarily where it is on the graphics object the screen image represents. IOW, there is no exact, one-to-one relationship between the pointer position & the pixels it is over.
The best you are going to be able to do (without a fundamental change in the OS X display technology, which is highly unlikely since it is a fundamental part of achieving the holy grail of a completely resolution-independent OS) is some driver that approximates a Windows-like transfer function, but I hope it is obvious from my admittedly clumsy attempts to explain why, it will never make the mouse behave exactly like it does for Windows.
Easy.
Open Terminal & copy / paste, or type the following (case sensitive of coarse):
defaults read .GlobalPreferences com.apple.mouse.scaling
That will give you the current accelleration setting.
Then type:
defaults write .GlobalPreferences com.apple.mouse.scaling -float 0
Now logout & log back in & your done. The only problem is that you are going to have to logout & log back in when you make the changes.
It's been a long standing issue, and there is also a script you could run when you wanted no accelleration due to gaming if the above solution doesn't suit you.
wow I just done this and much better now.
Thanks heaps..
Thanks, R C-R. I knew about the mickeys story but didn't completely know about the vectorial nature of the OS X GUI.
Still, I can achieve 0 acceleration at 1800 / 3500 cpi under Windows / xorg with 20 cm per 360 degrees in Quake Live but can't (yet) under OS X 😟.
I'm sure alot of people myself included, came to this thread because like me, they googled this issue since they are trying a mac for the first time after coming from Windows. For people who have proudly said in this thread, that they have been using Macs for 20+ years, great stuff. But a long time Windows user like myself will have a shock when switching. I'm currently testing out a Mac for a bit and while I love the experience, issues like this bug me. I really notice when dragging files, using photoshop and other situations. For Windows user like me, it boggles the mind why there isnt a simple tick box, like Windows has. It's the first thing I turn off when I install Windows 7.
The statements, "just put up with it" don't wash and to pay for software to disable this "feature" really tickles me.
As I tried to explain above, there really is no way to disable the vector-based display "feature" of OS X, so the best you can hope for is a driver with more Windows-like acceleration curves, or one of the workarounds already mentioned.
In time, you'll notice the fundamental difference between Mac OS and Windows - "less cluttered" - as also being "less control". Think about productivity cross-platform programs such as Skype, various VOIP phones (X-Lite comes to mind), VMware (Fusion on Mac vs Workstation on Windows/Linux), uTorrent; or look at the Mac alternatives, though completely different products - iTunes vs foobar2000, Xcode vs Visual Studio (+Visual Assist X), Parallels Desktop vs VMware Workstation; the Mac counterparts often present themselves in a less technical manner, they have fewer checkboxes in their preferences dialogs - they're not designed for you to fiddle with them.
You'll get used to the "that's how it is"(tm) way of thinking and with the "it just works"(tm) philosophy and adapt your customs to the way in which the machine can work to solve your problems 😉.
mouse input ---> [filter to modify speed/acceleration depending various criteria] ---> movement
Though the simple solution would be
mouse input ---> movement
can't achieve yet this case but we almost can achieve:
mouse input ---> [filter to modify speed/acceleration depending various criteria] --->
[reverse filter to undo the changes of the previous filter] ---> movement
with shortcomings such as losing the possibility to control the mouse speed (always locked at minimum, where there's a divisor and not the expected 1-to-1 ratio) or lack of permanence when switching between game and applications.
Message was edited by: foxx1337; typos
In time, you'll notice the fundamental difference between Mac OS and Windows - "less cluttered" - as also being "less control".
Hardly "in time" I'd say right off the bat. Make no mistake, I love OSX and I love the simplicity. After being a Microsoft user since DOS 1.0 days and then switching to MAC about a year ago I somehow can't see myself switching back even though Mac does have it's annoyances.
Think about productivity cross-platform programs such as Skype, various VOIP phones (X-Lite comes to mind), VMware (Fusion on Mac vs Workstation on Windows/Linux), uTorrent; or look at the Mac alternatives, though completely different products - iTunes vs foobar2000, Xcode vs Visual Studio (+Visual Assist X), Parallels Desktop vs VMware Workstation; the Mac counterparts often present themselves in a less technical manner, they have fewer checkboxes in their preferences dialogs - they're not designed for you to fiddle with them.
True but lets compare Apples with Apples (excuse the pun).
- Itunes vs JRiver Media Centre > no comparison, Itunes loses hands down.
- Parallels vs VMware > I personally find Parallels not as good or stable as VMware. I still run several virtual servers using VMware on top of a Windows Server and it's rock solid, some of them running into 400+ days uptime. Parallels on OSX for running Windows as a VM I have found to be rather buggy and I just pull out a windows laptop when I need to do windows stuff. I tried running my favourite JRiver Media Centre software on a Windows VM inside OSX but it has less than favourable results yet every single VM (servers and desktops) I've run using VMWare on top of Windows have never given so much as a single problem.
- Try comparing Windows Explorer with Apple's Finder --- sorry but Finder loses again. In fact Finder is not only an annoying and lacking piece of software to Windows users who switch to OSX but it seems to be a major annoyance to millions of Mac Users too. Finder is so archaic and every new version of OSX does almost diddly squat to make it better. I personally bought PathFinder which is miles better but still lacking in some respects when compared with a file manager like Windows Explorer or File Managers under Ubuntu Gnome Desktop.
You'll get used to the "that's how it is"(tm) way of thinking and with the "it just works"(tm) philosophy and adapt your customs to the way in which the machine can work to solve your problems .
Well it's not like you're given a choice because OSX and MAC is quite simply "that's how it is" .... I still believe Apple could make OSX even miles better by listening a little more to the Windows users they are actually trying to attract to OSX.
mouse input ---> [filter to modify speed/acceleration depending various criteria] ---> movement
Though the simple solution would be
mouse input ---> movement
can't achieve yet this case but we almost can achieve:
mouse input ---> [filter to modify speed/acceleration depending various criteria] --->
[reverse filter to undo the changes of the previous filter] ---> movement
Back to the OT which is mouse movement and behaviour, this is a very real problem. At times I thought I was just going mad but then found hundreds of people all over the web complaining about the same thing ... but remember these are only the ones who bother to go to a forum, to register, to activate their account and then to give a detailed description of their problem, there's probably thousands more who say nothing.
What was very interesting though is that I was watching the WWDC 2011 Keynote and in some of the Demos, the person demonstrating features of Lion overshot his target with his mouse. For instance a common problem with the OSX mouse behaviour is moving your mouse towards a window title bar to either close it, or now in Lion to make it full screen. Well I saw with my own eyes the movement towards the full screen button being missed and the mouse had to be pulled back. Its this kind of control of the OSX mouse that drives us slightly insane. So it's not only Windows users that overshoot targets with the mouse on OSX, here I sat watching someone who lives, eats, breathes, sleeps and preaches OSX doing the same thing. Which also answers my question as to whether there has been any work done on improving this in Lion ....I actually don't think so and that shows me that Apple is not listening or just ignoring this problem. The same goes for Finder, Lion has brought virtually no jump out of your chair changes to finder, sure Lion has some incredible new features but why is Apple so blatantly ignoring making any improvements to the absolute basics of an OS which is Mouse and File Manager ????
Do I see myself buying Lion when it releases, yes but I'm sure I'll still sit with this mouse behavior issue for some time until someone else can write a driver or utility to change it. It's not like we're asking for much just better control of our mice and better choice of mouse pointers that are core choices and not add on software. I mean the tiny black pointer is just awful and on a 32 inch screen very hard to find. I use pinpoint to make the mouse pointer more noticeable but it's an add on and its very noticeable that it's an add on. It would take an OSX engineer the better part of one day to add the ability to change mouse pointers and to allow users to find a pointer they are comfy with. A vast selection of pointers black, white, high contrast, white on black, black on white have been available in Windows since Win 3.1, on OSX … just the one tiny black pointer. Microsoft has spent billions on researching how people use computers and introduced numerous feature for disabled or visually impaired people. Apple sad to say has not done nearly as much in this regard. The only visual enhancement for OSX is to upsize the mouse cursor which gives you a horrible pixelated version of the small black cursor resembling something that a 3 year old might have drawn.
These requests are SIMPLE fixes and really not asking a lot, we love OSX, we want to stick with it, Apple just needs to listen a little more to what users are asking for. When people say these forums are only for user to user interactions I say BOLLOCKS. Look in the title bar it says APPLE.COM ..... this forum resides on Apple Servers and if they don't want to hear what people have to say then they should just shut them down and move them to a non-Apple domain. As a paying user I expect Apple to have employees monitoring these forums, noting down the gripes and answering people. Much of the useless banter between users is just that useless. If all the info and complaints hidden in these forums in not reaching someone who matters at Apple then they really are missing a golden opportunity. Personally I'm sick of many large companies running forums on their domains and then trying to exonerate themselves from getting involved with them. The alternative, dealing with support people, is seldom ever a good experience because these days you get routed through to call centres in India or elsewhere who struggle to speak english properly and struggle to "think" or "listen". Instead they sit and read a bunch of troubleshooting walkthroughs on their screens which are freely available over the web anyway.
Windows Explorer is nothing compared to the built-in terminal + bash available on Mac 😉. Even Console2 + mingw's or cygwin's bash can't compete. Not to mention the awesome monaco font + Mac's font renderer 😀 :drool:.
And that same ugly cursor acceleration issue somehow seems PERFECT for the Synaptics (I guess) touchpad equipped on my MacBook Pro. For such lower precision peripherals heavy software compensations are needed. I'd say it uses the same algorithm, though not sure. It's probably just sloppy - they had the MacBook in mind and completely forgot about legacy controllers such as friggin' gaming mice 😀.
MKZA wrote:
Well it's not like you're given a choice because OSX and MAC is quite simply "that's how it is" ....
Actually, you are given enormous choice over the machine's behavior, but you need to use the command line & learn a lot about how the OS works "under the hood" to take full advantage of that. Master that & you can make the OS do almost anything you can imagine.
But regarding modifying pointer ballistics, you aren't going to get very far considering it separately from the OS X imaging model because, as simply as I can put it, you must understand exactly what is being pointed to before you can make any significant changes.
The most basic thing to understand is that in OS X the pointer does not point to screen pixels. What you see on screen is typically a composite of resolution-independent objects (both 2D & 3D) & traditional pre-rendered bitmaps (which may be scaled to non-native sizes). Moreover, some of these things may be transparent, allowing other things beneath them to partially show through. It isn't as simple as applying a "filter" to the pointer or the pixel it points to -- for instance, if the pointer is over a semi-transparent, resolution-independent vector object that is overlaying a scaled bitmap, what is the pointer actually pointing to?
For detailed info about how OS X renders screen objects, I suggest browsing through the topics in the Apple developer article "Getting Started with Graphics & Animation."
R C-R wrote:
MKZA wrote:
Well it's not like you're given a choice because OSX and MAC is quite simply "that's how it is" ....
Actually, you are given enormous choice over the machine's behavior, but you need to use the command line & learn a lot about how the OS works "under the hood" to take full advantage of that. Master that & you can make the OS do almost anything you can imagine.
I second that, it's an extremely powerful OS.
R C-R, you're making no sense here. Go read any OpenGL book and see how not having pixels has (should have) nothing to do with human interface devices.
Let me put it in another way, so that there's no confusion. Let's assume screen has a width of 1 and a height of 0.625. We're talking here about being able to map any individual "signal" received from the HID with an arbitrary unit, for example 0.1. Now where do you see the word "pixel" in this paragraph? That's how OpenGL is and that's how Direct3D is too. And the mouse always sends a "count"; every 2 such counts are generated over equal distances, always.
foxx1337 wrote:
Let me put it in another way, so that there's no confusion. Let's assume screen has a width of 1 and a height of 0.625.
A width of 1 what? One screen? How do you divide that into distance units?
And the mouse always sends a "count"; every 2 such counts are generated over equal distances, always.
Actually, at the hardware level the input device just sends separate X & Y count numbers each time it is polled. Some software, typically the device driver, must combine the two to create an abstraction of the linear two dimensional distance traveled between successive samples. The time between samples plus that distance yields the velocity at which the pointing device is moving.
The point I'm trying to make is some are saying they just want a linear (zero acceleration) correspondence between pointing device movement & the number of pixels the pointer moves on the screen. It isn't that simple, either for Windows or for OS X. Both must deal with sub-pixel distances, & each must relate that somehow to positions in whatever objects the OS is capable of drawing on the screen. Otherwise, there is no way to determine what the pointer is pointing at.
In OS X, each window is drawn in its own graphics "space," so the screen image is actually a composite of multiple layers, each of which may have a different scale factor. Because of this, relating pointer position to the position of anything in any of these spaces is not as straightforward as it would be in a more Windows-like imaging model in which everything is drawn in one screen space.
The bottom line is getting a driver (or any other software) to perfectly emulate the functional characteristics of a different, non-native imaging/pointer model is just about impossible, at least without writing a complete model for both. And because this layered imaging model is a fundamental part of the GUI of OS X, this basically means rewriting the entire OS to be more Windows-like.
If that is really what you want, it would be much simpler just to run Windows on the Mac hardware.
Removing Mouse Acceleration OSX