Currently the Mouse cursor is stored in the application server directly, that is the graphics are hardcoded in the HVIF format, currently you’d need to recompile Haiku to change the cursors. so it’s not that easy
Yes,that is correct.
The code could theoretically be changed to support loading cursors from a file,but currently that’s not done so you’ll always have to recompile Haiku to try another cursor.
It does beg the question though, why would you want to change the mouse cursor? The one we have now is iconic, and the ones in the image seem like they are just not that desirable.
Sure, but themes and changing the chrome on Windows is really niche. I don’t think I would ever do it and it takes away what I see as the uniqueness of the OS. I honestly use the default UI settings in everything I use and I really don’t enjoy having to use anything that is customised.
I’d say Haiku should provide a means to easily change the mouse cursor for accessibility purposes. Make 'em bigger, a different colour, whatever is needed. Setting arbitrary cursors can then be easily implemented as a third-party opportunity. Same as more elaborate theme managing.
IMO.
I agree with this, the default cursor should get some enhancements for it’s accesibility; But on the other hand I think customizing it completey is a seperate concern (accesibility tends to work better when it is build into the system and not some “ask a third party dev to fix it” )
Adding support for Third-party cursors should not be too difficult. I think the most straightforward way is too add a call to the ControlLook api to have the app_server fetch a cursor from there. (Yes, I guess technically this could be in the Decorator, but that is already too complicated and may also be moved into the controllook at some point, so then we would have a single Look&Feel library I suppose)
I started testing my cursor work from Windows 11 on Haiku. I drew from scratch so I had the vector files in svg. I brought them over and did not want the workflow to be messy so I decided to start with just one file, the Pointer cursor.
The svg for all the cursors are 64px by 64px.
When I opened in Icon-O-Matic, the canvas was filled with black color though the individual shapes and paths could be selected from the left pane. I booted back into Windows 11 to re-export the svg.
I use Illustrator and I changed the export option for styling from internal css to presentation attributes, booted back into Haiku, and it opened correctly.
I tried to export and I was presented with various formats but only tried the HVIF and HVIF Rdef
I opened HVIF Rdef with Style Pe, I had read earlier hotspots can be defined therein but this is what I have:
resource()#‘VICN’ array {there is code in here}
I am stucked here and I will appreciate any guidance.
HVIF is a binary format, it consists only of desciptions of paths, colors and shapes, (and LOD info), basically the same stuff you see in Icon-O-Matic; the format does not have any way to define a hotspot as it is not ment for Cursors directly, so this would likely be done somewhere else (but I do not know where)
The difference between HVIF and HVIF rdef is that the rdef version gives you the same binary data, but encoded in a way suitable for an rdef file, this is a kind of file you can use to set attributes to a file during a build operation.