· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/X-Big-Cursor

X11-big-cursor mini-HOWTO

X11-big-cursor mini-HOWTO

X 윈도우 시스템에서 큰 마우스 포인터(커서)를 사용하는 방법

죄르그 슈나이더(Joerg Schneider) Joerg Schneider

v2, 11 August 1997 심상현 artsilly@eeserver.korea.ac.kr v1.0s, 1998년 12월 28일
이 문서는 X 윈도우 시스템에서 큰 마우스 포인터(커서)를 사용하는 방법에 대한 문서이다.

1. 소개

일반적인 X 환경은 다음과 같은 상황에서 마우스 포인터(커서)를 쉽게 놓치기 쉽다.

  • 저휘도의 LCD 노트북에서 X를 사용할 때
  • 일반적인 CRT 모니터에서 고해상도 1600x1200이상으로 사용할 때
  • 시각적인 장애를 가진 사용자가 사용할 때

이런 상황에서 좀 더 큰 마우스 포인터(커서)를 이용한다면 매우 유용할 것이다. X 프로그램을 이용하여 모든 마우스 포인터(커서)의 크기를 적절하게 조절해 줄 수 있다면 매우 이상적인 방법이 될 것이다. 그러나 내가 아는 한 그런 프로그램을 만드는 것은 그리 간단하지가 않다. X 프로토콜은 마우스 포인터(커서)에 대해 응답해 줄만한 어떤 준비도 되어있지 않기 때문이다. 자세한 것은 앞으로 나올 기술적 제안 부분을 참고하기 바란다.(요즘은 윈도 매니저등을 통해서 쉽게 커서의 크기를 바꿀 수 있다. 역주)

하지만 우리의 목표인 큰 마우스 포인터(커서)를 사용하겠다는 것만을 생각한다면 좀 색다른 방법으로도 해결할 수 있다. 일반적으로 대부분의 프로그램은 커서 폰트에서 찾을 수 있는 표준 마우스 포인터(커서)를 사용한다.(xfd -fn cursor 하면 그 폰트들을 볼 수 있을 것이다.) 지금 생각해 보고자 하는 방법은 그 표준 마우스 포인터(커서)들을 보다 큰 마우스 포인터(커서)로 바꾸는 것이다.

2. 이 문서에 대한 설명

시각장애가 있던 조교로부터 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/

3. 방법

아래의 순서에 따라 실행하도록 한다. 만일 bdfresize 프로그램을 컴파일하고 싶지 않다면, 이미 크기가 조정된 폰트를 다운받고 곧바로 3번 과정으로 뛰어넘는다.

  1. ftp://ftp.x.org/pub/R6.1/xc/fonts/bdf/misc/cursor.bdf 와 같은 X 프로그램의 배포처(공개자료실 및 FTP site. 역주)를 이용하여 커서 폰트의 소스인 cursor.bdf를 받는다.(만일 찾지 못한다면 아키서버를 이용하여 찾거나, 혹은 나의 홈페이지에서 제공하는 것을 받기 바란다.)
  2. 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 
    
  3. 디렉토리를 하나 만들고 그곳에 확대된 커서 폰트를 설치한다. (배율을 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에 설치하는 것만으로 이 글에서 제시하는 방법을 이용할 수 있다.
  4. .xinitrc.xsession을 편집해야 한다. 마우스 포인터(커서)를 쓰는 어떤 X 클라이언트도 실행 중이어서는 안된다.(현재 실행중인 X 클라이언트에는 바뀌어진 마우스가 적용되지 않는다. 역주) 확대된 마우스 포인터(커서)를 쓰기 위해서는 다음의 명령행이 실행되어야 한다.
    xset +fp $HOME/fonts
    xsetroot -cursor_name X_cursor
    
  5. X 세션을 닫고 재실행한다.
여기까지의 모든 과정을 수행하였으면 모든 마우스 포인터(커서)가 두배 크기로 늘었을 것이다.

4. 주의사항, 제한사항

  • 마우스 포인터(커서)를 하드웨어로 제어하는 X 서버에는 마우스 포인터(커서) 사이즈의 최대 한도가 존재하는 것 같다. 그렇지 않은 경우에는 그런 제한사항이 없다. 예를 들어 XF86_S3 3.3 서버에서는 512x512 크기의 마우스 포인터(커서)의 사용도 가능하다. 물론 눈에 띄게 속도가 느려진다.:)
  • 확대된 커서 폰트는 원래의 폰트와 같은 이름을 가져야만 한다.(폰트 네임 - cursor가 같아야 한다는 것이다. 파일 이름은 상관이 없다!) 사실 bdfresize 프로그램이 폰트 이름을 바꾸지 않기 때문에 아마 아무런 문제도 발생하진 않을 것이다.
  • 새로운 커서 폰트의 디렉토리는 폰트 패스 상에서 원래 표준 커서 폰트의 디렉토리보다 상위에 놓여져야 한다. 이것은 단지 xset +fp를 함으로 바뀌어 질 수 있다.(이 반대는 xset fp+를 하면 된다.)
  • $HOME/fonts/ 디렉토리를 갱신했을 경우에는 다음과 같은 명령 이후에 폰트를 사용할 수 있다.
    mkfontdir $HOME/fonts/; xset fp rehash
    
    물론 새로운 X 클라이언트를 띄워야 한다.(정확히 말하자면, 새로운 폰트를 쓰고자 했을 경우 다시 띄워야 한다는 말이다.)
  • xset +fp path 명령행이 X터미널 상에서는 정상적인 동작을 하지 않을 수도 있다. 이 경우 X터미널에서 폰트서버를 지원한다면 폰트서버에 있는 폰트를 갱신하거나(폰트서버를 이용하는 방법을 참고하기 바란다), 그 X터미널 에 맞는 폰트를 설치하는 다른 방법에 대해 알아보아야 할 것이다.(이 방법은 아마 시스템 관리자만 할 수 있을 것이다)
  • 같은 방법으로 olcursor, decw$cursor 폰트, 혹은 다른 커서 폰트들도 적용 될 수 있다.
  • bdfresize로 크기가 조정된 커서 폰트의 경우 그리 깨끗해 보이지 않을 것이다. 특히 확대 비율을 크게 했을 경우에는 더욱 그럴 것이다. 누군가가 각각의 사이즈에 맞는 커서 폰트를 직접 그려서 제작해 준다면 좀 더 좋은 결과 를 얻을 수 있을 것으로 보인다.

5. 기술적 제안

자동적으로 마우스 포인터(커서)의 크기를 크게 하는 방법은 없을까요?

방법 1(특정 시스템에만 가능)

XTEST로 확장된 시스템에서는 XTestCompareCursor를 이용할 수 있다. 모든 윈도우에 마우스 포인터(커서)가 들어가게 되면 윈도우의 마우스 포인터(커서)와 이미 알고 있는 커서 폰트와 함께 비교를 하게 된다. 만일 커서를 찾게 되면 그 커서를 큰 버전으로 바꾸게 된다. 그렇지 않으면 원래의 마우스 포인터(커서)나 표준 마우스 포인터(커서)로 대체하게 된다. 이런 방법은 오직 Xtest 확장 시스템에서만 사용 가능하다.

방법2

X 서버에서 보내주는 모든 클라이언트의 요청 값을 그대로 넘겨주는 X 프록시 서버를 세팅한다. 여기서 Xlib 함수에 있는 XCreate*Cursor에 종속되는 모든 요청에 대해서는 그 요청을 큰 버전의 마우스 포인터(커서) 폰트로 바꾸어서 보내주면 된다. 이런 프록시 서버는 :1과 같은 새로운 디스플레이 값을 갖게 된다. 큰 버전의 마우스 포인터(커서)를 쓰고 싶은 클라이언트는 xterm -display :1처럼 이 디스플레이에 연결되어야 한다. 만일 원래의 디스플레이인 :0에 연결되면 마우스 포인터(커서)는 변화가 없을 것이다.

6. 마우스 포인터(커서)를 더욱 잘 보이게 하는 또 다른 고찰

마우스 포인터(커서)를 쉽게 찾을 수 있도록 해 주는 몇 개의 X 프로그램에 대한 발상이 있다.

  • 단축키를 누르면 약 0.5초간 포인터가 있는 위치에 색다른 효과를 내게 하는 프로그램(큰 포인터(커서), 작아지는 윈도우, 말려 올라간 윈도우등)
  • XRecolorCursor를 이용해 0.1초마다 마우스 포인터(커서)의 색을 바꾸도록 하는 프로그램

당면 과제로는 마우스 자취라는 기능이 시급하다고 하겠다. 이 기능은 마우스가 움직이고 마우스 포인터(커서)가 다른 위치에 그려져야 할 때 먼저 위치의 마우스 포인터(커서)가 즉시 지워지는 것이 아니고 약간의 시간을 주고 지워지는 기능이다.(MS windows나 MAC에서 이런 기능을 보았을 것이다. 노트북과 같은 저휘도, 저해상도 디스플레이에서 마우스 포인터를 쉽게 찾을 수 있게 해 준다. 역자 주) 마우스 자취 기능은 X 서버에서 제공되는 것이 가장 이상적이고 클라이언트에서 제공될 수도 있다. 하지만 프록시 서버에서 제공되는 것이 클라이언트에서 제공하는 것보다는 낫다. (기술적 제안 부분을 참고하기 바란다.)

7. 관련정보

7.1 폰트서버를 이용하는 법

폰트서버는 간단한 프로토콜을 이용하여 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
올바르게 설치가 되었다면 에러 없이 수행될 것이다.

7.2 폰트의 bdf 소스를 얻는 법

이미 폰트서버의 세팅이 끝났다면 폰트서버로부터 fstobdf 하는 것으로 간단히 소스를 추출해 낼 수 있다. 또한 getbdf를 이용해 이미 설치된 어떤 X11의 폰트에서도 bdf 파일을 얻을 수 있다.

8. 역자로부터

  • 이 글은 원문의 내용을 한국어로 번역한 글입니다.
  • 이 글은 리눅스 한글문서 프로젝트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로 변환




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0300 sec