사용자 도구

사이트 도구


linux:inputmethod:ibus

iBus

기본 설정

  • ibus 를 사용할 경우 2021년 현재 한글관련 문제점들을 회피하기 위해 다음 설정을 기본으로 한다.
# chrome/electron 한글입력
gsettings set org.freedesktop.ibus.engine.hangul preedit-mode 'word'
 
# intellij 등 현대 애플리케이션 사용시에는 use-event-forwarding true 여야 한다.
gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding true
 
# 옛날 QT 애플리케이션(특히 zoom) Enter/화살표/backspace가 이상한 문자를 
# 입력하는 문제가 발생하면 일시적으로 false 로 변경한다.
gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding false

vim/ESC 를 통한 영문모드로 변경

  • org.freedesktop.ibus.engine.hangul off-keys 값을 'Escape'로 지정하면 Vim 에서 ESC 누를 때 영문모드로 변경된다.
  • 반대로 org.freedesktop.ibus.engine.hangul on-keys 도 있다. 기본 비어있음.

Emoji 단축키 충돌

  • 아래 두가지 단축키 충돌이 발생한다.
  • <Ctrl><Shift>e : emoji 입력 → <Shift><Super>e 로 변경
  • <Ctrl><Shift>u : unicode 입력 → 삭제
  • ibus-setup 을 실행하고 위 두가지 단축키를 다른 것으로 변경해준다. https://askubuntu.com/a/1159087/287371
gsettings set org.freedesktop.ibus.panel.emoji hotkey "['<Shift><Super>e']"
# unicode 는 안사용해서 삭제
gsettings set org.freedesktop.ibus.panel.emoji unicode-hotkey ""

문제점들

  • 아래 문제점들은 버전에 따라 발생안할 수 있다.

Chromium/Electron 애플리케이션에서 한글 글자 올바로 입력 안되는 현상

  • Google Chrome 계열 브라우저 혹은 Electron 애플리케이션에서 한글 입력이 올바로 안되고 글씨의 일부가 사라지는 현상이 발생한다.
  • preedit-mode 가 원래 syllable인데, 이를 word로 변경해주니까 글씨 조합상태가 잘 안나오지만 입력은 잘 됐다.
gsettings set org.freedesktop.ibus.engine.hangul preedit-mode 'word'
 
# 되돌리기
gsettings set org.freedesktop.ibus.engine.hangul preedit-mode 'syllable'

KDE/QT 애플리케이션 한글 모드에서 backspace 등 오동작

# QT 최신버전에서는 해결되므로 잘 될 경우에는 할 필요 없고, 잘 안되면 아래처럼 설정한다.
gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding false
# 잘 되면 다시 true로 돌려둔다.
  • 일부 애플리케이션은 저 설정을 할 경우 입력이 안 될수도 있다. IntelliJ IDEA Config 설정 가 그렇다. intellij 사용시에는 위 옵션을 켜준다.
gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding true
  • ibus-toggle-use-event-forward.sh
#!/bin/sh
if $(gsettings get org.freedesktop.ibus.engine.hangul use-event-forwarding); then
    gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding false
else
    gsettings set org.freedesktop.ibus.engine.hangul use-event-forwarding true
fi

echo "Current ibus use-event-forwarding : $(gsettings get org.freedesktop.ibus.engine.hangul use-event-forwarding)"

삭제하지 않고 무시하기

  • ibus 는 Gnome 셸 환경에서 무조건 실행이 되는 상태인데, 다른 입력기를 사용하고자 하지만 삭제는 할 수 없는 상황이라면 ibus-daemon의 이름이라도 변경해두어야 한다. InputMethodBuster - Debian Wiki
sudo mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.distrib
gsettings set org.gnome.settings-daemon.plugins.keyboard active false

reenable

sudo mv /usr/bin/ibus-daemon.distrib /usr/bin/ibus-daemon
gsettings set org.gnome.settings-daemon.plugins.keyboard active true
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'ibus'>}"
  • 혹은 ibus 는 계속 실행하더라도 영문을 제외한 다른 입력기들을 모두 제거해 두면 된다.

iBus와 한영키

  • 우분투 13.10는 한영키가 <Super>space로 지정돼 있다. <Shift>spaceHangul 노트북은 Alt_R로 변경 필요.
  • Linux XKB 를 통해 오른쪽 Alt, Ctrl 을 한/영, 한자키로 변경할 수 있다.
  • ibus-setup에서 한영 전환키를 등록할 때 아무런 조합할 키 없이 대소문자 정확이 Hangul이라고 지정해서 추가.

ibus-typing-booster

Switcher Window 안 나오게하기

  • 2020년 이후 발생안함.
  • 한영전환을 하면 갑자기 화면 가운데에 입력기 목록이 뜨는 현상이 발생한다.
  • 이는 한영 전환키를 누른 상태로 특정 시간이 지나면 나오는 것인데, 이로인해 오히려 입력기 전환에 방해가 되기도 한다.
  • dconf-editor를 실행하고 desktop → ibus → general에서 switcher-delay-time이 기본 400으로 돼 있는데 이를 1000(1초) 등 더 긴 값으로 설정해준다.
  • 아니면 차라리 5등의 값으로 아예 일관성 있게 빨리나오게 하는게 나을 수도 있다.
linux/inputmethod/ibus.txt · 마지막으로 수정됨: 2021/11/11 16:01 저자 kwon37xi