다음 이전 차례

5. X의 시작

앞으로의 과정에서 우리는 충분히 안정이 입증된 FVWM2를 윈도 매니저로 쓴다고 가정한 후에 여러 설정에 대한 예를 볼 것이다. 꼭 특정 윈도 매니저를 지지 하는 것은 아니고 단지 좀더 쉽게 설명하기 위한 것이다. 하지만 이 절의 내용을 꼼꼼히 살펴본다면 다른 윈도 매니저를 이용하는 것도 어렵지 않을 것이ㅏㄷ.

5.1 간단한 시작과정 설정

가장 쉽고도, 가장 기초적인 우리가 지금 해야할 일을 X가 시작될 때 사용하는 초기화 파일을 설정하는 것이다. 사실 이 파일은 사용자 모두가 사용하는 파일이며 /var/X11R6/lib/xinit/xinitrc 등의 디렉토리에서 찾을 수 있다. 개개의 사용자마다 다르게 설정하고 싶다면 각 사용자의 홈 디렉토리에 .xinitrc라는 파일을 만들어 주면 위의 파일 대신에 이 파일을 사용하게 된다. 일반적으로 사용자 모두가 사용하는 파일은 기본적이며 아주 기초적인 내용들을 담고 있으며 보안을 이유로 모두가 이 파일을 사용하는 것은 나쁘지 않다. 그러나 자신의 설정을 하고 싶다면 사용해도 좋다.

우선은 홈 디렉토리에 .xinitrc를 만들고, 자신의 손에 익은 텍스트 에디터를 이용하여 다음과 같이 만들어 보길 바란다. 혹 이미 파일이 있다면 적절히 수정해도 좋을 것이다.


#!/bin/sh
 
# if your backspace and delete are reversed, try this:
xmodmap -e "keysym BackSpace=Delete" -e "keysym Delete-BackSpace"
 
xsetroot -solid darkslateblue
 
# start some basic applications
xclock -geometry 96x96+2+2 -bg grey40 -fg black -hl white &
xload -geometry 120x96+2+147 -bg grey40 -fg white -hl darkred -update 4 &
xterm -sb -ls -geom 80x25-2+2 -title "shell" &
xterm -sb -ls -geom 80x25-2-2 &
 
# start the window manager
fvwm2

기본적으로 위의 예제에서 많은 것을 배울 수 있다. 첫줄에서 눈치 챘을 지도 모르지만 우선 이 파일은 쉘 스크립트 이다. 두번째 줄의 xsetroot에서는 바탕화면을 푸른색으로 바꿔준다. 매일 푸른 화면과 함께 시작하게 되는 것이다. 셋째, 넷째줄에서는 시작과 동시에 실행시키고 싶은 프로그램을 적어준다. 색이나 위치(geometry)등 몇몇 옵션줄은 좀 더 편하게 사용할 수 있는 환경을 제공해 준다. 옵션 설정에 대한 개선된 사항은 추후 논의하게 될 것이다. 다섯째, 여섯째 줄은 시작과 동시에 곧 쓰게 될 것이라 생각되는 xterm 두개를 띄워준다. 물론 지금까지 이야기에서 #으로 표시된 주석라인은 특별히 세지 않았다.

마지막 줄은 특별히 중요하다. 이 마지막 줄이 바로 윈도 매니저를 띄우는 기능을 맡는다. 이 줄과 xsetroot, xmodemap등을 실행하는 명령은 &를 쓰지 않아 백그라운드로 실행이 되지 않는다는 것을 주의하기 바란다. 그러나 나머지 다른 프로그램들은 백그라운드로 실행이 된다. 마지막 줄에 포그라운드로 수행되는 프로그램이 종료되면 X 윈도 세션이 통째로 종료되어 버린다. 의심적다면 한번 해보기 바란다. 윈도 매니저가 종료되면 X에서 빠져나오게 될 것이다.

5.2 좀 더 개선된 시작

처음으로 제작한 스타트업 파일에 몇가지 유용한 것들을 포함시키도록 하겠다. 예를 들어 root로 X를 시작했을 경우 실수를 방지하기 위해 주의를 주고자 특정한 모습으로 보이게 할 수 있다. 레드햇 사용자라면 이런 상황을 경험했을지도 모르겠다. 레드햇에서 제공되는 많은 GUI 설정툴은 root로 로긴해야 하며 일반적으로 관리자는 아예 root로 X를 수행시키길 원한다. 혹은 일반 사용자 계정으로 로긴하여 X 프로그램을 사용할때 -display:0.0 옵션을 이용할 수도 있다.(위에 한번 언급한 것처럼 보안문제로 막아놓았을 지도 모른다. 이때는 X를 시작한 계정의 사용자로 'xhost +' 명령을 줌으로 누구나 이 디스플레이에 출력을 가능하게 해 주어야 한다.) 루트로 X를 시작할 때 아래와 같은 예를 통해 좀 다른 모습을 보이게 된다.


# change background color for root 
if [ "$USER" = "root" ];
then
     xsetroot -solid darkred
else xsetroot -solid darkslateblue
fi

이 예제에서는 사용자가 root 인지 확인하여 root라면 붉은 바탕화면을 쓰게 설정되어 있다. 일반 사용자라면 위에서와 마찬가지로 푸른색일 것이다.(좀 다른 푸른색이다. 이 색은 내가 선호하는 색이다. :) 마지막 예제는 .xinitrc 파일에서 일반적인 시스템 설정을 불러 함께 쓸 수 있게 설정하는 예이다. 포괄적인 시스템 설정과 개인적인 시스템 설정을 합쳐주는 역할을 한다. 일반적인 시스템이라면 예제에 있는 디렉토리에서 그 특정파일을 찾을 수 있겠지만 우선은 파일이 존재하는 지 확인해 보는 것도 나쁜 생각은 아니다.


 userresources=$HOME/.Xresources
 usermodmap=$HOME/.Xmodmap
 sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
 sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
 # Merge in defaults and keymaps
 if [ -f $sysresources ]; then
    xrdb -merge $sysresources; fi
 if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap; fi
 if [ -f $userresources ]; then
    xrdb -merge $userresources; fi
 if [ -f $usermodmap ]; then
    xmodmap $usermodmap; fi

5.3 윈도의 위치를 알아내기

-geometry 옵션을 이용해 스크린의 어떤 위치에나 특정 어플리케이션을 위치시킬 수 있다. 적절한 설정을 통해 윈도의 위치를 정한다면 사용을 더 편하게 할 수 있겠지만, 처음에 원하는 윈도의 위치를 알아내는 것은 많은 시행착오를 요구한다.(물론 대충 설정한다면 그냥 만족하고도 살아갈 수 있다.) 이런 이유에서 FVWM에서는 좀 더 편리한 기능을 제공해 준다. 기본적으로 FVWM에서는 윈도의 이동이나 크기 조정시 위치표시기가 나타나 윈도의 위치를 보여준다. 한번 해 보기 바란다. 또한 윈도의 크기를 조정해 보기 바란다. 하지만 이렇게 윈도의 위치를 알아내는 것은 이런 기능을 지원해 주는 윈도 매니저에서만 가능하다. 일반적인 방법으로 쓰기에는 약간 까다롭지만 좀 더 자세히 윈도의 상황을 보여주는 프로그램을 소개하고자 한다. 항상 그렇듯이 xterm에서 xwininfo라 타이핑함으로 프로그램을 실행시켜보자. xwininfo는 특정 윈도를 클릭하라는 요청을 하게 되고 클릭한 후 그 윈도에 대한 위치 및 그밖의 정보를 자세히 출력하게 된다. X 윈도와 동시에 실행되는 프로그램의 위치를 세팅하고자 한다면 이와 같은 여러가지 방법으로 위치를 알아낸 후 스타트업 파일(.xinitrc)에 이 정보를 적절한 옵션(-geometry등)으로 세팅하면 앞으로는 항상 지정된 위치에서 실행시킬 수 있을 것이다.


다음 이전 차례