I fixed this problem by redirecting fnfn (change input source) to lftcntrl+spcbrLeft 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 KeyboardKeyboard section of System PreferencesSystem Preferences the fnfn(globe) should be put to "Do Nothing" in Keyboardthe Keyboard tab and the previous input source shortcut to lftcntrl+spcbrLeft Ctrl+Space in HotkeysHotkeys tab. The
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" } ] }
`{ "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" } ] }`