안녕하세요.
nimf-xim 은 nimf 입력기에서 리브레오피스, 안드로이드 스튜디오 같은 X 어플 입력을 담당하고 있는 부분입니다.
nimf-xim 은 xlib 를 이용하고 있는데, 속도 향상을 위해 일부분을 xcb 로 포팅할 계획입니다.
안 그래도 충분히 빠른데, 그 끝이 어디인지 열정을 불살라 갈 때까지 가봅시다.
가볍고 빠르고 안정적이고, 동기화 방식이라 부작용 없는 꿈의 입력기 nimf
nimf 의 핵심이라 할 수 있는 동기화 통신을 담당하는 부분를 보면 어떻게 저런 코드를 구현할 수 있었을까 지금도 그런 생각이 듭니다. 마법같은 코드입니다. 당시 2015년 밤잠을 설치며 포도막염과 탈모에도 불구하고 포기하지 않고 매우 정교하게 설계하여 구현했습니다. nimf 는 그렇게 탄생을 했습니다.
개발자 스스로 대만족하는
현존 최상의 입력기 nimf
-----
참고로, xcb 는 xlib를 대체하기 위한 라이브러리입니다.
https://xcb.freedesktop.org/tutorial/
자화자찬하는 글을 쓰다니 손이 오글거리네요 ㅋㅋㅋ
답글삭제저는 잘 모르지만 아무튼 축하드립니다 ^__^
삭제축하는요..ㅋㅋ 할 일 적어놓은 건데요..ㅋㅋ
삭제님프 애용 감사드립니다. 2018.07.03 버전 나왔으니까 많은 애용 부탁드립니다. 개인적인 사정으로 당분간 업데이트 없을거에요.
xcb 에 XFilterEvent 를 대체할 함수가 없다는 것이 마음에 좀 걸리는데
답글삭제아래처럼 해보니 libreoffice 가 잘 작동합니다.
while (XPending (xim->display) > 0)
{
XNextEvent (xim->display, &event);
if (!XFilterEvent (&event, None) || TRUE) /* 이 부분 XFilterEvent 무력화 */
{
XFilterEvent 는 서버측에서 사용하지 않아도 무방할 듯.
답글삭제클라이언트에서 키입력 처리할 때 XIM 서버측에서 키입력을 처리했는지 안 했는지 검사하는 용도로 사용할 때가 가장 유용해 보임.
따라서 XFilterEvent 와 유사한 함수가 xcb 에 없다고 할지라도 구현에는 문제 없을 듯.