TL/DR can someone point me to a comprehensive source/sources of information on the technical aspects of how Windows uses cursor size in Windows 11, most especially with regard to SVG files for cursors? Looking for precise information on how Windows decides when to use different sizes, how to force Windows to use an SVG file for cursors if that's possible, and any other information pertinent to using SVGs for cursors. More specific questions follow at the end of "Details".
And thanks very much for any help! I worked on this issue for half a day and am now at the point where I've gotten everything there is to get from the web. That's it, no more info available, so I need help from an expert who knows the issue. I will be most grateful for your time.
Caveat: this question might conceptually seem to belong in the Custom cursors thread, but the focus there is on actual cursors to be posted and downloaded, not procedural questions like this one (notwithstanding the fact that a post on the equivalent thread from tenforums does contribute to this issue; see below).
=========================
Details:
```````````
As I move over to Windows 11, I am about to take a substantial amount of time to create some new custom cursors (icons too, but that's a different beast) in honor of the new, much more powerful laptop I've acquired in order to run the new OS without horrific time lags. Of course, the downside is that making really cool cursors, especially at the higher resolutions supported by Win11, takes lots of time in a bitmap editing program. I've just stumbled across the fact that Win10/11 can use SVG files for cursors, and since producing vector graphics is a lot less work than making bitmaps, this would be awesome.
Unfortunately I can find no tutorials or even official Microsoft specification info for creating--or even using--SVGs as cursors in Windows. Plenty of stuff for using SVGs as icons/cursors on web pages (controlling them with CSS) and there's also a substantial amount of discussion about SVG cursors/icons on Linux platforms, but basically nothing for Windows--even by Microsoft. The Microsoft Learn site's page on cursors mentions nothing at all about SVGs (About Cursors - Win32 apps). I've now spent a long time (3 hours? four?) doing variously worded searches such as "+SVG +cursors +Windows documentation -web -linux" (using the Startpage search engine which unlike both Google and DuckDuckGo actually implements the operators for inclusion and exclusion). Some searches were more general than this example, some more specific; none of them have yielded any official material from Microsoft nor any extended discussion of the issue.
As a testament to the helpfulness of Shawn Brink's set of sites, I only found two semi-helpful sources, both forum posts, and one of them is located here in Shawn's bailiwick: Custom Cursors - Windows 10 Help Forums . However, this post and the other one (reddit) were just short comments. At least the one here, by Hopachi, included the crucial point that Windows doesn't actually use a vector-display function the way a browser does when it refers to CSS to display an SVG; instead, Windows generates a bitmap and uses that. The post also noted that there's no animation possible during this process--static cursors only.
So all kudos to poster Hopachi for at least that much. It's more than I could find anywhere else. Nonetheless, if someone wishes to use SVG files for cursors, that post (and the shorter, less helpful Reddit one) raises more questions than it answers. So let me start with a basic observation, and someone please confirm if I'm wrong, but from the very few comments available on the web, it seems that we begin with the following fundamental issue:
--There is no way to tell Windows to use an SVG image as cursor for a specific pointer type. Windows simply will not do that. Therefore one cannot create a vector file that can be used directly as a cursor. --
So how does Windows use SVGs for cursors, then? Here's what I've been able to piece together after a long time of searching and reading very scattered and fragmented bits of info, along with my questions.
1. Hopachi says that Windows uses "the built-in system black / white / inverted CUR files for the regular size. But if you increase the pointer size then the SVG gets used and generated CUR gets saved at mentioned location."
This is probably clear to others but my dummy brain needs more help. Here's what I think Hopachi meant: In the cursors that ship with Windows (not the aero cursors), not only are there are various *.cur files in the standard roles, but also an SVG file for each role. When Windows uses this shipping icon set, it will NOT default to using the SVG file for any of the cursor functions. Instead it will use the regular bitmap *.cur file--that is, unless the user takes advantage of the Mouse Pointer dialog to change the cursor size AND if Windows doesn't find a *.cur with an appropriate size inside. If this scenario obtains, Windows will then use the shipping SVG file to generate a new *.cur file for that size. Correct?
This raises a few questions that are important if you want to create SVGs for cursor use:
When the user changes display size (not mouse pointer size), presumably Windows should change cursor size along with the new resolution. Does Windows ever use SVGs to create new cursors under this scenario? e.g. a user might change display size to a nonstandard resolution for which there's no cursor of a size that will work very well. It's been awhile but IIRC high-end gaming cards can sometimes support such nonstandard monitor resolutions. But if Windows only uses SVGs when the user goes into Mouse Dialog and changes pointer size, that severly limits the usefulness of SVGs as dynamic cursor sources. Surely the answer is No? Surely Windows uses SVGs for more than just this and the color-customization available in Settings | Accessibility | Mouse pointer and touch. Please confirm.
Also, does Windows reliably switch to an SVG-generated cursor when there truly aren't bitmap *.cur images of the correct size? If it does, that might mean that I could create a nice SVG image in CorelDraw, convert/edit that image in Photo-Paint to just a single nice, full-sized 32x32 cursor taking up all the canvas (and thus "extra large" in Microsft aero terms) with the ending cursor-size indicator "_rl" (what Microsoft uses for "extra large" in its non-aero cursor set). Then I might paste my custom cursor into Windows\Cursors along with the original SVG file of the same name. Then I could use the Mouse Pointer dialog to tell Windows to use that *.cur file. After using it for a while, make sure it works fine, then I could return to the Mouse Pointer dialog and downsize to the smallest-size icon (see Multi-resolution cursors on Windows · Issue #149 · ful1e5/Bibata_Cursor for downsize sizes.) In this scenariom, will Windows use my accompanying SVG file to create a nice decent *.cur, or will it ignore my SVG and just downsample, therefore presenting a blurry mess?
2. Hopachi also says, "Just set one up, with the colour you like, and it gets saved in %localappdata%\Microsoft\Windows\Cursors".
This is a bit more opaque. Hopachi is talking about Settings | Accessibility | Mouse pointer and touch. Is this functionality limited to Windows shipping cursors? In other words, if I create a bitmap and accompanying SVG file of the same name and then choose that cursor via Mouse Properties, can I then go to this Settings page and modify my custom cursor with a new color, created by Windows from the SVG file that accompanied the *.cur file?
Thanks a ton for any help.
And thanks very much for any help! I worked on this issue for half a day and am now at the point where I've gotten everything there is to get from the web. That's it, no more info available, so I need help from an expert who knows the issue. I will be most grateful for your time.
Caveat: this question might conceptually seem to belong in the Custom cursors thread, but the focus there is on actual cursors to be posted and downloaded, not procedural questions like this one (notwithstanding the fact that a post on the equivalent thread from tenforums does contribute to this issue; see below).
=========================
Details:
```````````
As I move over to Windows 11, I am about to take a substantial amount of time to create some new custom cursors (icons too, but that's a different beast) in honor of the new, much more powerful laptop I've acquired in order to run the new OS without horrific time lags. Of course, the downside is that making really cool cursors, especially at the higher resolutions supported by Win11, takes lots of time in a bitmap editing program. I've just stumbled across the fact that Win10/11 can use SVG files for cursors, and since producing vector graphics is a lot less work than making bitmaps, this would be awesome.
Unfortunately I can find no tutorials or even official Microsoft specification info for creating--or even using--SVGs as cursors in Windows. Plenty of stuff for using SVGs as icons/cursors on web pages (controlling them with CSS) and there's also a substantial amount of discussion about SVG cursors/icons on Linux platforms, but basically nothing for Windows--even by Microsoft. The Microsoft Learn site's page on cursors mentions nothing at all about SVGs (About Cursors - Win32 apps). I've now spent a long time (3 hours? four?) doing variously worded searches such as "+SVG +cursors +Windows documentation -web -linux" (using the Startpage search engine which unlike both Google and DuckDuckGo actually implements the operators for inclusion and exclusion). Some searches were more general than this example, some more specific; none of them have yielded any official material from Microsoft nor any extended discussion of the issue.
As a testament to the helpfulness of Shawn Brink's set of sites, I only found two semi-helpful sources, both forum posts, and one of them is located here in Shawn's bailiwick: Custom Cursors - Windows 10 Help Forums . However, this post and the other one (reddit) were just short comments. At least the one here, by Hopachi, included the crucial point that Windows doesn't actually use a vector-display function the way a browser does when it refers to CSS to display an SVG; instead, Windows generates a bitmap and uses that. The post also noted that there's no animation possible during this process--static cursors only.
So all kudos to poster Hopachi for at least that much. It's more than I could find anywhere else. Nonetheless, if someone wishes to use SVG files for cursors, that post (and the shorter, less helpful Reddit one) raises more questions than it answers. So let me start with a basic observation, and someone please confirm if I'm wrong, but from the very few comments available on the web, it seems that we begin with the following fundamental issue:
--There is no way to tell Windows to use an SVG image as cursor for a specific pointer type. Windows simply will not do that. Therefore one cannot create a vector file that can be used directly as a cursor. --
So how does Windows use SVGs for cursors, then? Here's what I've been able to piece together after a long time of searching and reading very scattered and fragmented bits of info, along with my questions.
1. Hopachi says that Windows uses "the built-in system black / white / inverted CUR files for the regular size. But if you increase the pointer size then the SVG gets used and generated CUR gets saved at mentioned location."
This is probably clear to others but my dummy brain needs more help. Here's what I think Hopachi meant: In the cursors that ship with Windows (not the aero cursors), not only are there are various *.cur files in the standard roles, but also an SVG file for each role. When Windows uses this shipping icon set, it will NOT default to using the SVG file for any of the cursor functions. Instead it will use the regular bitmap *.cur file--that is, unless the user takes advantage of the Mouse Pointer dialog to change the cursor size AND if Windows doesn't find a *.cur with an appropriate size inside. If this scenario obtains, Windows will then use the shipping SVG file to generate a new *.cur file for that size. Correct?
This raises a few questions that are important if you want to create SVGs for cursor use:
When the user changes display size (not mouse pointer size), presumably Windows should change cursor size along with the new resolution. Does Windows ever use SVGs to create new cursors under this scenario? e.g. a user might change display size to a nonstandard resolution for which there's no cursor of a size that will work very well. It's been awhile but IIRC high-end gaming cards can sometimes support such nonstandard monitor resolutions. But if Windows only uses SVGs when the user goes into Mouse Dialog and changes pointer size, that severly limits the usefulness of SVGs as dynamic cursor sources. Surely the answer is No? Surely Windows uses SVGs for more than just this and the color-customization available in Settings | Accessibility | Mouse pointer and touch. Please confirm.
Also, does Windows reliably switch to an SVG-generated cursor when there truly aren't bitmap *.cur images of the correct size? If it does, that might mean that I could create a nice SVG image in CorelDraw, convert/edit that image in Photo-Paint to just a single nice, full-sized 32x32 cursor taking up all the canvas (and thus "extra large" in Microsft aero terms) with the ending cursor-size indicator "_rl" (what Microsoft uses for "extra large" in its non-aero cursor set). Then I might paste my custom cursor into Windows\Cursors along with the original SVG file of the same name. Then I could use the Mouse Pointer dialog to tell Windows to use that *.cur file. After using it for a while, make sure it works fine, then I could return to the Mouse Pointer dialog and downsize to the smallest-size icon (see Multi-resolution cursors on Windows · Issue #149 · ful1e5/Bibata_Cursor for downsize sizes.) In this scenariom, will Windows use my accompanying SVG file to create a nice decent *.cur, or will it ignore my SVG and just downsample, therefore presenting a blurry mess?
2. Hopachi also says, "Just set one up, with the colour you like, and it gets saved in %localappdata%\Microsoft\Windows\Cursors".
This is a bit more opaque. Hopachi is talking about Settings | Accessibility | Mouse pointer and touch. Is this functionality limited to Windows shipping cursors? In other words, if I create a bitmap and accompanying SVG file of the same name and then choose that cursor via Mouse Properties, can I then go to this Settings page and modify my custom cursor with a new color, created by Windows from the SVG file that accompanied the *.cur file?
Thanks a ton for any help.
- Windows Build/Version
- 24h2
Last edited:
My Computer
System One
-
- OS
- Windows 11
- Computer type
- Laptop
- Manufacturer/Model
- ASUS
- CPU
- Intel i7-13620H 10-Core
- Motherboard
- ASUS TUF FX507
- Memory
- 32GB DDR5
- Graphics Card(s)
- GeForce RTX 4070
- Sound Card
- onboard
- Monitor(s) Displays
- laptop screen or Dell U3223QE
- Screen Resolution
- 1980 or 2160, depending on laptop screen or desktop monitor
- Hard Drives
- SSD
- PSU
- laptop
- Case
- laptop
- Cooling
- laptop
- Keyboard
- laptop
- Mouse
- logitech M525
- Internet Speed
- 5g
- Browser
- Firefox