X11-big-cursor mini-HOWTO
X11-big-cursor mini-HOWTO
X 윈도우 시스템에서 큰 마우스 포인터(커서)를 사용하는 방법
v2, 11 August 1997
심상현
artsilly@eeserver.korea.ac.kr
v1.0s, 1998년 12월 28일
이 문서는 X 윈도우 시스템에서 큰 마우스 포인터(커서)를 사용하는 방법에 대한 문서이다.
일반적인 X 환경은 다음과 같은 상황에서 마우스 포인터(커서)를 쉽게 놓치기 쉽다.
- 저휘도의 LCD 노트북에서 X를 사용할 때
- 일반적인 CRT 모니터에서 고해상도 1600x1200이상으로 사용할 때
- 시각적인 장애를 가진 사용자가 사용할 때
이런 상황에서 좀 더 큰 마우스 포인터(커서)를 이용한다면 매우 유용할 것이다. X 프로그램을 이용하여 모든 마우스 포인터(커서)의 크기를 적절하게 조절해 줄 수 있다면 매우 이상적인 방법이 될 것이다. 그러나 내가 아는 한 그런 프로그램을 만드는 것은 그리 간단하지가 않다. X 프로토콜은 마우스 포인터(커서)에 대해 응답해 줄만한 어떤 준비도 되어있지 않기 때문이다. 자세한 것은 앞으로 나올 기술적 제안 부분을 참고하기 바란다.(요즘은 윈도 매니저등을 통해서 쉽게 커서의 크기를 바꿀 수 있다. 역주)
하지만 우리의 목표인 큰 마우스 포인터(커서)를 사용하겠다는 것만을 생각한다면 좀 색다른 방법으로도 해결할 수 있다. 일반적으로 대부분의 프로그램은 커서 폰트에서 찾을 수 있는 표준 마우스 포인터(커서)를 사용한다.(xfd -fn cursor 하면 그 폰트들을 볼 수 있을 것이다.) 지금 생각해 보고자 하는 방법은 그 표준 마우스 포인터(커서)들을 보다 큰 마우스 포인터(커서)로 바꾸는 것이다.
시각장애가 있던 조교로부터 X 윈도우 시스템에서 어떻게 하면 좀 더 큰 마우스 포인터(커서)를 사용할 수 있냐는 질문을 받고 이 문서를 작성하게 되었다. 그 방법을 알아내고야 나서 이 문서의 첫 번째 버전을 작성하였다. 사실 이 방법은 그리 평범하지 않다. 그래서 난 이 글을 리눅스 미니 하우투로 공개될 수 있도록 LDP에 제출하였다. 물론 이 글은 리눅스에만 통용되는 그런 독특한 내용이 아니다. 이 글은 다른 미니 하우투 문서와 마찬가지로
리눅스 도큐먼트 프로젝트(LDP, Linux Document Project) 홈페이지에서 찾을 수 있다.
나의 홈페이지를 통하여 SGML/linuxdoc 형식으로도 제공된다. 이 SGML문서는 자동으로 다른 형식의 문서로 변환이 가능하다. html, text, LaTex, DVI, PS, GNU info 등을 사용할 수 있을 것이다.
시노부 미야타(Shinobu Miyata)가 번역해 놓은 일본어 번역본도 구할 수 있다.
http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/
아래의 순서에 따라 실행하도록 한다. 만일 bdfresize 프로그램을 컴파일하고 싶지 않다면, 이미 크기가 조정된 폰트를 다운받고 곧바로 3번 과정으로 뛰어넘는다.
-
ftp://ftp.x.org/pub/R6.1/xc/fonts/bdf/misc/cursor.bdf
와 같은 X 프로그램의 배포처(공개자료실 및 FTP site. 역주)를 이용하여 커서 폰트의 소스인
cursor.bdf를 받는다.(만일 찾지 못한다면 아키서버를 이용하여 찾거나, 혹은
나의 홈페이지에서 제공하는 것을 받기 바란다.)
- bdfresize 패키지도 다운로드 하여 인스톨한다. bdfresize 패키지는 다음 FTP site 에서 쉽게 구할 수 있다.
ftp://ftp.cs.titech.ac.jp/X11/contrib/Local/bdfresize-1.4.tar.Z
(나의 홈페이지에서도 찾을 수 있다.)
http://i11www.ira.uka.de/~schneid/X11-big-cursor/bdfresize-1.4.tar.gz
다음과 같이 컴파일 한다.
zcat bdfresize-1.4.tar.Z | tar xf -
cd bdfresize-1.4
xmkmf
make
리눅스 박스에서는 다음의 옵션을 이용하여 컴파일한다.
make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all
- 디렉토리를 하나 만들고 그곳에 확대된 커서 폰트를 설치한다. (배율을 2로 했을 때의 예를 보도록 한다)
mkdir $HOME/fonts
bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf mkfontdir $HOME/fonts
보다 편이한 이용을 위해서
http://i11www.ira.uka.de/~schneid/X11-big-cursor/fonts/를 통해서 몇몇 확대된 폰트를 제공하고 있다. 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8, 16의 배율을 갖는다. bdfresize를 사용하고 싶지 않다면 단지 폰트만을 다운로드 받아 $HOME/fonts에 설치하는 것만으로 이 글에서 제시하는 방법을 이용할 수 있다.
.xinitrc 나 .xsession을 편집해야 한다. 마우스 포인터(커서)를 쓰는 어떤 X 클라이언트도 실행 중이어서는 안된다.(현재 실행중인 X 클라이언트에는 바뀌어진 마우스가 적용되지 않는다. 역주) 확대된 마우스 포인터(커서)를 쓰기 위해서는 다음의 명령행이 실행되어야 한다.
xset +fp $HOME/fonts
xsetroot -cursor_name X_cursor
- X 세션을 닫고 재실행한다.
여기까지의 모든 과정을 수행하였으면 모든 마우스 포인터(커서)가 두배 크기로 늘었을 것이다.
자동적으로 마우스 포인터(커서)의 크기를 크게 하는 방법은 없을까요?
- 방법 1(특정 시스템에만 가능)
-
XTEST로 확장된 시스템에서는 XTestCompareCursor를 이용할 수 있다. 모든 윈도우에 마우스 포인터(커서)가 들어가게 되면 윈도우의 마우스 포인터(커서)와 이미 알고 있는 커서 폰트와 함께 비교를 하게 된다. 만일 커서를 찾게 되면 그 커서를 큰 버전으로 바꾸게 된다. 그렇지 않으면 원래의 마우스 포인터(커서)나 표준 마우스 포인터(커서)로 대체하게 된다. 이런 방법은 오직 Xtest 확장 시스템에서만 사용 가능하다.
- 방법2
-
X 서버에서 보내주는 모든 클라이언트의 요청 값을 그대로 넘겨주는 X 프록시 서버를 세팅한다. 여기서 Xlib 함수에 있는 XCreate*Cursor에 종속되는 모든 요청에 대해서는 그 요청을 큰 버전의 마우스 포인터(커서) 폰트로 바꾸어서 보내주면 된다.
이런 프록시 서버는 :1과 같은 새로운 디스플레이 값을 갖게 된다. 큰 버전의 마우스 포인터(커서)를 쓰고 싶은 클라이언트는 xterm -display :1처럼 이 디스플레이에 연결되어야 한다. 만일 원래의 디스플레이인 :0에 연결되면 마우스 포인터(커서)는 변화가 없을 것이다.
마우스 포인터(커서)를 쉽게 찾을 수 있도록 해 주는 몇 개의 X 프로그램에 대한 발상이 있다.
- 단축키를 누르면 약 0.5초간 포인터가 있는 위치에 색다른 효과를 내게 하는 프로그램(큰 포인터(커서), 작아지는 윈도우, 말려 올라간 윈도우등)
- XRecolorCursor를 이용해 0.1초마다 마우스 포인터(커서)의 색을 바꾸도록 하는 프로그램
당면 과제로는 마우스 자취라는 기능이 시급하다고 하겠다. 이 기능은 마우스가 움직이고 마우스 포인터(커서)가 다른 위치에 그려져야 할 때 먼저 위치의 마우스 포인터(커서)가 즉시 지워지는 것이 아니고 약간의 시간을 주고 지워지는 기능이다.(MS windows나 MAC에서 이런 기능을 보았을 것이다. 노트북과 같은 저휘도, 저해상도 디스플레이에서 마우스 포인터를 쉽게 찾을 수 있게 해 준다. 역자 주) 마우스 자취 기능은 X 서버에서 제공되는 것이 가장 이상적이고 클라이언트에서 제공될 수도 있다. 하지만 프록시 서버에서 제공되는 것이 클라이언트에서 제공하는 것보다는 낫다. (기술적 제안 부분을 참고하기 바란다.)
폰트서버는 간단한 프로토콜을 이용하여 X11 폰트 집합을 네트워크로 제공해 주는 방법이다. 폰트서버는 어떤 폰트의 비트맵 데이터를 전송해 주어야 할 지에 대한 요청에 응답하는 형식으로 폰트데이터를 제공한다.
폰트서버를 이용하여 로컬 파일시스템에 있는 폰트를 이용하는 것 대신 폰트 서버에서 제공되는 커서 폰트를 이용할 수 있다. 특히 공통의 파일시스템을 공유하지 않는 다른 기종의 여러 시스템을 사용하는 경우나 폰트서버 프로토콜을 지원하는 X 터미널을 쓸 경우 매우 유용하다고 할 수 있다. 폰트서버 프로그램과 도구들은 X11R5+ 배포처인 AFAIK로부터 구할 수 있다.
폰트서버 세팅하는 법
다음의 매뉴얼 페이지를 정독한다면 그리 어렵지 않게 폰트서버를 세팅할 수 있을 것이다.
fs(1), fslsfonts(1) (혹은 X11R6 시스템에서는 xfs(1), xfslsfonts(1)) 다음의 예를 보며 보충설명을 하도록 한다.
some.host.edu 의 포트 7100으로 폰트서버를 운용하고 있다면 다음의 일련의 과정을 통해서 테스트 할 수 있다.
fslsfonts -server some.host.edu:7100
실제 사용을 위해서는 다음의 명령이 추가되어야 한다.
xset +fp tcp/some.host.edu:7100
올바르게 설치가 되었다면 에러 없이 수행될 것이다.
이미 폰트서버의 세팅이 끝났다면 폰트서버로부터 fstobdf 하는 것으로 간단히 소스를 추출해 낼 수 있다.
또한 getbdf를 이용해 이미 설치된 어떤 X11의 폰트에서도 bdf 파일을 얻을 수 있다.
- 이 글은 원문의 내용을 한국어로 번역한 글입니다.
- 이 글은
리눅스 한글문서 프로젝트나
http://eeserver.korea.ac.kr/~artsilly/trans/로부터 얻을 수 있습니다.
- 본문의 내용중 잘못된 내용이나 번역이 잘못된 부분이 있으면
artsilly@eeserver.korea.ac.kr로 메일을 보내주시기 바랍니다.
- 원문의 버전이 올라가는대로 번역본도 개정하도록 하겠습니다. 개정이 늦어지면 위의 주소로 제게 알려주시기 바랍니다.
- 이 한국어 버전의 글을 인용, 편집, 재배포하실 경우에는 원저자와 함께 역자의 저작권을 표시해 주시기 바랍니다.
- 다들 즐거운 리눅싱 하시길 ^^ - 심각한 말투로 번역하는 건 너무 힘드네요. TT; 즐거운 말투나 사투리로 번역하고 싶네요. ^^
- 버전정보
- v0.3, 1997년 / 원문 v1.x 번역
- v0.9, 1997년 9월 25일 / 원문 v2 번역
- v1.0s, 1998년 12월 28일 / v0.9를 sgml로 변환