Hacker News new | past | comments | ask | show | jobs | submit login
macOS Cursors (mac-cursors.netlify.app)
172 points by disadvantage on March 20, 2023 | hide | past | favorite | 72 comments



Here’s an interesting and perplexing point about MacOS cursors tangentially related to this article.

Final Cut Pro, Apple’s flagship video editing software, overrides the default MacOS cursor with a nearly identical, but slightly different cursor shape. It’s almost exactly the same as the standard retina MacOS cursor but the little “stem” at the bottom is shorter & points slightly more to the right. I’d expect this from a weird niche bit of open source software, but for one of the Mac’s flagship applications it’s a bit strange. Perhaps someone here could enlighten me to the purpose of this bizarre quirk.


I can't provide the reason, but I can add a story that might shed light on the answer.

Years ago I was hosting a movie night and we were watching a dark, stylish black & white film that required subtitles. This was either in iTunes or TV.app, whichever was Apple's flagship movie watching app at the time. Every time a subtitle appeared on the screen, the gamma (or something affecting brightness) would change ever so slightly, affecting the whole scene in a barely perceptible way. It drove me nuts. This wasn't some kind of adaptive dimming from the screen; I confirmed that the actual image (even when watching just on the laptop screen) was changing.

After some searching, a really wacky solution popped up: if you go into the Accessibility settings and bump up the size of the cursor ever so slightly, it'll fix it.

Supposedly, the reason was that macOS's cursor drawing is heavily optimized (potentially in the firmware?) and thus uses a different drawing path (maybe with GPU acceleration vs. without?) depending on whether the default cursor is being used or not. So, whatever drawing routine was used to render subtitles causing the gamma to shift was also triggered by having a different default cursor, making it the same whether or not subtitles were on the screen.

Even though I found a fix, to this today I'm still furious that Apple – supposedly known for their quality, attention to detail, and good multimedia experience – could overlook this in their flagship app. And now it's something I always do when setting up a new Mac: bump the cursor size.


That's a bug in Intel GPUs Drivers. Windows Server can use an optimized display mode when there is only a Core Animation Layer that covers the entire screen. Unfortunately on Intel GPUs color management is not correct if the layer bit depth 8-bit. Every time a subtitles line appears, the Windows Server switches out of the optimized mode, and so the color management corrects itself, and when the subtitles line disappears, it goes back to the optimized and buggy mode.

The good news is that Intel GPUs are not used anymore on recent Macs, the bad news is that Intel GPUs drivers will never be fixed.

Probably the enlarged cursor prevents the usage of the optimized Windows Server mode.


> the bad news is that Intel GPUs drivers will never be fixed.

What's the reason for this? Also, does this happen on Linux since I know much of the driver stack for Intel GPUs is open.


Just my guess. But it's been introduced at least 6 years ago, and Apple switched to its own CPU and GPU three years ago, so each passing year there are fewer chances of it getting fixed, and relatively soon macOS will require and Apple GPU.


iPads also desaturate when there's similarly no overlay on top of fullscreen video, so it's not just an Intel bug...


Is that not just "adaptive gamut" or whatever it's called — where a display capable of HDR (like the recent miniLED-driven iPad displays) will still be driven with an SDR signal most of the time to save power (as SDR content has a lower contrast ratio, and so is less demanding of peak brightness), but will switch into HDR mode when displaying HDR content (and so "desaturate" — i.e. bring down the black level, lowering the seeming contrast level for darker content — in order to display bright lights as really really white)?

It's maybe strange that compositing HDR + SDR together results in SDR rather than HDR, of course. You might consider that to be the bug.

But I could see that being an intentional choice by Apple (though one that's maybe not thought out in the context of an iPad-as-consumption-device.)

In most situations where you're staring at a composited HDR+SDR signal for a long time — e.g. a video editor editing an HDR video timeline/preview, inside an otherwise-SDR UI — the SDR content exists both before the HDR content is opened, continues to exist after it closes, and takes up the majority of the screen. So you don't want the SDR content changing its gamut just because some HDR content shows up. You want the HDR content to be squashed down to SDR for preview. If you want to check how the video looks in HDR, you'll preview the video fullscreen for a bit. (Or, if you want to always be seeing the video in HDR, then you'll use a dedicated second display that the video is always fullscreen on — as any color-grading software expects you to do.)

The scrubber widget being composited on top of HDR content is an exception to this, of course. That widget should be brought into HDR, not the other way around. But maybe this is a very low-level compositor thing, that's hard for something all the way up at the app level to signal down to to say "hey, don't mind me, we're watching a fullscreen video up here, just make me HDR!"


That could be a totally unrelated bug, iOS is still running many different software pieces. On macOS I saw no issue on Nvidia, AMD, and Apple GPUs.


This happened to me too. I still use a MacBook Pro from 2015 mostly for watching videos. As you described, any time a subtitle appeared on the screen, the screen fluctuates in brightness / gamma levels.

I guess one other thing you could say is, I don't know if it's just me in my head, but I always feel that the cursor movement in MacOS is silky smooth.


It's a bug in the Intel GPUs drivers, see my reply to the parent message.


Apple's graphics stack supports hardware cursors. (⌘F this file for it: https://github.com/apple-oss-distributions/IOGraphics/blob/m...)


Based on my experience with the Mac tv app, I’m guessing no powerful people at Apple dog food it… tons of little wierdnesses compared with the AppleTV proper.

(It’s been a long time since iTunes played movies, but it was pretty bloated and weird before they popped TV outta there)


> macOS's cursor drawing is heavily optimized (potentially in the firmware?)

Aka “hardware cursor”? That isn’t just a macOS thing, and is quite common.


> either in iTunes or TV.app

You missed out on another flagship video watching app of Apple's - Front Row...


I noticed that too. Made it feel like I was in "super pro" mode.


The beachball cursor, at least on mobile Safari, is incorrectly centred relative to the rotation animation and thus “wobbles”.


If anybody is curious, here’s the code for the beachball animation:

https://github.com/daviddarnes/mac-cursors/blob/main/src/_in...

  #beachball svg {
    animation: spin 0.5s infinite linear;
    transform-origin: 51.5% 51.5%;
  }
  
  @keyframes spin {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }


This is really hard to get right with rotation transformations, so difficult in fact that most (correct) spinners just do not do rotation transformations and instead have manually pixel-aligned images for each frame of the animation.


An elliptical CSS `clip-path` containing a slightly too large spinning beach ball might also suffice. It’d at least stop the edge wobble.


Seeing the same thing in desktop Safari.


Just like a real beachball! Classic Apple.


In this case it's the site doing that, not the actual beach ball cursor implementation on the operating system.

The animation on the website is "wobbling"


This got me wondering how I could set my macOS system cursors to something else.

https://github.com/alexzielenski/Mousecape/releases

+

https://www.deviantart.com/allannyholm/art/Mousecape-Throwba...

+

The 2 .zip cursor packs on here https://www.macintoshrepository.org/33199-mighty-mouse

Works on Ventura.


has anyone figured out how to change the default cursor in macos? i.e. to another color.

i remember looking around for this a while ago and found nothing. with 4k+ displays these days finding the cursor is sometimes frustrating.

and the cursor radar thing is annoying to use


Go to Settings > Accessibility > Display, and scroll down to "Pointer". You can select the outline and fill colour separately. (At least on Ventura; I don't know which macOS version first introduced this option.)

As an aside, the Accessibility settings in both macOS and iOS are generally worth looking through, whether or not you consider yourself disabled. There's a lot of general quality-of-life settings and some neat features hidden there!


The fact that three-finger drag is hiding in macOS accessibility is a real shame. That and tap to click are indispensable.


oh nice. i just upgraded to monterey (trash can mac) and it's there. now my mouse matches my terminal cursor (red cursor on dark blue bg)


ow, my eyes hurt just from that description.


Amiga Workbench used a similar color scheme.


Shake the cursor and it will temporarily grow much larger.

I think cursor customizations died with memory safety.


Historically, Apple didn't have cursor customization built into the OS-- cursor color customization was new in Monterey (macOS 12) and cursor size customization is only a few releases older (I can't find exactly when it was added). Classic Mac OS didn't do it, either, AFAIK (although I'm sure there were third-party options).

Windows (as of 11) still has the same custom cursor capabilities it's had since Windows 95, plus some bits (it can generate cursors with custom colors on the fly now). Applying custom cursors is pretty easy, and the 95-era properties sheet is still readily accessible (besides cursor schemes, there are other options there that haven't migrated to the modern Settings app).


We used to change the cursor size when people left their Macs unlocked in 2011 so it's at least that old.


You can also do like me and just make your cursor gigantic. I keep it at about 75% of max size. My co-workers may make fun of me but using huge text and a giant cursor has actually caused my eyesight to improve in the last 2 years or so. n=1 so entirely anecdotally of course. :)


System Settings -> Accessibility -> Display -> Pointer

There are options for pointer size, outline colour and fill colour. Go nuts.


I don't know if they've fixed this, but it used to be that the pointer target was inside the black border, not at the actual tip of the pointer. That's not really a problem if the pointer is at the default tiny size, but when you make it bigger suddenly everything you point at is offset by the thickness of the border, which makes it borderline unusable.


I don't think they have. It becomes particularly hilarious when you RDP to a Windows machine with the extra large cursor theme/


Accessibility -> Display -> Pointer has pointer colour and size options.

Infamously changing the pointer colour caused a huge memory leak when it was first implemented a few versions ago, hopefully that's fixed now.


I rarely use Macs, but a quick search found https://github.com/alexzielenski/Mousecape


I set this up for my daughter on her MacBook, and she quite enjoys the custom cursors. It definitely requires some technical expertise even after installing the app though, as it doesn't ship with extra cursors; you have to configure them yourself.


http://www.rw-designer.com/gallery?search=human&page=2 this one is for windows. they have custom ones which is cool


If you want to investigate the history of the macOS cursor, and other cursor schemes, I highly recommend this video:

https://www.youtube.com/watch?v=YThelfB2fvg

+

http://www.michieldb.nl/other/cursors/


Whenever I install a fresh Linux distro, the very first thing I do is I install a macOS cursor and replace the default one. I just can't use a mouse without this cursor. Every other cursor just doesn't look right to me. I know, I know... I'm sure others tend to install whatever they're familiar with.


My only question is why MacOS initializes the cursor in the top left corner like a neanderthal from the 70s.


No idea what you're talking about. MacOS Monterey initializes it in the center of the primary screen, after which I need to use the keyboard to put the password in. I restarted my macOS to give this very thoughtful and carefully written reply.


This might be different based on model. On a MacBook Pro (Retina, 13-inch, Early 2015) with macOS 12.6.3, the cursor initializes in the top-left at bootup.

I think this started with Monterey, because on Big Sur and earlier, it always initialized in the center.

Correct me if I'm wrong, but I believe NeXTSTEP also initialized the cursor close to the top-left corner. So this might either be an homage to NeXTSTEP (similar to how the Clarus dogcow has reappeared in macOS Ventura), or a bug. My bet is on the latter.


IIRC classic Mac OS also puts the cursor top left at startup.

I have to admit "where the mouse cursor is at startup" is a very minor niggle for myself, as I rarely restart / shut down computers and the password field for the last user is usually selected and will take typing by default anyway (or after Ctrl-Alt-Del on Windows, if you're old school and turn that on). After sleep modes it could be anywhere, so you're going to be reorientating yourself anyway...


No clue. I remember that on Leopard and Snow Leopard it used to be top left corner but I stopped paying attention and now it shows up in the center of a primary screen.


It actually initialises it at one horizontal plane downards if you mark 3 plane divisions on half the screen at the golden intersection from the center to each previous mark.

Couldn't you have just logged out?


> Couldn't you have just logged out?

I preferred the thorough 20s restart approach.


How do neanderthals from the 2020s hold the cursors?


Being old and grumpy, there were very few "mouse cursors" in the 70s. The first ones in general use were in the early 80s.


I actually love that, it's weirdly calming.


Because most people are right-handed


It's common to see tutorial videos use a different cursor that also reacts to clicks, eg. https://ghost.org/videos/themes.mp4

How is this done?


Ive got to say, i do miss those wacky times when you can customise your cursors in windows.


These are Apple IP. It's most likely a violation of Apple copyrights and design patents to use them publicly or in a commercial context (aside from referencing them in CSS or displaying them using the proper macOS API calls).


Sosumi


If that's true then showing a macbook next to a grande caffe latte with hazelnut syrup is also a violation of copyright (maybe even doubly so).


(IANAL) … no, not "doubly so". See https://en.wikipedia.org/wiki/Fair_use, in particular, "Amount and substantiality" and "Effect upon work's value" ; I think such a use would be ruled fair use, if you, e.g., happened to have a Macbook incidentally in a photo of a coffeeshop. The MBP is not the sole focus of the shot, and any decent looking laptop could potentially stand in for it. You're not detracting from Apple's revenue selling laptops as a photo isn't a laptop. (Hell, if anything, in the right light, it's free advertisement if it advances Apple's product as a status symbol?)

Vs. here's the cursors, here basically a direct copy. (As opposed to incidentally in another copyrighted work.) If you were to just download them an use them on your personal laptop, I doubt Apple is going to care, but if you download them & used them in a product … they might. The beachball is iconic (for better or worse).


and taste


Some of them are rather generic, and look only imperceptibly different from those of other vendors (e.g. resize arrows) – IANAL, but for those, I think copyrightability (threshold of originality, purely functional vs creative elements, etc) is open to question. Whereas others (e.g. busy) are much more distinctive, and I think the odds of them being protected by copyright (and trademarks too) is much higher.


Hmmm I now wonder about fair use...

"the fair use of a copyrighted work, including such use by reproduction in copies or phonorecords or by any other means specified by that section, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright."

is this "for comment"?


The problems will start when you use those cursors on a website or in a commercial product.

Just displaying them (like screenshots) should be fine.


Nice. Would be cool next step if this was compiled into a windows cursor pack.


Been using these on & off for over a year, no complaints

https://github.com/antiden/macOS-cursors-for-Windows


Been using a different macOS cursor pack on my Windows box for a while but it looks like this one might have better coverage. Thanks for the link.

Might just be what I'm used to but for me a white bordered black cursor has always popped off the screen better than the inverse has. The default Windows cursor blends in and gets lost more easily.


Nice, I usually just switch my cursor to the black one on windows and move on, but I'll have to give this a try


Very nice. Now add another set of cursors but for Classic Mac OS.


Great timing. I was looking for a grab cursor yesterday! Cheers


you ppl should try importing cursors from linux.


i don’t get why they did not get rid of the tail, don't most people feel the shape is a bit archaic now?


I guess it removes the ambiguity as to where the cursor is pointing. Other non-ambiguous shapes are possible but you can't go wrong with an arrow. It is harder to see what a non-isoscele triangle would point to. Spaceship-type cursors seem fine but maybe not neutral enough in taste?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: