´ÙÀ½ ÀÌÀü Â÷·Ê

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µî)À¸·Î ¼¼ÆÃÇÏ¸é ¾ÕÀ¸·Î´Â Ç×»ó ÁöÁ¤µÈ À§Ä¡¿¡¼­ ½ÇÇà½Ãų ¼ö ÀÖÀ» °ÍÀÌ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê