Translate

2018년 6월 29일 금요일

nimf-xim 을 xcb 로 포팅합니다

안녕하세요.
nimf-xim 은 nimf 입력기에서 리브레오피스, 안드로이드 스튜디오 같은 X 어플 입력을 담당하고 있는 부분입니다.
nimf-xim 은 xlib 를 이용하고 있는데, 속도 향상을 위해 일부분을 xcb 로 포팅할 계획입니다.
안 그래도 충분히 빠른데, 그 끝이 어디인지 열정을 불살라 갈 때까지 가봅시다.

가볍고 빠르고 안정적이고, 동기화 방식이라 부작용 없는 꿈의 입력기 nimf

nimf 의 핵심이라 할 수 있는 동기화 통신을 담당하는 부분를 보면 어떻게 저런 코드를 구현할 수 있었을까 지금도 그런 생각이 듭니다. 마법같은 코드입니다. 당시 2015년  밤잠을 설치며 포도막염과 탈모에도 불구하고 포기하지 않고 매우 정교하게 설계하여 구현했습니다. nimf 는 그렇게 탄생을 했습니다.

개발자 스스로 대만족하는
현존 최상의 입력기 nimf

-----
참고로, xcb 는 xlib를 대체하기 위한 라이브러리입니다.

https://xcb.freedesktop.org/tutorial/

댓글 5개:

  1. 자화자찬하는 글을 쓰다니 손이 오글거리네요 ㅋㅋㅋ

    답글삭제
    답글
    1. 저는 잘 모르지만 아무튼 축하드립니다 ^__^

      삭제
    2. 축하는요..ㅋㅋ 할 일 적어놓은 건데요..ㅋㅋ
      님프 애용 감사드립니다. 2018.07.03 버전 나왔으니까 많은 애용 부탁드립니다. 개인적인 사정으로 당분간 업데이트 없을거에요.

      삭제
  2. xcb 에 XFilterEvent 를 대체할 함수가 없다는 것이 마음에 좀 걸리는데
    아래처럼 해보니 libreoffice 가 잘 작동합니다.

    while (XPending (xim->display) > 0)
    {
    XNextEvent (xim->display, &event);
    if (!XFilterEvent (&event, None) || TRUE) /* 이 부분 XFilterEvent 무력화 */
    {

    답글삭제
  3. XFilterEvent 는 서버측에서 사용하지 않아도 무방할 듯.
    클라이언트에서 키입력 처리할 때 XIM 서버측에서 키입력을 처리했는지 안 했는지 검사하는 용도로 사용할 때가 가장 유용해 보임.
    따라서 XFilterEvent 와 유사한 함수가 xcb 에 없다고 할지라도 구현에는 문제 없을 듯.

    답글삭제

응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다

그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...