2012-05-29 4 views
2

리눅스 용 텍스트 대체 프로그램을 만들고 싶습니다. 즉 .alog와 같은 것을 입력하면/usr/local/apache/logs /로 바뀝니다. 나는 alaises로 이것을 할 수 있다는 것을 알고 있지만, 나는 종종 그러한 alaises가없는 기계에 원격으로 기록된다.X 키 입력 받기 및 보내기 C++

나는 또한 학습 목적으로이 작업에 관심이 있습니다.

나는 창을 만들기 위해 X에서 잡아 먹고 키 입력을 보내는 방법에 대한 온라인 정보를 볼 수 있지만 작업 영역의 모든 창에 대해 정보를 찾을 수는 없습니다.

이 작업을 수행하는 방법에 대한 제안은 크게 감사하겠습니다.

답변

1

시작점으로 창 관리자 코드를 시작하는 것이 좋습니다. 창 관리자는 창에 관계없이 키를 바인드합니다. 이는 아마도 좋은 시작일 것입니다. dwm은 아름다운 코드가 널리 보급되어 있습니다.

screen = DefaultScreen(dpy); 
    root = RootWindow(dpy, screen); 
    /* ... */ 
    /* select for events */ 
    wa.cursor = cursor[CurNormal]; 
    wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask|PointerMotionMask 
        |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask; 
    XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa); 
    XSelectInput(dpy, root, wa.event_mask); 
    grabkeys(); 
:

setup()

직접 루트 창으로의 이벤트 마스크를 추가 할 나타납니다