akiyosi / goneovim

A GUI frontend for neovim.
MIT License
2.36k stars 59 forks source link

Moving cursor right by holding down lowercase L pops up character overlay in MacOS #436

Closed mars0i closed 1 year ago

mars0i commented 1 year ago

Hi,

I'm not sure how to describe this. It may be that it's an old issue but I don't know what I should search for.

In MacOS, if I hold down the lowercase L key to quickly move the cursor to the right, a small overlay pops up. It contains a vertical line with a slash through it, and a 1:

Screenshot 2023-01-28 at 1 29 25 PM

This has been an issue for a long time, but I haven't reported it. I think I started seeing it in version 0.6.2, in an old version of MacOS. Now I'm using Goneovim version 0.6.4 in MacOS 12 and 13.

It doesn't happen if I move left, up, or down using the h, i, or j keys. It doesn't happen if I use the arrow key to move right.

Any idea what this is, or what I should investigate? Thanks.

akiyosi commented 1 year ago

@mars0i Hi, Thanks for issue report :) This is a very interesting issue. I did a little research and it seems to me that the small menu in the following article is very similar to the tooltip you have a problem with. Are you using Rocket Typist to set up shortcuts regarding symbols with slashes in the vertical bar?

https://setapp.com/how-to/type-special-keyboard-symbols-on-mac

screenshots:

2023-01-30 10 25 58
mars0i commented 1 year ago

I don't use Rocket Typist, and I don't think I have any shortcuts that would affect goneovim. However, your remarks show what is going on. Thanks for figuring this out. It is very interesting--you're right.

In goneovim and VV, if I hold down the e key in insert mode, the character is inserted repeatedly (as expected), but also the e-menu above pops up. If I hold down the l [L] key repeatedly in insert mode, it inserts many l's, of course, but the little slash-line menu pops up as well. (Clicking on the little menu inserts the special character. I remember now that an L with a slash is used in Polish. That's what the line with the slash is.) A similar thing happens with c and u, and probably some other keys that have diacritical marks as options. So the interesting point is that with l [L] and c, for example, these can also be used in normal mode. The l [L] key is probably the only one that I routinely hold down, for the sake of cursor movement.

Other interesting points:

So these little menus are there for the purpose of inserting characters with diacritical remarks, but different programs control how they are used, and prevent them from operating in some cases. My guess is that popping up the menu is a default behavior in MacOS. MacVim disables it everywhere. VV disables it for normal mode, which makes sense, but allows it for insert mode, which also could make sense.

Perhaps this is configurable in some of the programs mentioned above. So far I haven't figured out how to do that. I'll keep exploring.

akiyosi commented 1 year ago

@mars0i Thanks for detailed info! Since I am Japanese, I was not familiar with such an input menu for accented characters, so I learned a lot.

I did a bit of research and found a few relevant articles, which I will share with you. It seems that accented character input menus can be disabled, but I wasn't able to find out if it is controllable on a per-application basis.

https://support.apple.com/guide/mac-help/enter-characters-with-accent-marks-on-mac-mh27474/mac https://apple.stackexchange.com/questions/332769/macos-disable-popup-showing-accented-characters-when-holding-down-a-key

In addition, I imagine that Qt, the library, is anticipating that such a menu will be enabled by goneovim. I've looked into it a bit, but haven't found a way to control it in the Qt layer yet.

mars0i commented 1 year ago

Thanks akiyosi! The answer to the stackexchange answer you linked to explains how to disable the behavior globally, but one of the "Related" questions linked on that page also explains how to disable the behavior on a per-app basis: https://apple.stackexchange.com/a/452755/44485 This worked for me:

defaults write -app goneovim ApplePressAndHoldEnabled -bool false

Now the popups are gone from goneovim, but I'm still able to get the diacritic popups in Firefox and Word. Thank you! (I'm not sure whether I will use the popups in Firefox or Word, but I might, now that I know about them.)

So this issue is resolved now. Thank you for investigating and finding the key to the solution.

(I can add a note about it to the Wiki if you want. It's not really a goneovim issue, but since different applications handle the diacritic popup differently, someone might ask about it for goneovim in the future. This is up to you. Maybe it's not worth cluttering the goneovim Wiki with a tip about this.)

akiyosi commented 1 year ago

I am glad it was resolved!

Also, thanks for the suggestion about listing the Knowledge related to this Issue on the wiki. I think it would be useful and would appreciate it.

Closed.

mars0i commented 1 year ago

Great--thanks. I'll add to the wiki as soon as I get a chance.

mars0i commented 1 year ago

Akiyosi, I added some text about disabling the popup menus on the Tips page of the Wiki. Let me know if it seems OK or if I should change something (and of course I won't be offended if you change it).