coteditor / CotEditor

Lightweight Plain-Text Editor for macOS
https://coteditor.com
Other
6.22k stars 424 forks source link

Alternative cursor? #1577

Closed gingerbeardman closed 5 months ago

gingerbeardman commented 5 months ago

Is your feature request related to a problem? Please describe. Sonoma introduced new style cursor.

On non-retina display there is a problem that the cursor is 50% wider (1.5x) so it obscures neighbouring characters.

If cursor is next to certain letters they are impossible to read correctly. This makes editing and reading more difficult.

I've filed this with Apple, FB13536508

Describe the solution you'd like

Describe alternatives you've considered

Additional context

non-retina image

retina

image
spoiler warning the letter next to cursor is: c If cursor is next to letter c, like `c|` it's not possible to ascertain if the characters is c, d, o, q, etc.
1024jp commented 5 months ago

Although I understand your issue, I suppose CotEditor should do nothing to work around it. In the current CotEditor implementation, the cursor location calculation is totally up to the macOS system. It is not worth adjusting it only in CotEditor as long as it occurs everywhere in macOS.

Disable new Sonaoma cursor, but it makes cursor hidden in some apps/places.

I don't want to do that in CotEditor. CotEditor should adopt the latest technologies in macOS (even though it seems odd to me personally).

I've filed this with Apple, FB13536508

Thank you. Let us wait for Apple to solve this issue.

Since I also use non-Retina displays sometimes, I also feel Apple doesn't care anymore about non-Retina environments on macOS. This is sad.

gingerbeardman commented 5 months ago

I agree, but... I think it's unlikely Apple fix this. There is a glimmer of hope, read on:

Other affected apps:

Some apps use custom cursor with success:

Some other editors use custom cursor with same problem:

So, I learned a lesson that I should not have upgraded to Sonoma after all 😢

The issue can be mitigated by use of different and/or larger font selection. This is my current workaround.

When I filed the bug at Apple, I also sent an iMessage to a friend who still works there. Their initial response was that they typically don't do resolution-dependent work, but when I pointed out that the width was already different based on resolution ...their option changed. Let's see.

If we get to macOS 15 and it's still an issue I'll open a new issue for reconsideration.

1024jp commented 5 months ago

When I filed the bug at Apple, I also sent an iMessage to a friend who still works there. Their initial response was that they typically don't do resolution-dependent work, but when I pointed out that the width was already different based on resolution ...their option changed. Let's see.

That's a good news, at least. Thank you for sharing your experience.

I'll personally also send a feedback to Apple later, so that they are encouraged to take an action. Actually, I've seen the same claim in reddit before. That means not small number of people having the same issue.

https://www.reddit.com/r/MacOS/comments/16tv5wh/the_problem_with_sonomas_text_cursor/

If we get to macOS 15 and it's still an issue I'll open a new issue for reconsideration.

Ok. Then, I'll also reconsider. The issue for me is the current API for the new cursor system has no clean way to customize the indicator drawing like CotEditor implemented before...

1024jp commented 5 months ago

@gingerbeardman I'm not sure you participated in this thread, but I found a discussion about the cursor on Sonoma at MacRumors. In this thread, some people talk about a flashing cursor. I believe the cursors in CotEditor already gently flash as well; however, they talk as like not. Have you experienced a case the cursor in CotEditor is not flashing? And do you think the cursor flashing helps the regibility.

https://github.com/coteditor/CotEditor/assets/1165044/eeae5ef2-b534-4c9c-805a-5e56a3daf025

gingerbeardman commented 5 months ago

It's my thread on MacRumors. 😅

I do see the cursor flashing, but when moving with cursor keys the cursor is always solid. After moving I have to wait a second for it to begin to flash, and then I only see the proper text between flashes.

So, it's slower and more cumbersome than it used to be where I could see all the text at all times.

1024jp commented 5 months ago

Thank you for the reply.

It's my thread on MacRumors. 😅

Oh, yes, that's right. I missed the topic starter. What a stupid question...

I do see the cursor flashing, but when moving with cursor keys the cursor is always solid. After moving I have to wait a second for it to begin to flash, and then I only see the proper text between flashes.

Ok, that's the aimed behavior, at least.

I just thought of an idea, but how about when the cursor is semi-transparent? The current CotEditor doesn't accept the alpha channel for theme colors, but if it sounds helpful, I'll consider improving the theme implementation.

https://github.com/coteditor/CotEditor/assets/1165044/2f11a62c-405f-4c5c-be18-984f12fc1655

gingerbeardman commented 5 months ago

Thanks, that would be a good idea!

gingerbeardman commented 5 months ago

I just found this old reddit thread, more CotEditor users and cursor complainers in there :)

https://www.reddit.com/r/MacOS/comments/16tv5wh/the_problem_with_sonomas_text_cursor/

gingerbeardman commented 5 months ago

Workaround found!

Make macOS think a non-retina display is retina by editing the Scale factors (from 1 to 2) in ~/Library/Preferences/ByHost/com.apple.windowserver.displays…plist

It makes it a little more clear, though still not perfect, but just enough for things to not bother me and I can continue working as fluidly as I normally do.

I would still appreciate any cursor theming or customisation options you might add.

Arigatou!

1024jp commented 5 months ago

I just thought of an idea, but how about when the cursor is semi-transparent?

I've finished the implementation. In the next version, themes can set colors with the alpha channel. The default cursor colors in bundled themes keep opaque, but then you can change it to a semi-transparent color as you like.

gingerbeardman commented 5 months ago

Thanks! I appreciate your hard work :)

https://blog.gingerbeardman.com/2024/01/25/running-modern-macos-on-non-retina-displays/