X 하에서의 상황도 크게 다르지는 않다. 단지 다른 계층이 있어서 X 윈도우 시스템이 스캔코드를 자신만의 키 심볼로 변환하며 이 값들이 콘솔의 그것들 보다 더 다양하고 정확하다. 그 후 이 값들을 어플리케이션으로 넘겨준다 (이런 이유로 Xemacs이 앞의 문제를 겪지 않을 수 있다. X는 키코드 14를 키심볼 BackSpace으로, 키코드 111을 키심볼 Delete으로 변환하며 사용자는 이 키심볼들에 원하는 기능을 쉽게 부여할 수 있다). 물론, 터미날 에뮬레이터 프로그램 (흔히 X 상에서의 VT100 에뮬레이터) 은 X의 키심볼들을 ASCII 문자열로 변환해야 하며 우리는 다시 이전과 같은 문제에 봉착한다.
더 자세히 말하면, 보통 xterm은 정확히 콘솔과 똑같이 작동한다 (다시 말해 똑같은 ASCII 문자열을 생성한다). 그러나 7.0 미만 버전의 Red Hat의 gnome-terminal 같은 경우는 Backspace 키에 대해선 BS를, Delete 키에 대해선 DEL을 발생시킨다. 재밌는 사실은 기본적으로 이 두 어플리케이션들이 동일한 터미날 데이타베이스 항목을 사용한다는 것이며 따라서 kbs 기능이 ASCII DEL로 연결된다는 사실은 정상적으로 작동하는 모든 어플리케이션들을 Backspace와 Delete 키들에 대해서 gnome-terminal과 동일하게 동작하도록 만든다.
bash$ export TERM=gnome |
어떤 경우에는 이 방법은 해결책이 아닐 수 있다. 예를 들어 버전 7.0 이상의 Red Hat 배포판을 사용한다면 gnome-terminal은 콘솔처럼 작동한다. 그러나 Helix 배포판을 사용하여 데스크탑을 업그레이드 했다면 gnome-terminal은 7.0 이전 Red Hat의 경우처럼 작동하게 된다.
앞으로의 논의를 간단히 하기 위해 우리는 표준을 콘솔처럼 작동하는 VT100 에뮬레이터로, 변종을 Backspace 키에 대해서 BS를 Delete 키에 대해선 DEL을 발생시키는 것으로 정의할 것이다. 따라서 예를 들어 xterm은 데비안 배포판에서는 이전부터 계속 표준이었지만 Red Hat에서는 표준에서 변종으로, 혹은 그 반대로 몇 번 바뀌었다. gnome-terminal의 동작은 더욱 많이 변했다.