coteditor / CotEditor

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

Some ⌘ keyboard shortcuts are occupied by non-existent menu entries #1563

Closed timobezjak closed 6 months ago

timobezjak commented 6 months ago

Description

Command-Option-W is «Close All Windows», but «Close All Windows» does not exist in the menu; hence it cannot be unset. Unfortunately, it works though. Command-Shift-L is occupied by «Search With DuckDuckGo», but that does not exist on the menu either (and it works when called). Therefore, I cannot use that command for «Select Line», which would be preferred.

To Reproduce

Expected behavior

CotEditor version

Version 4.7.1 (623)

macOS version

14.1.2 (23B92)

Additional context

System language is German, therefore also the CotEditor menu is in German. a) Behaviour may be different from my description in the English version; b) menu descriptions in this ticket are my English translation from German.

1024jp commented 6 months ago

Ok, they are two different issues.

1. Alternate menu commands

Command-Option-W is «Close All Windows», but «Close All Windows» does not exist in the menu; hence it cannot be unset. Unfortunately, it works though.

This is by design. This kind of menu command is a so-called alternate menu command (or item) in the macOS world. It appears only when the user presses the modifier keys (e.g. the Option key) while opening the menu and its shortcut key works all the time. In addition, it is always a part of a pair of its primary menu commands. For instance, the “Close All Windows” command (⌘⌥W) is paired with the “Close Windows” command (⌘W). Therefore, I intentionally omitted to modify the keyboard shortcuts for them. Xcode, the IDE app by Apple, also prohibits customizing those alternate commands.

However, now, I realize it has still room to introduce inconsistency when the shortcut key for the primary command is changed. It should be improved. I'll do it in the next versions. However, I still believe alternate commands are better not to be customized freely.

2. “Search With DuckDuckGo” command

Command-Shift-L is occupied by «Search With DuckDuckGo», but that does not exist on the menu either (and it works when called). Therefore, I cannot use that command for «Select Line», which would be preferred.

I suppose this is the out of scope of CotEditor. CotEditor does nothing to do with DuckDuckGo and the command would be somehow added outside CotEditor and the system. Therefore, I don't know how the command is added and works. The custom keybinding feature in CotEditor just scans all the menu commands on the app and filters reserved and customizable ones.

timobezjak commented 6 months ago

Thanks for your quick and thorough reply. As for 1, I understand, and I don’t like it, and it’s not a huge deal either. I just don’t ever need «Close all Windows», and if I hit it accidentally (mistaking it for Wrap Lines), I get slightly annoyed. So I’d rather turn it off.

As for 2: Valid objection, this came from the OS keyboard shortcuts. I wasn’t aware and removed it, now I can Select Line in CotEditor with Command-Shift-L. I originally attributed it to the CotEditor settings because the error message was the same as with already occupied commands within it.