2011-04-25 2 views
2

키보드 레이아웃 변경과 같은 것들을 위해 사용자 입력을 다시 매핑하는 프로그램을 작성하고 싶지만 속기 프로그램 (예 : "t qk fx jmps ovr t lzy dg"출력은 "빠른 여우 점프" 게으른 개 이상 "). X 레벨 이하에서이 작업을하는 것이 좋습니다.Linux 데몬이 사용자 입력 스트림을 변경 하시겠습니까?

실제 사용자 출력을 기반으로 일종의 가상 키보드를 만들 수 있습니까? 이상적으로 나는 간단한 인터페이스 (즉, 프로그램에 대한 표준 입력은 일련의 실제 사용자 입력 이벤트이고, 출력은 가상 키보드에 대한 사용자 입력 이벤트 임)를 원한다. 그러나 이것이 가능하지 않다면 나는 여전히 관심을 가질 것이다. 이것이 어떻게 행해질 수 있는지에 대한 포인터. Linux 하드웨어 장치, 저수준 X 항목 또는 커널에 대해서는 아직 모릅니다. 실제로 저는 리눅스가 처음입니다. '기본 사항'자습서로 연결되는 링크는 평가 절하되지 않습니다.

답변

2

는이 작업을 수행하기 위해 리눅스 이벤트 서브 시스템을 사용할 수 있습니다

  • 는 입력 장치에서 이벤트를 수신하기 위해 리눅스 input event interface (evdev)를 사용합니다. 실제 API에 대한 자세한 내용은 input.h header file을 참조하십시오.

  • 사용 EVIOCGRABioctl 다른 사용자 공간 애플리케이션하지만 데몬이 모든 입력 이벤트를 수신하지 않도록, 키보드 장치를 잡아합니다.

  • 인터페이스를 사용하면 필요한 모든 기능을 갖춘 새로운 가상 키보드를 만들 수 있습니다. 읽을 수있는 연습을 위해 uinput API 및 this에 대한 자세한 내용은 uinput.h header file을 참조하십시오.

몇 가지 예를 들어이 될 수있는 응용 프로그램과 같은 EvRouter, ESE Key Daemonevmapd 내 자신이 있습니다.

관련 문제