home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / lib / YaST2 / bin / update_xf86config < prev    next >
Text File  |  2006-11-29  |  3KB  |  102 lines

  1. #! /bin/sh
  2. # Update mouse protocol entries in X11 config files. 
  3. # Called by YaST2 if a wheel mouse was detected.
  4. #
  5. # Authors:
  6. # --------
  7. # Marcus Schaefer <ms@suse.de>
  8. #
  9. #===================================
  10. # check given device if it`s a link
  11. #-----------------------------------
  12. function readLink {
  13.     local realDevice
  14.     if [ -L "$1" ];then
  15.         realDevice=`ls -l $1 2>/dev/null | cut -f2 -d\>`
  16.         realDevice=`echo $realDevice`
  17.     else
  18.         realDevice=$1
  19.     fi
  20.     echo $realDevice
  21. }
  22.  
  23. #===================================
  24. # get mouse device:protocol X 4.x
  25. #-----------------------------------
  26. function getMouseX4 {
  27.     local configFile=$1
  28.     local protocol=`cat $configFile | \
  29.         grep -i "Driver.*mouse" -A5 | \
  30.         grep -i "Protocol.*" | cut -f4 -d\" \
  31.     2>/dev/null`
  32.     local device=`cat $configFile | \
  33.         grep -i "Driver.*mouse" -A4 | \
  34.         grep -i "Device.*" | cut -f4 -d\" \
  35.     2>/dev/null`
  36.     device=`readLink $device`
  37.     echo "$device:$protocol" | tr [:upper:] [:lower:]
  38. }
  39.  
  40. #===================================
  41. # get mouse device:protocol X 3.x
  42. #-----------------------------------
  43. function getMouseX3 {
  44.     local configFile
  45.     configFile="/etc/XF86Config"
  46.     local protocol=`cat $configFile | \
  47.         grep -i "Section.*Pointer" -A4 | \
  48.         grep -i "Protocol.*" | cut -f2 -d\" \
  49.     2>/dev/null`
  50.     local device=`cat $configFile | \
  51.         grep -i "Section.*Pointer" -A4 | \
  52.         grep -i "Device.*" | cut -f2 -d\" \
  53.     2>/dev/null`
  54.     device=`readLink $device`
  55.     echo "$device:$protocol" | tr [:upper:] [:lower:]
  56. }
  57.  
  58. #===================================
  59. # update config file
  60. #-----------------------------------
  61. function updateMouse {
  62.     local configFile=$1
  63.     local mouseData=$2
  64.     local device=`echo $mouseData | cut -f1 -d:`
  65.     if [ "$device" = "/dev/psaux" ] || [ "$device" = "/dev/mouse" ];then
  66.         local protocol=`echo $mouseData | cut -f2 -d:`
  67.         if [ ! -z "$protocol" ]; then
  68.             cat $configFile | sed -e s"@$protocol@explorerps/2@" \
  69.                 -e s"@$device@/dev/input/mice@" \
  70.             > "$configFile.tmp$$"
  71.             mv $configFile $configFile.before_update
  72.             mv $configFile.tmp$$ $configFile
  73.         fi
  74.     fi
  75. }
  76.  
  77. # /.../
  78. # main part below
  79. # ---
  80. #====================================
  81. # handle XOrg 4.x case
  82. #------------------------------------
  83. configFile="/etc/X11/XF86Config"
  84. if [ -f "$configFile" ];then
  85.     mouseData=`getMouseX4 $configFile`
  86.     updateMouse $configFile $mouseData
  87. fi
  88. configFile="/etc/X11/xorg.conf"
  89. if [ -f "$configFile" ];then
  90.     mouseData=`getMouseX4 $configFile`
  91.     updateMouse $configFile $mouseData
  92. fi
  93.  
  94. #====================================
  95. # handle XFree86 3.x case
  96. #------------------------------------
  97. configFile="/etc/XF86Config"
  98. if [ -f "$configFile" ];then
  99.     mouseData=`getMouseX3`
  100.     updateMouse $configFile $mouseData
  101. fi
  102.