keyboardio / Chrysalis

Graphical configurator for Kaleidoscope-powered keyboards
https://github.com/keyboardio/Chrysalis#chrysalis
GNU General Public License v3.0
493 stars 65 forks source link

Globe Key (🌐) Not Working on macOS Sonoma #1310

Closed nlordell closed 2 months ago

nlordell commented 10 months ago

Describe the bug Globe key no longer seems to work on macOS Sonoma.

To Reproduce Steps to reproduce the behavior:

  1. Save a layout with the 🌐 key (under "Mac/iPad Keys” section)
  2. Connect keyboard to a computer on macOS Sonoma and press the configured 🌐 key, nothing happens (I expect the emoji picker to open given my current configuration - the macOS default)

Expected behavior Expect the 🌐 key to open the emoji picker.

Screenshots chrysalis-debug.json.txt

Keyboard and emoji picture should be configured correctly:

image

image

I tested other macOS keys (lock screen, exposΓ©, mission control) and they work well.

Desktop:

Additional context I’m not 100% sure, but I remember the globe key working under macOS Ventura (13.x). I unfortunately don’t have access to a computer running that version of macOS anymore to test whether or not my memory is correct.

roijalbaker commented 10 months ago

I can partially replicate this bug. I am also already on Sonoma, my globe key gives me a list of keyboards to choose from. The behaviour I see is:

I tried mapping the ctrl key to globe in the Mac keyboard settings, then hitting ctrl does give me the list.

Screenshot 2023-10-02 at 14 23 15
roijalbaker commented 10 months ago

@nlordell I do have a tip, you can map a key to ctrl+cmd+space, that will give you an emoji picker (though it disappears after having picked an emoji)

obra commented 10 months ago

There are two different ways the globe key gets used - on its own and as part of a chord.

In a situation where Globe on its own doesn't work, does Globe-F full-screen the current window? IIRC "tap globe on its own" is not something that ever worked for external third-party keyboards like ours.

On Mon, Oct 2, 2023 at 9:55β€―AM roijalbaker @.***> wrote:

@nlordell https://github.com/nlordell I do have a tip, you can map a key to ctrl+cmd+space, that will give you an emoji picker (though it disappears after having picked an emoji)

β€” Reply to this email directly, view it on GitHub https://github.com/keyboardio/Chrysalis/issues/1310#issuecomment-1743396334, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2C2X6ITRJBRL25KBZTX5LWXJAVCNFSM6AAAAAA5KQPNMWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBTGM4TMMZTGQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

nlordell commented 10 months ago

I do have a tip, you can map a key to ctrl+cmd+space

Thanks for the tip! I used to use cmd + ctrl + e to open the emoji picker. Now that I know 🌐 chords work, I might just try 🌐 + e πŸ˜›.

In a situation where Globe on its own doesn't work, does Globe-F full-screen the current window?

Yes it does.

IIRC "tap globe on its own" is not something that ever worked for external third-party keyboards like ours.

So… weird… Some background on why I thought this was working. I used to have the emoji picker configured to cmd + ctrl + e (similar to what @roijalbaker suggested) and configured the keyboard to send that chord. However, at some point I noticed that Chrysalis added β€œmacOS and iOS key” support including the globe key (I think around version 0.12?). In order to be able to use the globe key on my laptop without my keyboard with my current muscle memory, I decided to configure it back to the 🌐 key. I remember trying it out and it working (otherwise, I don’t think I would have persisted the configuration).

That being said, I may just be remembering wrong and briefly searching online also suggests that the 🌐 key is not properly supported on macOS with 3rd party keyboards, so this is looking to likely be user error/me misremembering.


With that in mind, I think its fine to close this issue.

nlordell commented 10 months ago

Another interesting fact, 🌐 + e seems to bound by default to opening the emoji picker (edit: This appears to be application specific), but can’t seem to find a way to configure a single key to send the 🌐 + e chord through in Chrysalis.

NicholasSterling commented 2 months ago

The Globe key does nothing when I press it on the Model 01, but works fine when I press it on the laptop keyboard. No emoji picker, no quick notes or notification center. If I type 🌐 + q while a terminal window has focus, I get an ordinary q on the command line. The globe key assignment used to work for me, but it has stopped working, and I'm not sure when. I tested another mapping on that key to make sure the switch still works. As of May 2024, is the Globe key assignment working for others? I'm using the latest keyboard firmware (0.92.6+116) and latest Mac OS (Sonoma 14.5), Apple Silicon.

obra commented 2 months ago

Digging into this more, what I'm seeing is that the globe key mapped through Chrysalis acts as " 🌐" when tapped twice to start dication, but not as the globe modifier or when configured to open the emoji picker- Reading up elsewhere, this is consistent with what other keyboard firmwares are seeing. Apple isn't exposing globe-as-modifier through standard USB peripherals.

It appears that the universally recommended workaround is to map "Caps lock" to "fn" for a given keyboard in system settings:

image

It looks like what's going on with apple's first-party keyboards is that they have a custom USB HID device descriptor that maps 'globe' to HID page 0xFF key 0x03. Without adding a custom apple endpoint, I'm not convinced that any keyboard will be able to generate the true globe key.

If your goal were just the emoji picker, mapping a key to Control + Cmd + Space would do it:

image

It's far from ideal, but looks like that's what apple gives us these days.

NicholasSterling commented 2 months ago

Thanks -- mapping Caps Lock to fn for the Model 01 in 'System Settings / Keyboard / Custom modifier keys' and mapping a physical key to Caps Lock in Chrysalis gets me all the Globe key behavior I was looking for: 🌐 + q for quicknotes, 🌐 + n to open the notification center, 🌐 + e (or just 🌐 🌐 )to open the emoji picker, etc. Perfect.

lldata commented 2 months ago

Digging into this more, what I'm seeing is that the globe key mapped through Chrysalis acts as " 🌐" when tapped twice to start dication, but not as the globe modifier or when configured to open the emoji picker- Reading up elsewhere, this is consistent with what other keyboard firmwares are seeing. Apple isn't exposing globe-as-modifier through standard USB peripherals.

It worked for me until some point in 2023. I have been upgrading both MacOS and Crysalis, so hard to say which changed. But @obra do you feel sure that this is a change on the MacOS side, since you close the ticket? My fn+space is mapped to globe. I am positive that it used to work, no workarounds required.

obra commented 2 months ago

I'm pretty sure that things have been changed/tightened up on the macos side.