Using it on Linux
On Linux, Catchtype is an IBus input method. IBus is the input method framework most Linux desktops include; input methods such as Korean plug into it. It appears in your input sources as Korean (Catchtype), and once picked it fixes 한/영 as you type. It is an early version, tested only on X11 and GNOME Wayland in containers.
Install
It runs on Ubuntu 22.04, Debian 12, Fedora 36 or later (IBus 1.5.26 or later). Get the files from the download section.
On Ubuntu and Debian, install the .deb from the folder you downloaded it to (usually ~/Downloads).cd ~/Downloadssudo apt install ./catchtype_0.3.0-beta.8.1_amd64.deb
On other distributions, install IBus first (sudo dnf install ibus on Fedora, sudo pacman -S ibus on Arch), then install from the unpacked tar.gz folder. It goes into /usr/local; use --prefix /usr to change that.tar xzf catchtype-0.3.0-beta.8.1-linux-amd64.tar.gzcd catchtype-0.3.0-beta.8.1-linux-amd64sudo ./install.sh
Then run ibus restart, or log out and back in.
Turn it on in GNOME (Ubuntu and Fedora default)
Go to Settings → Keyboard → Input Sources → + → Korean and add Korean (Catchtype).
Pick Korean (Catchtype) with Super+Space (or the input source menu in the top bar). When a single 가 or A shows in the top bar, it is running.
In a text editor, type dkssud with English selected (A). If it turns into 안녕, you are done.
KDE Plasma and other desktops
First make IBus your input method. On Ubuntu and Debian based systems, run im-config -n ibus and log in again. Elsewhere, set GTK_IM_MODULE=ibus, QT_IM_MODULE=ibus and XMODIFIERS=@im=ibus in your user environment and log in again.
Open ibus-setup, go to Input Method → Add → Korean → Catchtype, then pick it in the IBus panel.
On KDE Wayland, choose IBus Wayland in System Settings → Keyboard → Virtual Keyboard. KDE Wayland has not been tested yet.
If you use fcitx5 or kime
fcitx5 is another input method framework that does the same job as IBus, and kime is a separate Korean input method. Catchtype runs only in IBus, so neither is supported yet.
Check which input method you use. If you see fcitx or kime, switch to IBus.echo $GTK_IM_MODULE $QT_IM_MODULE
On Ubuntu and Debian, switch with im-config -n ibus and log in again. To go back, run the same command with your previous input method (for example im-config -n fcitx5).
The 한/영 key
The 한/영 key and Shift+Space switch between Korean and English. Press it right after an automatic change to get back what you typed. On keyboards without a 한/영 key, use Shift+Space.
To use the right Alt key as 한/영 on GNOME, turn on this layout option (also in GNOME Tweaks → Keyboard → Additional Layout Options). If you already use other xkb options, add it to that list.gsettings set org.gnome.desktop.input-sources xkb-options "['korean:ralt_hangul']"
Ctrl+Alt+W pauses automatic switching and turns it back on. While paused, it is a plain two-set Korean input method that changes nothing on its own.
Turning it off for one app
Choose "Turn Off in <app>" in the menu: the input source menu in the GNOME top bar, or the IBus panel elsewhere.
That item appears only when IBus reports the app name. It needs IBus 1.5.27 or later, and on GNOME Wayland every app looks like one, so it cannot be turned off per app. Qt apps and XIM apps such as xterm do not report their names either. Use Ctrl+Alt+W there.
Uninstall
Remove the .deb with sudo apt remove catchtype. For the tar.gz, run sudo ./install.sh --uninstall in the unpacked folder (with the same --prefix you installed with).
Then remove Catchtype from your input sources and run ibus restart. Settings and logs stay in ~/.config/catchtype and ~/.local/state/catchtype; delete them too if you no longer need them.
If something is wrong
A faded 가A in the top bar means it is turned off. Turn it on with Ctrl+Alt+W or "Automatic Korean/English Switching" in the menu.
If Korean (Catchtype) is missing from the input source list, run ibus restart or log in again. If it is still missing, check above whether you use an input method other than IBus.
If it fixes things oddly in some app, send us the "입력창:" lines from the system log (app name and the method it picked). Your keys are not in that log.journalctl -t catchtype