드라이버는 시작시에 자동으로 Xwindow 의 키정의를 읽어온다. 사용중에 키정의를 다시 읽어들이려면 LeftFn-equal 조합을 누르면 된다. 타이밍 설정파일은 /etc/uwkrc 이다. 드라이버는 이 파일이 제위치에 없는 경우 자체 설정대로 동작한다. 또한 아무 옵션없이 uwkxwin 을 실행할 경우 irda 포트를 /dev/ttyS1 으로 가정하고 동작을 개시한다. 만일 다른 포트, 다른 설정파일을 지정하려면 uwkxwin -d /dev/ttyS2 -c /etc/uwkrc 와 같은 식으로 적어준다.
일정시간 아무 입력이 없으면 자동으로 드라이버를 종료하는 auto off 기능을 가지고 있다. uwkrc 의 설정파일에서 이 시간을 조정할 수 있다. 무선키보드에서 LeftFn-Del 조합을 누르면 즉시 드라이버를 종료하게 된다.
일반 키보드의 ESC 에 해당하는 팜 유니버설 무선키보드의 키는 Cmd 이다.
IrDA 프로토콜은 쌍방향 프로토콜로서 서로 상대방 기기를 상호확인하는 절차를 마친 후에 비로소 전하고자 하는 내용을 전송한다. UWK 가 비록 IrDA 하드웨어 규격을 만족하는 기기로서 IrDA 프레임을 전송하기는 하나, 수신능력이 없기 때문에 쌍방향 프로토콜에 기반한 IrDA 상위 프로토콜, 가령 irtty 나 ircomm 같은 것들은 사용할 수 없다. 따라서 키보드 드라이버는 프로토콜 스택을 통하기 전의 Raw IrDA 프레임을 그대로 잡아 해석해야 한다. /dev/ttySX 디바이스를 열어 입력을 읽으면 된다. 이때 커널에 irtty, irda, lirc_sir 등 다른 irda 모듈들이 떠있으면 이들이 먼저 입력신호를 읽어가버리므로 필히 드라이버 실행전에 제거하도록 한다.
하드웨어에 대해 제조사에서 내놓은 공식적인 자료는 아직 없다. 다음은 필자가 직접 알아낸 팜 유니버설 무선키보드의 키코드로서, 키가 눌릴 때(make) 한 바이트 값이 방출된다. 키가 떼어질 때(break) 발생하는 값은 눌릴 때 값의 최상위 비트(msb)를 1 로 한 값이다.
Key | Key Code | Key | Key Code | Key | Key Code |
Grave | 0x0e | I | 0x43 | C | 0x21 |
1 | 0x16 | O | 0x44 | V | 0x2a |
2 | 0x1e | P | 0x4d | B | 0x32 |
3 | 0x26 | bracketleft | 0x54 | N | 0x31 |
4 | 0x25 | bracketright | 0x5b | M | 0x3a |
5 | 0x2e | backslash | 0x5d | comma | 0x48 |
6 | 0x36 | CapsLk | 0x58 | period | 0x49 |
7 | 0x3d | A | 0x1c | Up | 0x28 |
8 | 0x3e | S | 0x1b | Shift-R | 0x59 |
9 | 0x46 | D | 0x23 | slash | 0x4a |
0 | 0x45 | F | 0x2b | Ctrl-L | 0x14 |
minus | 0x4e | G | 0x34 | Fn-L | 0x02 |
equal | 0x55 | H | 0x33 | CMD | 0x03 |
BkSp | 0x66 | J | 0x3b | Cancel | 0x11 |
Tab | 0x0d | K | 0x42 | Space | 0x29 |
Q | 0x15 | L | 0x4b | AltGr | 0x30 |
W | 0x1d | semicln | 0x4c | Left | 0x5e |
E | 0x24 | apostrophe | 0x52 | Down | 0x60 |
R | 0x2d | Enter | 0x5a | Right | 0x2f |
T | 0x2c | Shift-L | 0x12 | Del | 0x1f |
Y | 0x35 | Z | 0x1a | ||
U | 0x3c | X | 0x22 |