I tried to use Korean keyboard input, but it seems multilingual input isn’t as easy on openSUSE as it is on Ubuntu. I expected to simply add Korean to the list of keyboards, and have everything work out of the box.
Weirdly enough, adding “Korean” to KDE’s keyboard settings Search -> “Keyboard” -> “Layouts” -> Add Korean didn’t do anything. I couldn’t type Korean and the keyboard still only showed English characters.
So I tracked it down, and turns out the KDE Keyboard “Layouts” feature doesn’t do anything?! It’s supposed to integrate with one of many input methods like ibus and fcitx.
Well I couldn’t be bothered dealing with incomplete integration, so I just decided to install ibus raw since I don’t write Korean often anyway.
Unfortunately, I ran into a breaking bug where the IBus notification panel would pop up randomly occasionally. Because of that, I switched to fcitx.
Setting up Korean keyboard
1. Reset KDE “Keyboard” layout settings, particularly clear the keyboard layouts.
(It won’t have any effect. Basically, they expect distros to do communication between their settings, and Input Methods like fcitx. openSUSE doesn’t seem to have a complete implementation, so I won’t bother with it. If you add a layout here, it seems all it’ll do is add another confusing layout indicator that doesn’t work besides fcitx’s own.)
2. Install fcitx fcitx-hangul kf5-kcm-fcitx
3. Go to fcitx configuration
4. As “Current Input Method”, set “Keyboard – English (US)” and “Hangul”. You might like to disable “Only show current language” checkbox to search for Hangul.
5. Enter the following into your ~/.xprofile
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"
6. Restart your system to effect changes for the entire system.
That’s it! Now you can use “Ctrl-Space” to switch between the two inputs. It also autostarts on boot automatically without me doing anything special.
References
For reference, the default values for IM environmental variables on openSUSE Tumbleweed (2018-11-22) are:
> echo "$GTK_IM_MODULE"
cedilla
> echo "$QT_IM_MODULE"
xim
> echo "$XMODIFIERS"
@im=local
Reference on input environmental variables: https://unix.stackexchange.com/questions/260601/understanding-setting-up-different-input-methods
Reference on KDE Input Methods, and future direction: https://mail.kde.org/pipermail/plasma-devel/2017-April/068978.html