If you do not want to add this repository as an APT source, install the latest
.deb currently published in the GitHub Pages APT repository:
deb_path="$(curl -fsSL https://codevilot.github.io/korean/dists/stable/main/binary-amd64/Packages | awk '/^Package: korean$/{found=1} found && /^Filename: /{print $2; exit}')"
curl -fL -o /tmp/korean_amd64.deb "https://codevilot.github.io/korean/${deb_path}"
sudo apt install /tmp/korean_amd64.deb
korean startkorean is a macOS-like Korean input method for Linux. It provides a native IBus engine for two-beolsik Hangul composition and a small CLI for setup, diagnostics, and simulation.
The package name is korean, so the intended user install flow is:
sudo apt install koreanFor GitHub-hosted releases, users must add this repository's APT source once before running that command.
After GitHub Pages is enabled for this repository and the release workflow has published the public/ APT tree, install with:
echo "deb [trusted=yes] https://codevilot.github.io/korean stable main" | sudo tee /etc/apt/sources.list.d/korean.list
sudo apt update
sudo apt install koreanOn the next GNOME login, the package automatically registers Korean as an IBus source. The Korean engine handles Caps Lock internally for Korean/English mode switching. To apply it immediately in the current session, run:
korean startThe repository is currently unsigned, so the command above uses trusted=yes. For a production repository, sign dists/stable/Release and replace trusted=yes with a signed-by= keyring entry.
Build and install locally on Ubuntu/Debian:
sudo apt update
sudo apt install -y build-essential cargo rustc pkg-config libibus-1.0-dev libglib2.0-dev libevdev-dev libudev-dev dpkg-dev apt-utils
./scripts/package-deb.sh
sudo apt install ./dist/korean_*_amd64.deb
korean start./scripts/package-deb.sh
./scripts/build-apt-repo.sh dist publicThe generated repository layout is written to public/ and is suitable for GitHub Pages. The GitHub Actions workflow in .github/workflows/apt.yml runs tests, builds the .deb, builds the APT repository, uploads the .deb artifact, and deploys the APT tree to Pages when main or a v* tag is pushed, or when the workflow is run manually.
See docs/PACKAGING.md for the Debian, Ubuntu, and PPA packaging path.
korean start
korean stop
korean status
korean doctor
korean speed 250 20
korean update
korean simulate gksrmf
korean resetTo update from the GitHub Pages package repository without manually copying the latest version number:
korean updateKeyboard repeat can be tuned at any time:
korean speed
korean speed 250 20Without arguments, korean speed prints the current repeat settings. The first value is the repeat delay in milliseconds, and the second value is the repeat interval in milliseconds. Larger values feel slower. The setup command accepts the same tuning:
korean setup --repeat-delay-ms 220 --repeat-interval-ms 20Expected simulation:
g -> ㅎ
k -> 하
s -> 한
r -> 한ㄱ
m -> 한그
f -> 한글
final: 한글
Install build dependencies, then run the dev engine from the working tree:
sudo apt install -y build-essential cargo rustc pkg-config libibus-1.0-dev libglib2.0-dev libevdev-dev libudev-dev
./scripts/dev-apply.shDuring development, tune key repeat with:
KOREAN_DEV_REPEAT_DELAY_MS=250 KOREAN_DEV_REPEAT_INTERVAL_MS=20 ./scripts/dev-apply.shFor a rebuild/restart loop:
./scripts/dev-watch.shThe script selects Korean Dev and restarts IBus. If the current session does not pick it up, select Korean Dev from GNOME Settings > Keyboard > Input Sources or from the top-bar input source menu.
korean-coreis a pure Rust two-beolsik composition engine.korean-stateowns input mode transitions.korean-ibusis the IBus engine and handles Hangul preedit/commit behavior.koreanis the CLI installed at/usr/bin/korean.- Caps Lock Korean/English switching is handled inside the Korean IBus engine.
korean-capsdis optional infrastructure for future Caps Lock tap/hold behavior.
- The package depends on IBus and a Korean-capable font package (
fonts-noto-cjkorfonts-nanum). - The engine id is
korean; override it for development withKOREAN_ENGINE. - The IBus service defaults to
org.freedesktop.IBus.Korean; override it for development withKOREAN_IBUS_SERVICE.