Tuesday, March 5, 2024

Keyboard Control of Messages.app

With macOS Catalina, Apple replaced the Messages app, which had been based on iChat, with a version derived from the iOS Messages app. This brought some new features such as effects but dropped others such as conversation archiving. (You can’t even Select All to copy the text of a conversation.) Messages is often held up as a successful use Catalyst, but under macOS Sonoma the keyboard shortcuts still don’t work properly. The Page Up, Page Down, and Home/End keys don’t do anything in either the conversions list or the messages list. Nor does tabbing between the different panes work. With the text field active, pressing Tab actually inserts a tab character, and holding down a modifier doesn’t help. Granted, being able to transfer keyboard focus isn’t very useful because there isn’t much you can do with it: scrolling messages with the arrow keys is broken, and you can’t use the arrow keys to select a conversation. Oddly, Messages uses Control-Tab to do that.


Update (2024-03-21): Wade Tregaskis:

Even so, there are things which just scream “I’m actually an iOS app”, like when you right-click a message or attachment while the Messages window is on a secondary display, and the contextual menu appears in the top-left corner of the main display. And disappears when you click on any item in it, without activating the item. Because it’s reacting to the mouse location as if it were in the correct place on the secondary display. But if you click on the secondary display, it just dismisses the pop-up menu without activating the selected item – I don’t know how they managed to get that discontinuity between mouse move events and mouse down events, but there you go, the miracle that is Catalyst.

7 Comments RSS · Twitter · Mastodon

Óscar Morales Vivó

To be honest even on the mac app that stuff broke all the time and for a while it was working mostly because I insisted on fixing it. That did not lead to big career rewards in case anyone is wondering.

I don’t get it. Apple got to watch Microsoft make this exact mistake and take years to walk it back. Then they went and did all the bad parts of the same thing.

This is a perfect example of how Apple of today is different than Apple of a decade ago. Of course there were still flaws, but macOS of yesteryear had that wonderful consistency to it that Apple doesn't seem to care a lick about any longer, and Catalyst apps followed by Swift UI made the problem even worse.

I'm finally about to upgrade my 2019 macs from Mojave to (probably) Ventura. I'm not looking forward to it. I expect to be cut to death by a thousand more little cuts than I was before.

Yup. Very noticeable. If you use VoiceOver, then you will use its substitute actions and interfaces all the time. iChat wasn't perfect, certainly, but you could do basic keyboard navigation with the tab and cursor keys! List views have always been a preference for that reason for me.

@Bri I understand and sadly you will be. Unfortunately the hardware, especially portable hardware, remains unarguably excellent. Perhaps one day someone will get ARM64 Windows booting on it ...

I move between conversations using cmd-[ and cmd-] (like moving between tabs on Safari). It’s a much easier key combo than ctrl-(shift)-tab for me (which I wasn’t aware of).

Messages.app is half-iChat half-Messages and it drives me nuts. For example, the iMessage half reads "smart" substitution settings from its own com.apple.messages.text (iirc) domain while the iChat-grown SMS (com.apple.MobileSMS) half reads NSGlobal. Some Cocoa keybindings work in iMessage threads, but not all and no custom ones, and they do work in SMS threads. I can tab to the emoji button, but not the text field. Apps like Zavala and others don't maintain settings across launches and don't read the system's: I'm ok assuming that's a Catalyst problem, but I'm not a dev.

The control-tab shortcut is wired (at least present in) in StandardKeyBindings, FWIW -- I don't know why that work outside a text field, though. Changing the KeyEquivalents leaves it intact.

I had more faith in bugfixing during the early "rebuilding" era, even though "FTFF" took 20 years. Exposé and Spaces bugs are still in Stage Manager.

(Random re-binding advice: Do not re-bind ⌃N. It will crash the menu bar any time your pointer brushes the Help menu. ⌃N is very handy there though, using the Help menu for man pages is much easier.

I despise Catalyst apps. I don’t think Apple has any true Mac developers left on their teams.

Leave a Comment