21

I'm a new member of apple products community and I'm learning how to setup a process I've got used to. One of inconveniences is language switch. When I'm trying to change language I get a popup with language list (see pic below). The problem is it introduces a small delay before change actually applies (which meh but I can live with it) and the bigger problem that if your mouse is around screen center then mouse pointer overrides language selection and you can stuck with one language unless you move the cursor somewhere

enter image description here

I wonder if there is any way to workaround it with OS X built in tools. I'd really like to not install any 3rd party tools or assigning switch to another key - this one works just fine, the only problem is this pop up.

3
  • 2
    What key are you using to switch? Fn, Capslock, or control space? Try all three and see which works best for you. support.apple.com/guide/mac-help/… Commented Dec 20, 2021 at 17:07
  • 3
    It's a FN key (with globe painted on it). It's MBP2021. I'd like to not use capslock or ctrl+space if possible, Fn works just fine except this one problem. I wonder if I can keep using it but hide just popup Commented Dec 20, 2021 at 18:05
  • 1
    Fixed in MacOS 14... Commented Oct 1, 2023 at 22:13

5 Answers 5

6

I fixed this problem by redirecting fn (change input source) to Left Ctrl+Space (previous input source) through a complex rule for Karabiner-Elements. This fix involves a 3rd party app, but I am not sure whether it is possible to fix this problem without such apps. The key for changing the input source remains the same.

Note that in the Keyboard section of System Preferences the fn(globe) should be put to "Do Nothing" in the Keyboard tab and the previous input source shortcut to Left Ctrl+Space in Hotkeys tab.

The complex rule was added to the app through the karabiner.json file in the .config folder. The rule is:

`{ "description":"fn -> previous input source", "manipulators":[ { "from":{ "key_code":"fn" }, "to":[ { "key_code":"fn" } ], "to_if_alone":[ { "key_code":"spacebar", "modifiers":[ "left_control" ] } ], "type":"basic" } ] }` 
2
  • this is not good solution if your keyboard have special language switch button. Commented Apr 12, 2022 at 15:19
  • 1
    This is a perfect solution, thank you a lot! Just don't forget to disable standard language switch for fn in keyboard->keyboard. Fast language switch without any ugly pop-ups, I am so happy! Commented Nov 17, 2022 at 20:09
3

This is actually possible without any third-party apps, the macOS System Settings are just very confusing.

To disable the annoying language switching when pressing the globe key go to: Keyboard > Press globe key to... and set it to Do nothing.

You can still use the globe key to toggle fn/function keys! Just make sure to keep Keyboard > Keyboard Shortcuts > Modifier key > Globe set to Globe.

Finally, set up an alternative keyboard combo on Keyboard > Keyboard Shortcuts > Input sources

6
  • I don't think you understood the question. It asks how you can get rid of the popup menu so there is no delay in switching languages. I think your answer just stops the user from switching languages at all. Commented Feb 8, 2024 at 15:12
  • @TomGewecke ah yes, I edit the answer to add the final step if you want that Commented Feb 8, 2024 at 15:23
  • @TomGewecke although the question says "it introduces a small delay before change actually applies (which meh but I can live with it)" Commented Feb 8, 2024 at 15:24
  • Isn't that just the same answer given by Sinkeat last August, namely use a different shortcut? The OP also told us he wanted to keep using Fn/Globe without the popup. Commented Feb 8, 2024 at 16:15
  • no, my answer allows the globe key to still toggle between fn keys and function keys... Commented Feb 9, 2024 at 7:19
2

In system settings, there are 3 default keyboard shortcuts to change input source. Below only the 3rd way is without popup dialog:

  1. change input source: globe
  2. select the previous input source: control + space
  3. select next source in input menu: control + option + space

enter image description here

If your only issue is with the popup, you may use just that.

It's shortcut is configurable to special keys, but it just doesn't accept globe to my dismay.

1
  • Thanks. In order to use ^Space for "Select next source in Input menu" I had to change the keybind for the other one first. Simply disabling it didn't work for some reason. Commented Jun 20, 2024 at 8:17
2

Macos 14 removed this popup so the question is therefore answered.

3
  • 8
    The new popup is horrible, it's a mess and has a really bad delay. Thankfully there's a solution at github.com/Nikeev/LangSwitch for future readers :) Commented Oct 4, 2023 at 21:39
  • I actually need this popup though. With multiple input methods, without the currently selected input method showing up at the center of the screen you can't easily know which one is currently being switched to. Tried to find a solution online but every question was about how to not show it 😅 Sounds like most people's concern is only about switching between two input methods, in which case indeed the popup is unnecessary. I guess one alternative would be to allow me to switch to any one of the 5 input methods with a specific shortcut (e.g. Cmd + Opt + 3) Commented Jan 10 at 13:24
  • I see this question about the text insertion point indicator, which for some reason doesn't show up on my Macbook. I'm trying to enable it: stackoverflow.com/questions/77248249/… Commented Jan 10 at 13:29
1

Working solution: https://github.com/norflin321/fn-lang-switcher. With use of python script, but the result is identical except there is no popup and not way to select wrong language with mouse, and it works a little bit faster!

2
  • Hi. Looks cool but it seems that it only supports 2 layouts and it won't probably work in my case (Russian - PC). I guess script should be a bit more sophisticated :) Commented May 9, 2022 at 7:01
  • i have Russian layout too, it works Commented Aug 3, 2022 at 16:35

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.