GithubHelp home page GithubHelp logo

libhangul / ibus-hangul Goto Github PK

View Code? Open in Web Editor NEW

This project forked from phuang/ibus-hangul

63.0 63.0 18.0 404 KB

The hangul engine for IBus

License: GNU General Public License v2.0

Shell 1.78% Python 10.18% C 73.81% Makefile 10.27% M4 3.96%

ibus-hangul's Introduction

ibus-hangul's People

Contributors

changwoo avatar choehwanjin avatar drm00 avatar encukou avatar epico avatar fujiwarat avatar hedone21 avatar jincreator avatar lidaobing avatar phuang avatar t-chaik avatar ueno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ibus-hangul's Issues

[기능추가] ESC키를 누르면 자동으로 영어로 바뀌는 기능추가

안녕하세요.

vim을 사용하다보면, 한글로 입력하다가 입력모드 / 명령모드로 전환시에 영어로 변환되지 않아 불편을 겪은 일이 많이 있습니다. 이는 다른 분들도 마찬가지 일거라 생각합니다.

따라서 ESC키를 누르면 자동으로 영어로 바뀌는 기능을 추가하려고 했는데, 이미 조환진님이 뼈대를 만들어 두셨더군요. 따라서 해당 기능을 사용할 수 있는 UI를 추가하였는데, UI 변화다 보니 토론이 필요할 것 같아 이슈 남깁니다. 해당 기능을 추가하는 것에 대해 어떻게 생각하시나요?

관련 기능은 https://github.com/hedone21/ibus-hangul 를 클론하면 사용 가능합니다.
해당 푸쉬는 #76 에 있습니다.

ibus-hangul not working with hangul toggle keys

I've been using ibus-hangul for few years now and after a system update, it suddenly stopped working. ibus menu do popup when I press the keyboard shortcuts. But even after pressing toggle key for hangul the input language does not change.

I do get an warning message saying

/usr/share/ibus-hangul/setup/main.py:298: DeprecationWarning: bind_textdomain_codeset() is deprecated
  gettext.bind_textdomain_codeset(config.gettext_package, "UTF-8")

but it still let's me change the toggles keys, but it wouldn't work...

Help please..?

Thank you.

GSettings 키 이름이 관례와 맞지 않음

사소한 사항입니다.

지금은 GSettings 키 이름이 "AutoReorder", "HangulKeyboard" 식으로 되어 있는데, 특별히 코드에서 막지는 않는 것 같지만 GSettings 문서를 보면 소문자에 - 문자로 연결하도록 그렇게 정해져 있습니다. 참고:

https://developer.gnome.org/gio/2.39/GSettings.html

Key names are restricted to lowercase characters, numbers and '-'. Furthermore, the names must begin with a lowercase character, must not end with a '-', and must not contain consecutive dashes.

1.5.0 failed to configure

I am building ibus-hangul from git tag, and getting the following errors. The command I used was
./autogen.sh --prefix=/usr --libexecdir=/usr/lib/ibus.

/usr/bin/gnome-autogen.sh
checking for automake >= 1.8...
  testing automake... found 1.14.1
checking for autoreconf >= 2.53...
  testing autoreconf... found 2.69
checking for intltool >= 0.25...
  testing intltoolize... found 0.50.2
checking for pkg-config >= 0.14.0...
  testing pkg-config... found 0.28
Checking for required M4 macros...
Processing ./configure.ac
Running intltoolize...
Running autoreconf...
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
Copying file ABOUT-NLS
Copying file config.rpath
Copying file m4/codeset.m4
Copying file m4/gettext.m4
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intlmacosx.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/inttypes_h.m4
Copying file m4/lcmessage.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/lock.m4
Copying file m4/longlong.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/printf-posix.m4
Copying file m4/progtest.m4
Copying file m4/size_max.m4
Copying file m4/stdint_h.m4
Copying file m4/uintmax_t.m4
Copying file m4/visibility.m4
Copying file m4/wchar_t.m4
Copying file m4/wint_t.m4
Copying file m4/xsize.m4
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/[email protected]
Copying file po/[email protected]
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
autoreconf: running: aclocal --force --warnings=no-portability -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force --warnings=no-portability
autoreconf: running: /usr/bin/autoheader --force --warnings=no-portability
autoreconf: running: automake --add-missing --copy --force-missing --warnings=no-portability
configure.ac:78: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
configure.ac:78: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
configure.ac:78: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.
configure.ac:34: installing './compile'
configure.ac:52: installing './config.guess'
configure.ac:52: installing './config.sub'
configure.ac:33: installing './install-sh'
configure.ac:33: installing './missing'
Makefile.am: installing './INSTALL'
setup/Makefile.am:27: installing './py-compile'
src/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
autoreconf: Leaving directory `.'
Running ./configure --enable-maintainer-mode --prefix=/usr --libexecdir=/usr/lib/ibus ...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking nano version... 0 (release)
checking whether build environment is sane... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether ln -s works... yes
checking for library containing strerror... none required
checking for ANSI C header files... (cached) yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether NLS is requested... yes
checking for intltool >= 0.35.0... 0.50.2 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.20.1
checking for XML::Parser... ok
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for IBUS... yes
checking for HANGUL... yes
checking for env... /usr/bin/env
checking for a Python interpreter with version >= 2.5... python
checking for python... /usr/bin/python
checking for python version... 3.4
checking for python platform... linux
checking for python script directory... ${prefix}/lib/python3.4/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python3.4/site-packages
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for xgettext... (cached) /usr/bin/xgettext
checking for msgmerge... (cached) /usr/bin/msgmerge
checking for ld used by GCC... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking that generated files are newer than configure... done
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating po/Makefile.in
config.status: creating Makefile
config.status: creating ibus-hangul.spec
config.status: creating src/Makefile
config.status: creating src/hangul.xml.in
config.status: creating setup/Makefile
config.status: creating icons/Makefile
config.status: creating data/Makefile
config.status: creating m4/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing po/stamp-it commands
config.status: error: po/Makefile.in.in was not created by intltoolize.

1.5.1 - libhangul 최소 버전 조정 필요

hangul_init(), hangul_fini() 때문에 1.5.1은 libhangul 0.1.0 릴리스 버전에서는 빌드되지 않습니다. libhangul 릴리스 뒤에 libhangul 최소 버전을 바꿔서 지정해야 할 것 같습니다.

영문모드 키보드 레이아웃을 잘못 불러오는 문제

현재 제가 사용하는 키보드 레이아웃 설정은 US 레이아웃인데 ibus-hangul에서 영문을 사용할 시 키보드 레이아웃 설정이 아닌 로케일 설정에서 레이아웃을 고르는 버그가 있습니다.

언어설정은 en_GB나 eo(에스페란토)를 사용하고 있는데 ibus에 기본으로 존재하는 영문 입력기에서는 정상적으로 US 레이아웃을 불러오지만 ibus-hangul에 있는 영문모드에서만 이런 현상이 일어나고 ibus 설정에 존재하는 시스템 키보드 레이아웃 사용 옵션을 켜나 끄나 같은 증상이 발생합니다.

이와 별개로 영문모드에서 사용 할 레이아웃을 옵션으로 고를 수 있게 하는 것은 어떤가요?

bin/ibus-setup-hangul symlink 삭제 건의

/usr/bin/ibus-setup-hangul -> /usr/lib/ibus/ibus-setup-hangul symlink가 있는데요. (prefix /usr라고 가정하고) 삭제 건의합니다. 다른 ibus 엔진을 봐도 setup은 /usr/lib/ibus/ 아래에만 있고 bin 아래에는 없는 경우가 대부분입니다. ibus-setup이나 gnome-control-center에서 들어가는 게 많아서 커맨드라인에서 직접 실행하는 일이 별로 없다고 보이는데요.

ibus-setup.desktop 파일에 Exec=ibus-setup-hangul key가 문제가 있을 수 있는데 Exec=@libexec@/ibus-setup-hangul 식으로 해서 configure에서 "/usr/lib/ibus"로 대체하게 하거나 할 수 있을 겁니다.

키맵이 다른 키보드에서 ibus-hangul 사용 시 US키보드 레이아웃의 기호가 출력됨

OADG-109A
http://commons.wikimedia.org/wiki/File:KB_Japanese.svg
위쪽은 제가 사용하는 키보드입니다. 아래쪽의 일반적인 US키보드와는 기호와 키의 배치가 다릅니다. (점선으로 강조되어 있음)
US
http://commons.wikipedia.org/wiki/File:KB_United_States-NoAltGr.svg

SCIM에서는 한글 입력 상태(scim-hangul을 사용)에서도 시스템에 지정된 키맵을 유지해줬습니다. 예를 들면, 쌍따옴표를 입력하기 위해 Shift+2 를 눌렀습니다.
하지만 ibus-hangul을 사용할 때 쌍따옴표를 입력하기 위해 Shift+2 를 누르면 US키보드의 Shift+2 에 배당된 @ 기호가 출력됩니다. (영어나 일본어 입력과 같이 ibus-hangul을 사용하지 않을 때는 시스템 키맵의 기호가 입력됩니다.)
게다가 반각/전각 키는 ibus on/off 키이기 때문에 한글 입력 도중에는 `와 ~는 입력조차 할 수 없습니다.

ibus-hangul이 이렇게 시스템의 키맵을 무시하고 기호까지 강제로 처리하도록 되어있나요? 혹은 해결법이 있는데 제가 찾지 못하는 것인가요?

preedit text대신 surrounding text 사용

리눅스의 한글 입력기 관련한 문제 중 가장 곤란한 것이 있다면 preedit text 관리일 것입니다.
Focus out이나 Reset 에서 늦지 않게 preedit text를 commit해야 하는데 문제가 좀 있습니다.

ibus의 경우 reset 상황에서 뒤늦게 commit signal이 도착하므로 reset 이후 commit되어 잘못된 위치에 입력될 수 있습니다. 또 클라이언트 구현에 버그가 있어서 reset이 제때 안불리는 경우가 있을 수 있습니다.

이런 여러가지 문제점을 고려할때에 한국어 입력기 구현의 패러다임을 좀 바꾸는 것이 어떨까 생각중입니다. 한국어 입력기는 preedit text를 하드하게 사용하여 구현되어 있는데요. 이것이 좀 불안합니다.

그래서 preedit text대신 surrounding text를 사용하게 되면 모든 텍스트가 이미 입력 완료된 상태가 되므로 텍스트를 잃어 버리거나 텍스트가 옮겨지는 문제가 없어질 것으로 예상합니다.

대신 사용자는 조합중인 글자 상태를 알 수 방법이 없어지게 됩니다.
또 surrounding text를 지원하지 않는 클라이언트들(예전 XIM 클라이언트들)은 문제가 그대입니다.

요즘 드는 생각은 이 단점보다 reset, focus 관련 문제가 더 심각하므로 surrounding text를 사용하여
입력을 처리하는 것을 고려해볼 필요가 있는 것 같습니다.

관심있는 분들의 의견 바랍니다.

MATE, Unity, XFCE에서 ibus-hangul을 쓰면 한/영 구별이 안 됩니다.

제가 일본어도 ibus로 치니깐 ibus의 Next Input Method 키보드 shorcut을 한/영키로 설정할 수가 없으므로 ibus-hangul에서 한글 토글 키를 한/영키로 설정해서 사용하고 있습니다.

ibus-hangul가 한글 모드와 영문 모드일 때 모두 시스템 트레이 아이콘이 태극기 모양으로 떠서 한/영 구별이 안 됩니다. gnome shell에서는 ibus 아이콘을 보여주지 않고 자체적으로 한/영 표시를 해주므로 문제가 없습니다.

ibus-hangul이 영문 모드일 때 아이콘이 변하면 좋겠습니다.

initial-input-mode의 기본값 설정

현재는 initial-input-mode의 기본값을 latin으로 설정하고 있습니다.

이것은 ibus-hangul이 ibus의 디폴트 입력기인 경우를 상정하고 설정한 것입니다.
이렇게 되면 처음 실행되었을때 영문 상태로 시작하게 되어 익숙한 상황이 됩니다.
현재 대부분의 윈도우 시스템에서 한글 입력기의 초기 상태는 영문이므로 이 상태가 기존 입력기 동작과 더 유사하게 됩니다.

그러나 ibus에서 여러 입력기를 스위칭하는 경우 혼란이 있을 수 있습니다.
ibus-engine-simple을 사용하다가 ibus-hangul로 바꿔도 바로 한글로 입력이 안됩니다.
이경우 영문 상태로 시작하므로 입력기를 바꿔도 입력 상태가 안바뀐 것처럼 느낄 수가 있습니다.
입력기를 ibus-hangul로 바꾸고 나서도 입력 모드를 한글 상태로 바꾸는 동작이 추가로 필요합니다.

이런 문제를 고려했을때 어떤 기본 값을 가지는 편이 좋을지 여러 의견을 듣고자 합니다.

Fedora에서는 initial-input-mode의 기본 값을 hangul로 바꾸는 패치가 적용되었다고 합니다.
https://bugzilla.redhat.com/show_bug.cgi?id=1690698

모아치기 버그. 중간에 삭제시 채움문자 남음

모아치기 때문에 생긴 것이니까 아마도 세벌식 사용할 때만 발생하는 버그처럼 보이긴 하는데요.

글자의 처음을 초성이 아닌 중성이나 종성을 먼저 치고 그 다음 다른 부분을 칠 때 입력기가 모아치기로 순서를 재조정해 주던데요, 이 때 아직 완성이 안 된 부분에 자동으로 넣어주는 채움문자가 좀 말썽을 일으키고 있습니다.
예를 들어 st를 친다면 (코딩중 영어로 string을 쓰다가 자주 이 실수를 해서요) ㄴㅓ처럼 나올텐데, 모아치기 때문에 화면에는 ᅟᅥᆫ처럼 순서를 보정해서 보여줍니다. 이 때 내부에서는 ㅓ 앞에 초성채움문자 U+115F (utf-8로 e1859f)를 자동으로 삽입하고 있습니다. 이 상황에서 마지막 초성을 잘 쓰면 글자가 완성되어 문자가 한글 음절 영역의 문자로 바뀌거나, 아니면 오타를 인지하고 바로 딜리트로 삭제하면 이 채움문자도 잘 지워줘서 문제가 없습니다.

그런데 제가 반응이 느려 str까지 쳤다면... ᅟᅥᆫㅐ가 되는데, 이 때는 채움문자를 포함한 앞의 세 문자가 변환이 되지 않고 그대로 남게 됩니다. 화면상에는 글자가 세 개만 보이까 딜리트도 세 번만 누르게 되는데 그러면 채움문자가 지워지지 않아서 데이터 공간을 차지하는데, 화면상으로는 전혀 티가 안 나니 여러가지로 난감한 일이 생기고 있습니다. 클래스 선언하는 코드에서 이 채움문자가 끼여들어간 것을 모르고 있어서 디버깅할 때 한참 헤멘 적도 있고요. (자바에서는 저 문자도 허용되는 문자라서 컴파일 에러도 안 나는 바람에 꼬이기 쉽습니다) 샘플 문자열 중간에도 들어가는 바람에 문자열 길이 비교가 예상치와 달라서 원인 찾는 부분에서도 많이 헤메고 그랬습니다.

정상적인 경우라면 글자 조합중 나오는 한글 자모 문자는 글자가 완성이 가능하게 되면 한글 음절 문자로 변환되고, 그렇지 못한 상태에서 다음으로 넘어갈 상황이면 채움문자는 삭제하고 나머지 자모 문자는 한글호환자모 문자로 변환이 되는게 맞지 않나 싶습니다.

제 환경은 gentoo, gnome-3.18 에 ibus-1.5.11 , ibus-hangul-1.4.2 를 쓰고 있습니다.

특정 언어로 전환되는 단축키 등록 기능

안녕하세요, 입력기 감사히 잘 사용하고 있습니다~
특정 언어로 바로 전환되는 단축키를 등록 하는 기능이 있으면 좋겠습니다.
예를 들어, ctrl+space는 항상 영어로 전환, ctrl+shift+space는 항상 한글로 전환 하는 겁니다.
윈도우에서 이렇게 사용중인데 입력해보고 지우거나, 상태를 눈으로 확인 후 전환하는 과정이 없어서 좋습니다^^

우분투 18.10 그놈셸에서 한글 입력 관련 문제가 있습니다.

그놈셸 버전이 3.28에서 3.30으로 올라가면서 생긴 문제인 것 같은데요,
(그놈셸 3.28에서는 아예 스페이스나 백스페이스가 먹지 않았는데, 3.30으로 올라오면서 작동을 함...)

그놈셸 검색창에서 한글 모드로 단어를 입력하고 일정 시간 이상 백스페이스 키로 키를 지운 후, 백스페이스를 떼면 5가 계속 자동으로 입력되는 문제점이 있습니다.

또한 자세한 조건은 모르겠지만, 입력시에 간혈적으로 ㅜ가 계속 입력되는 문제가 생깁니다.

영어 또는 ibus-anthy(일본어)에서는 해당 문제가 발생하지 않습니다.

두벌식 noshift에서 끝소리 쌍자음 입력이 되지 않습니다.

Ubuntu Bionic에서 1.5.0+git20161231-2.2~bionic0527~3beol 버전을 사용 중에 noshift 레이아웃에서 끝소리를 두 번 눌러서 쌍자음으로 만드는 것( ㅎ + ㅐ + ㅅ + ㅅ → 했)이 동작하지 않습니다(결과적으로 햇ㅅ이 입력 됨).
libhangul1을 0.1.0-4.1~artful0930~3beol 버전으로 롤백 하니 잘 동작하는 것으로 보아 최근 변경사항 중에 버그가 있는 듯 합니다.

오타 자동교정(모아치기)?

ibus hangul 쓰고 있는데요.
전에는 오타 자동 교정(예를 들어 "강" 치려고 했는데 실수로 ㄱㅇㅏ 이런식으로 순서를 잘못 쳤을 때 자동으로 강으로 되는...) 되었는데... 다른 말로 모아치기라고도 하는....
언제부터가 자동 교정이 안 되더군요.
ibus hangul 에서 뭔가 바뀐 건지, 아니면 libhangul 에서 뭔가 바뀐 건지. 모르겠네요.
libhangul 설정 때문이라면 자동교정 쓰려면 어떻게 하는지 알려주셔요.

컨트리뷰팅 다각화 관련

리눅스를 메인으로 사용하고 윈도우즈 사용을 안하다보니, ibus 및 ibus-hangul 개발진 여러분의 노고에 깊이 감사하고 있습니다.

개발은 공부를 하는 와중이지만, coding style 등의 문서가 있다면 그에 따라 code janitor 역할이라도 하여, 도움이 되고 싶습니다.

위키 등을 살펴보면, 소개와 빌드 방법 정도가 소개되어 있던데, 혹시 여러모로 학생들도 참여하여 도와드릴 방법이 어떤 것들이 있을지요

xmodmap으로 문자매핑시 버그

좌우 스플릿 키보드를 쓰고있습니다.
오른쪽 자판의 'b' 키의 자리가 Control_R로 돼있는 기종이라, 이것을 항상 'b'키로 매핑하여 쓰고있습니다.

이전까지는 다른 입력기를 쓰다가 최근 다른 os를 이용하게됐는데 여기서 ibus를 기본지원하고있어서 설치하여 키매핑을 변경했는데..

한글로 바꿔서 입력해도 'ㅠ'가 아닌 알파벳 'b'만 타이핑됩니다.
다른 키들은 모두 정상인데 오로지 제가 매핑한 그 키 하나만 한영전환이 먹히지 않습니다..

그래서 지금 타이핑에 상당한 어려움을 겪고있습니다.

"한글 모드로 시작" 설정이 바로 적용되지 않음

4f90882 git 버전 기준입니다.

"한글 모드로 시작" 설정을 바꾸면 바로 적용되지 않고 ibus를 재시작해야 적용됩니다.

설정을 최초에만 한 번 읽기 때문인 것 같습니다. value-changed 콜백에서 처리할 필요가 있어 보입니다.

ibus-engine-hangul dumps core without ibus connection

ibus-engine-hangle dumps core when no running ibus-daemon.
This is minor case and low priority issue, but binaries should not dump core by execution.

Steps to reproduce:

  • login using ssh from other host
  • execute /usr/libexec/ibus-engine-hangul (on Fedora)
    Dumps core.

Having ibus_bus_is_connected() check in main.c could solve the issue.

띄어쓰기 문제,마우스 클릭 시 문제

qt 최신버전 기준(qt5)으로 qtcreator와 qt5로 만든 어플리케이션에서 모두 띄어쓰기 문제가 있습니다
예를들어
'안+녕+스페이스바' 이렇게 입력을 하면데
'안녕 '이 아니라 '안 녕' 이라고 입력이 됩니다다
이 문제를 막으려면 '안+녕+오른쪽화살표+스페이스바'로 해야 정상적으로 출력이 됩니다
아마 글자를 모두 입력하기 전까지는 글자가 없는것으로 인식되서 스페이스바를 누르면 '녕'이 아니라 '안' 앞에 공백이 추가되는 것 같습니다
마찬가지로 'ㄱ+스페이스바'도 'ㄱ '이아니라 ' ㄱ'으로 입력이 됩니다

그리고 이 문제는 qt5말고 다른 어플리케이션에서도 동등하게 발생하는 문제인데 한 글자를 입력한 뒤 오른쪽 화살표 키를 누르지 않은 채로 마우스로 글의 다른 부분을 클릭하면 그부분에 글자가 출력되는 버그가 있습니다
예를 들어 '가나'라고 입력한 뒤 마우스 오른쪽 화살표를 누르지 않은 채로 '가' 앞쪽을 클릭하면 '나'가 가 앞쪽으로 이동하거나 복사되는 경우가 있습니다

아 그리고 관련은 없는 것이지만 최환진 님이 nabi도 개발하셨길래 질문해봅니다
우분투(Xubuntu)에서 nabi를 사용하다가 ibus를 사용하려고 apt-get --purge autoremove nabi 를 이용해 완벽하게 지웠는데도 우분투의 Language Support(gnome-language-selector) 의 Keyboard Input Method 탭에서 여전히 선택이 가능한데 관련 설정파일이 어디있는지 혹시 아시는지 궁금합니다

Migrate IBusConfig to GSettings

setup/main.py uses IBusConfig and I'd ask to migrate it to GSettings
and delete IBusConfig.

from gi.repository import Gio

    self.__config = Gio.Settingings(schema='org.freedesktop.ibus.engine.hangul')

    def __read(self, name):
        variant = self.__config.get_value(name)
        type_string = variant.get_type_string()
        if type_string == 'i':
            return variant.get_int32()

Broken with new GNOME versions

Running Debian sid typing does commit too early unless I switch to word-unit composition. But anyway space, enter, backspace and arrow keys are broken as well.

레이아웃 설정 기능 추가

안녕하세요.

지금 배포판들이 GNOME+wayland를 기본값으로 채택하는 경우가 늘어났는데, 이 달라진 환경에서는 X 서버에서처럼 설정한 키보드 레이아웃 설정을 ibus에서 내려받아 쓸 수가 없습니다. 그래서 ibus-hangul을 선택하면 그냥 "us" 레이아웃을 쓰는 것 같고 (XML 파일에는 kr+kr104로 적혀 있는데 왜 이렇게 동작하는지 잘 모르겠습니다) , 스크립트에 끼워넣는 방법 빼고는 시스템 수준의 설정이 제가 아는 한은 없습니다. 대부분의 한국어 (+US QWERTY) 사용자는 한국어 관련 XKB 옵션을 추가하면 되서 한영키와 한자키 사용하는 거야 문제가 없는데요. 보기 드문 레이아웃을 쓰는 경우에는 문제가 됩니다. ibus-hangul을 쓰지만 레이아웃은 설정 못하게 됩니다.

다음 문제와도 관련이 있습니다. (#15 #16 #64 )

그래서 한 가지 가능성을 생각해 볼 수 있는데, ibus-hangul 설정에 레이아웃 설정을 직접 넣으면 어떨까요? ibus-anthy에서 이미 이렇게 한 예가 있습니다.

스크린샷, 2019-08-08 16-35-21

ibus-anthy도 그렇지만 레이아웃이 바뀌면 IBusEngine을 다시 시작해야 하므로 재시작해야 하는 한계가 있는데, 설정할 방법이 없거나 시작 스크립트를 수정하는 것보다는 나은 방법같습니다.

Unable to type `원`

I don't really speak Korean so I'm asking the way to type 원.

In my mind, it should be d-h-j-s, which stands for ㅇ ㅗ ㅓ ㄴ.

But in my case, it got splited like 오너. It seems like ㅇ ㅗ ㅓ failed to remain in the same character.

I am using openSUSE Leap 15.0. I am not sure if it is a bug or not. What do you think?

Thank you in advance!

libhangul git 버전에서 자동 순서 교정 기능 설정

libhangul git 버전의 기본 두벌식에서 자동 순서 교정 기능 설정이 아무 효과가 없습니다.

왜 그런지는 알겠습니다. 기존에는 "transition" 콜백에서 바뀐 순서를 금지하는 방식으로 동작했는데, libhangul 해당 키보드에서 바뀐 순서를 처음부터 아예 받아들이지 않으니 바뀐 순서를 금지하고 말게 없어지는 걸로 이해했는데요. UI에서 아무 효과가 없는 기능을 보이게 하면 혼동만 줄 수 있어서요.

libhangul 특정 버전 이상이면 이 옵션을 감춘다든가 할 수 있을까요. 아니면 그냥 정책적으로 이제부터 libhangul 특정 버전 이상 써야 된다고 정하고 (libhangul git 버전 릴리스 필요) 그냥 옵션 다 없애기로 정해도 됩니다.

"error: 'PATH_MAX' undeclared" in GNU Hurd

최근 Debian build 실패입니다.

https://buildd.debian.org/status/fetch.php?pkg=libhangul&arch=hurd-i386&ver=0.1.0%2Bgit20170815-1&stamp=1511811053&raw=0

https://www.gnu.org/software/hurd/community/gsoc/project_ideas/maxpath.html

위에 링크는 실제 사이즈에 맞춰서 동적 할당하는 좀 이상적인 방법을 얘기했는데 어렵고 실수하기도 쉬워서.. 간단한 해결책은 정의되어 있지 않으면 이런 식으로 하나 고정값으로 정의하는 겁니다.

#ifndef PATH_MAX
#define PATH_MAX 4096
#endif

AppStream metainfo 파일 추가 건의합니다

ibus-hangul 패키지에 appdata 파일을 추가하기를 건의합니다. 예를 들어 gnome-software 같은 곳에서 배포판에 관계없이 브라우즈하고 설치할 수 있는 소프트웨어 정보입니다. (https://www.freedesktop.org/wiki/Distributions/AppStream/)

예를 들어 ibus-anthy는 다음과 같이 되어 있는데요. (ibus-anthy.appdata.xml.in 파일) 비슷하게 하면 될 것 같습니다.

https://github.com/ibus/ibus-anthy/blob/master/data/

python 3.8에서 bind_textdomain_codeset() is deprecated

$ python3.8 /usr/share/ibus-hangul/setup/main.py
/usr/share/ibus-hangul/setup/main.py:298: DeprecationWarning: bind_textdomain_codeset() is deprecated
  gettext.bind_textdomain_codeset(config.gettext_package, "UTF-8")
$

지우셔도 상관 없을 것 같습니다. (로캘 인코딩에 맞게 변환한 char*를 리턴하는 C의 gettext()와는 다르게 파이썬에서는 어차피 스트링 타입을 리턴하기 때문에)

한글과 스페이스 순서가 바뀌는 문제

slackware 14.2

************************************************** 문제점 **************************************************
X 윈도우상에서 한글 입력이 가능한 모든 입력창에서 한글 뒤에 스페이스를 붙이면 한글과 스페이스 순서가 바뀌는 문제가 발생합니다.

인터넷을 검색해 본 결과 이문제는 ibus-hangul의 문제로 알려져있는 것 같습니다. 다음 원인 항목을 참조하세요.

************************************************** 알려진 원인 **************************************************
참고할 URL
https://bugs.chromium.org/p/chromium/issues/detail?id=354495

What steps will reproduce the problem?

  1. Install a Korean IME on Ubuntu (see http://starlinq.livejournal.com/2585.html )
  2. Restart Chrome
  3. Go to the omnibox
  4. Switch to the Korean input mode (see the reference in #1). If you have only two input modes, Ctrl-Space will do the job.
  5. Type a Korean word made up of two syllables or more followed by a space and another Korean syllable(e.g. '가나 다' by pressing 'rksk ek'. note the space after '나' or 'sk')

What is the expected output? What do you see instead?

Expected: '가나 다' is shown in the omnibox.

Actual: '가 나다' is shown in the omnibox. The space is after '가' instead of after '나'.

This is spun off from 353317. Bug 353317 is about a different (although seemingly related) symptom in Text area in web pages.

I found the root cause. The root cause is that ibus-hangul sends GTK's 'commit' signals in the wrong order when IBUS_ENABLE_SYNC_MODE=1.
In the reported case, "가", " "(space), and then "나" are signaled in this order although it must be "가", "나" and then " " (space). So "가 나다" is the right result from our point of view. This is ibus-hanful's issue, I think.

There are two solutions.

  1. Fix ibus-hangul so that it works with IBUS_ENABLE_SYNC_MODE=1. Other IMEs work fine with IBUS_ENABLE_SYNC_MODE=1.

  2. Change the key event handling of Chrome Linux Aura so that it works with IBUS_ENABLE_SYNC_MODE=0. In this case, we have to live with the GDK event loop. (*1)

(*1) With IBUS_ENABLE_SYNC_MODE=0, IBus works in async mode. In async mode, gtk_im_context_filter_keypress() function returns immediately without waiting the completion of the key event processing, and it returns true which means the underlying IME has processed the key event. In case that the underlying IME didn't process the key event, gtk-ibus pushes the key event back to the GDK event loop. For the pushed-back key events, gtk_im_context_filter_keypress() returns false immediately.
This is async mode of IBus, and if we use async mode, we have to live with the GDK event loop to process the pushed-back key events.

Thus, solution 2) will be a big design change for us.

************************************************** 특정 프로그램의 라이브러리 정보 **************************************************
leafpad 는 노트패드와 유사한 프로그램입니다.
ldd which leafpad
linux-vdso.so.1 (0x00007ffed4df1000)
libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00007fbd702ec000)
libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00007fbd70037000)
libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007fbd6fe2a000)
libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007fbd6fc04000)
libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007fbd6f8df000)
libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007fbd6f6bc000)
libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007fbd6f32b000)
libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007fbd6f116000)
libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007fbd6eecb000)
libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007fbd6ec7a000)
libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fbd6e969000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fbd6e72c000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fbd6e490000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbd6e273000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbd6dea9000)
libXinerama.so.1 => /usr/lib64/../lib64/libXinerama.so.1 (0x00007fbd6dca7000)
libXi.so.6 => /usr/lib64/../lib64/libXi.so.6 (0x00007fbd6da98000)
libXrandr.so.2 => /usr/lib64/../lib64/libXrandr.so.2 (0x00007fbd6d88d000)
libXcursor.so.1 => /usr/lib64/../lib64/libXcursor.so.1 (0x00007fbd6d683000)
libXcomposite.so.1 => /usr/lib64/../lib64/libXcomposite.so.1 (0x00007fbd6d481000)
libpixman-1.so.0 => /usr/lib64/../lib64/libpixman-1.so.0 (0x00007fbd6d1db000)
libEGL.so.1 => /usr/lib64/../lib64/libEGL.so.1 (0x00007fbd6cfb0000)
libgbm.so.1 => /usr/lib64/../lib64/libgbm.so.1 (0x00007fbd6cda4000)
libxcb-shm.so.0 => /usr/lib64/../lib64/libxcb-shm.so.0 (0x00007fbd6cba1000)
libXrender.so.1 => /usr/lib64/../lib64/libXrender.so.1 (0x00007fbd6c998000)
libGL.so.1 => /usr/lib64/../lib64/libGL.so.1 (0x00007fbd6c730000)
libglapi.so.0 => /usr/lib64/../lib64/libglapi.so.0 (0x00007fbd6c501000)
libXdamage.so.1 => /usr/lib64/../lib64/libXdamage.so.1 (0x00007fbd6c2ff000)
libXfixes.so.3 => /usr/lib64/../lib64/libXfixes.so.3 (0x00007fbd6c0f9000)
libX11-xcb.so.1 => /usr/lib64/../lib64/libX11-xcb.so.1 (0x00007fbd6bef7000)
libxcb-glx.so.0 => /usr/lib64/../lib64/libxcb-glx.so.0 (0x00007fbd6bce1000)
libxcb-dri2.so.0 => /usr/lib64/../lib64/libxcb-dri2.so.0 (0x00007fbd6badd000)
libxcb-dri3.so.0 => /usr/lib64/../lib64/libxcb-dri3.so.0 (0x00007fbd6b8da000)
libxcb-present.so.0 => /usr/lib64/../lib64/libxcb-present.so.0 (0x00007fbd6b6d8000)
libxcb-randr.so.0 => /usr/lib64/../lib64/libxcb-randr.so.0 (0x00007fbd6b4cc000)
libxcb-xfixes.so.0 => /usr/lib64/../lib64/libxcb-xfixes.so.0 (0x00007fbd6b2c5000)
libxcb-render.so.0 => /usr/lib64/../lib64/libxcb-render.so.0 (0x00007fbd6b0bc000)
libxcb-shape.so.0 => /usr/lib64/../lib64/libxcb-shape.so.0 (0x00007fbd6aeb9000)
libxcb-sync.so.1 => /usr/lib64/../lib64/libxcb-sync.so.1 (0x00007fbd6acb3000)
libxshmfence.so.1 => /usr/lib64/../lib64/libxshmfence.so.1 (0x00007fbd6aab1000)
libXxf86vm.so.1 => /usr/lib64/../lib64/libXxf86vm.so.1 (0x00007fbd6a8ac000)
libXext.so.6 => /usr/lib64/../lib64/libXext.so.6 (0x00007fbd6a699000)
libX11.so.6 => /usr/lib64/../lib64/libX11.so.6 (0x00007fbd6a35c000)
libxcb.so.1 => /usr/lib64/../lib64/libxcb.so.1 (0x00007fbd6a13d000)
libXau.so.6 => /usr/lib64/../lib64/libXau.so.6 (0x00007fbd69f39000)
libXdmcp.so.6 => /usr/lib64/../lib64/libXdmcp.so.6 (0x00007fbd69d34000)
libdrm.so.2 => /usr/lib64/../lib64/libdrm.so.2 (0x00007fbd69b26000)
librt.so.1 => /lib64/librt.so.1 (0x00007fbd6991d000)
libgmodule-2.0.so.0 => /usr/lib64/../lib64/libgmodule-2.0.so.0 (0x00007fbd69719000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbd69515000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbd692f9000)
libgthread-2.0.so.0 => /usr/lib64/../lib64/libgthread-2.0.so.0 (0x00007fbd690f7000)
libffi.so.6 => /usr/lib64/../lib64/libffi.so.6 (0x00007fbd68eef000)
libexpat.so.1 => /usr/lib64/../lib64/libexpat.so.1 (0x00007fbd68cc5000)
libpng16.so.16 => /usr/lib64/../lib64/libpng16.so.16 (0x00007fbd68a93000)
libharfbuzz.so.0 => /usr/lib64/../lib64/libharfbuzz.so.0 (0x00007fbd68815000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fbd68604000)
libz.so.1 => /usr/lib64/../lib64/libz.so.1 (0x00007fbd683ef000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbd680e6000)
libpcre.so.1 => /usr/lib64/../lib64/libpcre.so.1 (0x00007fbd67e72000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fbd67c2c000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fbd679ec000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fbd677e7000)
/lib64/ld-linux-x86-64.so.2 (0x000055f18b0ed000)

$ ls /var/adm/packages/gtk*
/var/adm/packages/gtk+-1.2.10-x86_64-5
/var/adm/packages/gtk+2-2.24.30-x86_64-1
/var/adm/packages/gtk+3-3.22.4-x86_64-1
/var/adm/packages/gtk-xfce-engine-2.10.1-x86_64-2
/var/adm/packages/gtkmm-2.24.4-x86_64-1_SBo
/var/adm/packages/gtkspell-2.0.16-x86_64-3

$ ls /var/adm/packages/qt*
/var/adm/packages/qt-4.8.7-x86_64-4
/var/adm/packages/qtscriptgenerator-0.2.0-x86_64-2
/var/adm/packages/qtwebkit-2.3.4-x86_64-1

업그레이드 전 환경 (대체로 문제없이 사용하던 구성)
/var/adm/removed_packages/gtk+2-2.24.20-x86_64-1
/var/adm/removed_packages/gtk+3-3.8.6-x86_64-1
/var/adm/removed_packages/qt-4.8.2-x86_64-4
/var/adm/removed_packages/ibus-1.5.3-x86_64_SBo
/var/adm/removed_packages/ibus-hangul-1.4.2-x86_64-1_SBo
/var/adm/packages/libhangul-0.1.0-x86_64-1

업그레이드 후 환경 (한글 입력은 되는데 마지막으로 입력된 한글과 스페이스 순서가 바뀌는 구성)
/var/adm/packages/gtk+2-2.24.30-x86_64-1
/var/adm/packages/gtk+3-3.22.4-x86_64-1
/var/adm/packages/qt-4.8.7-x86_64-4
/var/adm/packages/ibus-1.5.14-x86_64-2_SBo
/var/adm/packages/ibus-hangul-1.4.2-x86_64-1_SBo
/var/adm/packages/libhangul-0.1.0-x86_64-1

업그레이드 후 환경 (한글 입력이 아예 안되는 구성)
/var/adm/packages/gtk+2-2.24.30-x86_64-1
/var/adm/packages/gtk+3-3.22.4-x86_64-1
/var/adm/packages/qt-4.8.7-x86_64-4
/var/adm/packages/ibus-1.5.14-x86_64-2_SBo
/var/adm/packages/ibus-hangul-1.5.0-x86_64-1_SBo
/var/adm/packages/libhangul-0.1.0-x86_64-1

tarball에 (불필요한?) po/POTFILES.skip 파일 누락

1.5.2 릴리스 tarball을 보면 git에 들어 있는 po/POTFILES.skip 파일이 들어 있지 않습니다. 생성된 po/Makefile.in.in 파일에서 POTFILES.skip 파일을 포함하지 않는 것으로 보입니다.

#80 관련되서 추가된 것 같은데, 오히려 이 파일은 intltool에서만 쓰는 파일이라서 의미 없는 파일이 추가된 것 같은데 확실히는 모르겠네요. 불필요하면 삭제하면 될 것 같습니다.

Dvorak with ibus-hangul

Ibus works fine with Dvorak when inputting Chinese, but reverts to Querty layout when I use the ibus-hangul. Should stick with the system advanced preferences "Use System Keyboard Layout" if this is selected.

오페라에서 ibus+autokey를 썼을 때 멈추는 현상

안녕하세요,

ibus-hangul잘 쓰고 있습니다. 나비와 scim 을 모두 시도해 보았는데 ibus가 모든 프로그램에서 가장 잘 돌아가네요.
이건 사실 opera 문제일 가능성이 높긴 한데 (Firefox등 다른 곳에서는 이상없이 작동합니다) 여쭤 봅니다.

autokey의 hotstring기능을 opera안에서 쓰면 (예를 들어 .br 을 입력하면 자동으로 Best Regards로 바뀌는 기능) 키 입력이 멈추면서 아무 것도 입력이 안 됩니다. (키를 누르면 자꾸 autokey가 best regards를 치려는 듯이 저 글자들이 반복해서 표시됨)
Opera내에서 키보드 입력은 완전히 죽고, 마우스도 드래깅은 되는데 오른쪽 클릭 메뉴는 나오지 않네요.

이 상태에서 ibus를 Quit해 버리면 바로 아무일도 없던 것처럼 입력이 되는 것으로 보아 ibus와 autokey가 엉키는 것 같습니다.
Opera linux 버젼의 키 입력에 특별한 것이 있는 것인지 모르겠네요.

감사합니다.

글자를 작성하는 도중 입력전환시 글자 사라짐

글자가 완전히 commit되기 전에 입력전환(shift-SPC)을 하게 되면 현재 입력중인 글자가 사라집니다.
명시적으로 commit하는 일본어 입력기에서는 문제가 안되는데, 글자를 치고나서 붙여서 영어를 쓰거나,
혹은 세벌식에서 한굴뒤에 기호를 붙이고 싶으면 전환을 하는 수 밖에 없는데 이 경우 Ctrl이나 Alt를 눌러서 명시적으로 commit하지 않으면 사라지게 됩니다. 어쩔 수 없는 시스템인가요?

remapping 된 키 입력값

안녕하세요?

ibus 사용중입니다. 특이한 키보드 사용으로 키를 맵핑하여 사용하고 있습니다.

crtl_r 인 105 키를 영어 b로 맵핑하여 사용하고 있는데요

ibus 에서 사용시 한글입력에서 b를 누르면 ㅠ로 나오지 않고 그대로 b로 출력이 됩니다.

ibus이 맵핑 테이블 같은걸 찾아보려고 해도 찾을 수 없네요 도움 부탁드립니다

'한글 모드로 시작'이 정상동작하지 않음

사용환경 Ubuntu 16.04 LTS, ibus-hangul 버전 1.5.0-1

기본 언어를 영어로 설정해 둔 시스템에서 영어(국제어) 키보드를 사용하기 위하여 ibus-hangul에서는 한글만 입력되도록 설정하고자 '한글 모드로 시작'에 체크하였습니다.

하지만 옵션에 관계없이 입력 소스 전환시 로마자 상태로 시작합니다.
기본 언어를 한국어로 변경할 경우 입력 소스 전환시 한글 상태로 시작합니다.

'한글 모드로 시작' 옵션이 적용되지 않는 상황으로 추측됩니다.

KDE 프로그램 - konsole, dolphin, elisa 등등 - 에서 한글입력 상태를 켜고 입력하면 특정 키 들이 제대로 동작하지 않습니다.

Arch Linux에서 KDE 5 사용중입니다.

ibus 1.5.18-2
ibus-hangul 1.5.1-1
konsole 18.08.0-1

이런 증상이 나타난지는 이삼주 정도 된 것 같습니다. 어떤 패키지 업데이트 후 이런 증상이 나타난지는 확실히 모르겠습니다.

증상은 한글 입력상태에서 몇몇 키들이 다르게 동작 합니다.

  • backspace -> (
  • 좌(방향키) -> q (좌우 여백이 넗게 입력되는 것으로 봐서 전각문자가 아닌가 합니다.)
  • 우 -> s
  • 위 -> r
  • 아래 ->t
  • Alt_L -> ←

위 키들 뿐만 아니라 대부분의 특수키가 이상한 기호나 특수문자를 입력합니다.

Firefox는 괜찮고 대부분의 kde 앱들에서 이런 증상이 나타 납니다.

password 모드에서 한글 입력 안 되도록 set-content-type 구현

ibus 새로운 기능이라서 ibus-hangul에는 반영이 되어 있지 않은데요. ibus 1.5.4부터 "set-content-type"에서 IbusInputPurpose라는 입력 힌트를 넘겨 받을 수 있습니다.

https://github.com/ibus/ibus/blob/886ad3651d16dd821e2526e8601c69738533a7e8/src/ibusengine.c#L800

다른 건 스크린 키보드에서나 쓸만한 기능이라 (URL 입력, 숫자 입력 등) ibus-hangul에서 쓸만한 건 아닌데, IBUS_INPUT_PURPOSE_PASSWORD만은 반영할만 할 것 같습니다. 한글 모드에서 암호입력창에 preedit가 생기는 상황은 피하고 싶고 한글 텍스트를 암호에 쓰진 않을테니까요.

2가지 이슈 - 마우스 클릭시 끝글자 반복, Multikey 토글키 등록안됨.

안녕하세요 ibus hangul을 너무 잘 사용하고 있습니다.

사용중 개선이 되면 도움이 될만한 이슈가 있어서 리포팅 합니다.

  • 마우스 클릭시 끝글자 반복
    • 노트북 사용시 '학교에 간다'라고 입력하고 터치페드를 클릭하거나 마우스 버튼을 클릭하면 '학교에 간다다'라고 끝글자가 한번더 입력이 됩니다.

늘 감사하는 마음으로 잘 사용하도록 하겠습니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.