Magellan Linux

Diff of /alx-src/branches/alxconf-060/functions/config_x11.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

alx-src/trunk/alxconfig-ng/functions/config_x11.sh revision 343 by niro, Sun Oct 9 21:31:54 2005 UTC alx-src/branches/alxconf_20060908/functions/config_x11.sh revision 1710 by niro, Tue Jan 25 00:32:15 2011 UTC
# Line 4  Line 4 
4  get_x11_settings()  get_x11_settings()
5  {  {
6   local x i all DB_X11SETTINGS   local x i all DB_X11SETTINGS
7     # autodetect
8   # autodetect or not ?   all=$(mysqldo "select module,
9   if [ $(mysqldo "select monitorid from cfg_graphic where serial='${ALX_SERIAL}'") -gt 0 ]   resolution,
10   then   depth,
11   # settings from db   refresh_rate
12     from cfg_graphic where serial='${ALX_SERIAL}'")
13   all=$(mysqldo "select cfg_graphic.module,  
14   cfg_graphic.resolution,   # split'em up and put 'em in an array
15   cfg_graphic.depth,   declare -i i=0
16   list_monitors.vendor,   for x in ${all}
17   list_monitors.model,   do
18   list_monitors.hsync,   DB_X11SETTINGS[${i}]="${x}"
19   list_monitors.vrefresh   ((i++))
20   from list_monitors   done
21   inner join cfg_graphic  
22   on cfg_graphic.monitorid=list_monitors.id   # and now put them in usable var names and export them systemwide
23   and cfg_graphic.serial='${ALX_SERIAL}';")   export ALX_MODULE="${DB_X11SETTINGS[0]:=NULL}"
24     export ALX_RESOLUTION="${DB_X11SETTINGS[1]:=NULL}"
25   # split'em up and put 'em in an array   export ALX_DEPTH="${DB_X11SETTINGS[2]:=NULL}"
26   declare -i i=0   export ALX_REFRESH_RATE="${DB_X11SETTINGS[3]:=NULL}"
  for x in ${all}  
  do  
  DB_X11SETTINGS[${i}]="${x}"  
  ((i++))  
  done  
   
  # and now put them in usable var names and export them systemwide  
  export ALX_MODULE="${DB_X11SETTINGS[0]:=NULL}"  
  export ALX_RESOLUTION="${DB_X11SETTINGS[1]:=NULL}"  
  export ALX_DEPTH="${DB_X11SETTINGS[2]:=NULL}"  
  export ALX_VENDOR="${DB_X11SETTINGS[3]:=NULL}"  
  export ALX_MODEL="${DB_X11SETTINGS[4]:=NULL}"  
  export ALX_HSYNC="${DB_X11SETTINGS[5]:=NULL}"  
  export ALX_VREF="${DB_X11SETTINGS[6]:=NULL}"  
  else  
  # autodetect  
  all=$(mysqldo "select module,  
  resolution,  
  depth  
  from cfg_graphic where serial='${ALX_SERIAL}'")  
   
  # split'em up and put 'em in an array  
  declare -i i=0  
  for x in ${all}  
  do  
  DB_X11SETTINGS[${i}]="${x}"  
  ((i++))  
  done  
   
  # and now put them in usable var names and export them systemwide  
  export ALX_MODULE="${DB_X11SETTINGS[0]:=NULL}"  
  export ALX_RESOLUTION="${DB_X11SETTINGS[1]:=NULL}"  
  export ALX_DEPTH="${DB_X11SETTINGS[2]:=NULL}"  
  export ALX_VENDOR="Autodetected"  
  export ALX_MODEL="Monitor"  
  export ALX_HSYNC="auto"  
  export ALX_VREF="auto"  
  fi  
27    
28   # which input devices are we using ?   # which input devices are we using ?
29   ALX_MOUSE=$(mysqldo "select mouse from cfg_input where serial='${ALX_SERIAL}'")   ALX_MOUSE=$(mysqldo "select mouse from cfg_input where serial='${ALX_SERIAL}'")
30   export ALX_MOUSE   export ALX_MOUSE
31  }  }
32    
33    config_display_manager()
34    {
35     # setup slim
36     cat ${ALX_SKELETONS}/slim/slim.conf > /etc/slim.conf
37     sed -i "s:@@USERNAME@@:${ALX_UNPRIV_USER}:" /etc/slim.conf
38    
39     # setup xession
40     sed -i "s:\(^GLOGIN=\).*:\1slim:" /etc/rc.config
41    
42     # windowmanager
43     echo "exec startfluxbox" > ${ALX_UNPRIV_HOME}/.xinitrc
44    }
45    
46  config_x11()  config_x11()
47  {  {
48   # get our settings from the db   # get our settings from the db
49   get_x11_settings   get_x11_settings
50    
51     # setup displaymanager
52     config_display_manager
53    
54   local xserver   local xserver
55   local xfconfig   local xfconfig
56   local HAS_VNC   local HAS_VNC
57   local HAS_REALVNC   local HAS_REALVNC
58     local HAS_TIGERVNC
59    
60   # xfree or xorg ?   # xfree or xorg ?
61   xserver="$(readlink /usr/X11R6/bin/X)"   xserver="$(readlink /usr/X11R6/bin/X)"
62    
63   case ${xserver} in   case ${xserver} in
64   Xorg)   Xorg) xfconfig=/etc/X11/xorg.conf ;;
65   xfconfig=/etc/X11/xorg.conf   XFree86) xfconfig=/etc/X11/XF86Config ;;
66   ;;   *) echo "    Unkown xserver. aborting."; exit 1 ;;
  XFree86)  
  xfconfig=/etc/X11/XF86Config  
  ;;  
  *)  
  echo "    Unkown xserver. aborting."  
  exit 1  
  ;;  
67   esac   esac
68    
69   # got we vnc support ?   # got we vnc support ?
# Line 109  config_x11() Line 81  config_x11()
81   HAS_REALVNC="no"   HAS_REALVNC="no"
82   fi   fi
83    
84     if [ -f /usr/X11R6/lib/xorg/modules/extensions/libvnc.so ]
85     then
86     HAS_TIGERVNC="yes"
87     else
88     HAS_TIGERVNC="no"
89     fi
90    
91   # show which server we use   # show which server we use
92   echo -en ${COLOREDSTAR}"Using '${xserver}' as x11-server "   echo -en ${COLOREDSTAR}"Using '${xserver}' as x11-server "
93    
# Line 119  config_x11() Line 98  config_x11()
98   elif [[ ${HAS_REALVNC} = yes ]]   elif [[ ${HAS_REALVNC} = yes ]]
99   then   then
100   echo "with realvnc enabled ..."   echo "with realvnc enabled ..."
101     elif [[ ${HAS_TIGERVNC} = yes ]]
102     then
103     echo "with tigervnc enabled ..."
104   else   else
105   echo "..."   echo "..."
106   fi   fi
107    
108   # create a new clear xfconfig file   # create a new clear xfconfig file
109   echo '# Generated with hwdetect, part of Magellan-Linux initscripts.' > ${xfconfig}   echo '# Generated with alxconfig-ng.' > ${xfconfig}
110   echo '' >> ${xfconfig}   echo '' >> ${xfconfig}
111    
112   # write modules   # write modules
# Line 134  config_x11() Line 116  config_x11()
116   echo '    SubSection  "extmod"' >> ${xfconfig}   echo '    SubSection  "extmod"' >> ${xfconfig}
117   echo '      Option    "omit xfree86-dga"' >> ${xfconfig}   echo '      Option    "omit xfree86-dga"' >> ${xfconfig}
118   echo '    EndSubSection' >> ${xfconfig}   echo '    EndSubSection' >> ${xfconfig}
  echo '    Load        "type1"' >> ${xfconfig}  
  echo '    Load        "speedo"' >> ${xfconfig}  
119   echo '    Load        "freetype"' >> ${xfconfig}   echo '    Load        "freetype"' >> ${xfconfig}
  echo '#    Load        "xtt"' >> ${xfconfig}  
120   echo '#    Load       "glx"' >> ${xfconfig}   echo '#    Load       "glx"' >> ${xfconfig}
121   echo '    Load       "dri"' >> ${xfconfig}   echo '    Load       "dri"' >> ${xfconfig}
122    
123   [[ ${HAS_VNC} = yes ]] && echo '    Load       "vnc"' >> ${xfconfig}   [[ ${HAS_VNC} = yes ]] && echo '    Load       "vnc"' >> ${xfconfig}
124   [[ ${HAS_REALVNC} = yes ]] && echo '    Load       "vnc"' >> ${xfconfig}   [[ ${HAS_REALVNC} = yes ]] && echo '    Load       "vnc"' >> ${xfconfig}
125     [[ ${HAS_TIGERVNC} = yes ]] && echo '    Load       "vnc"' >> ${xfconfig}
126    
127   echo 'EndSection' >> ${xfconfig}   echo 'EndSection' >> ${xfconfig}
128    
129   # fonts   # fonts
130   echo '' >> ${xfconfig}   echo '' >> ${xfconfig}
131   echo 'Section "Files"' >> ${xfconfig}   echo 'Section "Files"' >> ${xfconfig}
  echo '    RgbPath "/usr/X11R6/lib/X11/rgb"' >> ${xfconfig}  
132    
133   case ${xserver} in   case ${xserver} in
134   Xorg)   Xorg)
135   echo '    FontPath   "/usr/share/fonts/local/"' >> ${xfconfig}   # only add existing font pathes
136   echo '    FontPath   "/usr/share/fonts/misc/"' >> ${xfconfig}   [[ -f /usr/share/fonts/local/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/local/"' >> ${xfconfig}
137   echo '    FontPath   "/usr/share/fonts/75dpi/:unscaled"' >> ${xfconfig}   [[ -f /usr/share/fonts/misc/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/misc/"' >> ${xfconfig}
138   echo '    FontPath   "/usr/share/fonts/100dpi/:unscaled"' >> ${xfconfig}   [[ -f /usr/share/fonts/75dpi/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/75dpi/:unscaled"' >> ${xfconfig}
139   echo '    #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig}   [[ -f /usr/share/fonts/100dpi/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/100dpi/:unscaled"' >> ${xfconfig}
140   echo '    #FontPath   "/usr/share/fonts/Speedo/"' >> ${xfconfig}   [[ -f /usr/share/fonts/TrueType/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/TrueType/"' >> ${xfconfig}
141   echo '    #FontPath   "/usr/share/fonts/Type1/"' >> ${xfconfig}   [[ -f /usr/share/fonts/freefont/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/freefont/"' >> ${xfconfig}
142   echo '    FontPath   "/usr/share/fonts/TrueType/"' >> ${xfconfig}   [[ -f /usr/share/fonts/75dpi/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/75dpi/"' >> ${xfconfig}
143   echo '    FontPath   "/usr/share/fonts/freefont/"' >> ${xfconfig}   [[ -f /usr/share/fonts/100dpi/fonts.dir ]] && echo '    FontPath   "/usr/share/fonts/100dpi/"' >> ${xfconfig}
  echo '    FontPath   "/usr/share/fonts/75dpi/"' >> ${xfconfig}  
  echo '    FontPath   "/usr/share/fonts/100dpi/"' >> ${xfconfig}  
144   ;;   ;;
145   XFree86)   XFree86)
146   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/local/"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/local/"' >> ${xfconfig}
147   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"' >> ${xfconfig}
148   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"' >> ${xfconfig}
149   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"' >> ${xfconfig}
  echo '    #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig}  
  echo '    #FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"' >> ${xfconfig}  
  echo '    #FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"' >> ${xfconfig}  
150   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/TrueType/"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/TrueType/"' >> ${xfconfig}
151   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/freefont/"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/freefont/"' >> ${xfconfig}
152   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"' >> ${xfconfig}   echo '    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"' >> ${xfconfig}
# Line 180  config_x11() Line 154  config_x11()
154   ;;   ;;
155   esac   esac
156    
  echo '#    ModulePath "/usr/X11R6/lib/modules"' >> ${xfconfig}  
157   echo 'EndSection' >> ${xfconfig}   echo 'EndSection' >> ${xfconfig}
158    
159   # server flags   # server flags
# Line 197  config_x11() Line 170  config_x11()
170   echo '    Identifier "Keyboard1"' >> ${xfconfig}   echo '    Identifier "Keyboard1"' >> ${xfconfig}
171    
172   case ${xserver} in   case ${xserver} in
173   Xorg)   Xorg) echo '    Driver "kbd"' >> ${xfconfig} ;;
174   echo '    Driver "kbd"' >> ${xfconfig}   XFree86) echo '    Driver "Keyboard"' >> ${xfconfig} ;;
  ;;  
  XFree86)  
  echo '    Driver "Keyboard"' >> ${xfconfig}  
  ;;  
175   esac   esac
176    
177   echo '    Option "AutoRepeat" "500 30"' >> ${xfconfig}   echo '    Option "AutoRepeat" "500 30"' >> ${xfconfig}
178   echo '#    Option "Xleds"      "1 2 3"' >> ${xfconfig}   echo '#    Option "Xleds"      "1 2 3"' >> ${xfconfig}
179    
180   case ${xserver} in   case ${xserver} in
181   Xorg)   Xorg) echo '    Option "XkbRules" "xorg"' >> ${xfconfig} ;;
182   echo '    Option "XkbRules" "xorg"' >> ${xfconfig}   XFree86) echo '    Option "XkbRules" "xfree86"' >> ${xfconfig} ;;
  ;;  
  XFree86)  
  echo '    Option "XkbRules" "xfree86"' >> ${xfconfig}  
  ;;  
183   esac   esac
184    
185   echo '    Option "XkbModel" "pc105"' >> ${xfconfig}   echo '    Option "XkbModel" "pc105"' >> ${xfconfig}
# Line 258  config_x11() Line 223  config_x11()
223   fi   fi
224    
225   # monitor   # monitor
226   if [ -x "/sbin/ddcxinfo-knoppix" ] &&   echo '' >> ${xfconfig}
227     [[ ${ALX_HSYNC} = auto ]] ||   echo 'Section "Monitor"' >> ${xfconfig}
228     [[ ${ALX_VREF} = auto ]]   echo '    Identifier  "Monitor0"' >> ${xfconfig}
229     echo '    Option      "DPMS"' >> ${xfconfig}
230    
231     # add hsync, vrefresh
232     if [[ -x /sbin/ddcxinfo-knoppix ]]
233   then   then
234   ddcxinfo-knoppix -monitor >> ${xfconfig}   local hsync="$(ddcxinfo-knoppix -hsync)"
235   else   local vsync="$(ddcxinfo-knoppix -vsync)"
236     # fallback
237     [[ ${hsync} = 0-0 ]] && hsync="28-96"
238     [[ ${vsync} = 0-0 ]] && vsync="50-60"
239    
240   echo '' >> ${xfconfig}   echo '' >> ${xfconfig}
241   echo "# Monitor: ${ALX_VENDOR} ${ALX_MODEL}" >> ${xfconfig}   echo "    HorizSync ${hsync}"  >> ${xfconfig}
242   echo 'Section "Monitor"' >> ${xfconfig}   echo "    VertRefresh ${vsync}"  >> ${xfconfig}
243   echo '    Identifier  "Monitor0"' >> ${xfconfig}   fi
244   echo "    HorizSync   ${ALX_HSYNC}" >> ${xfconfig}  
245   echo "    VertRefresh ${ALX_VREF}" >> ${xfconfig}   # add cvt modelines
246   echo '    Option      "DPMS"' >> ${xfconfig}   echo '' >> ${xfconfig}
247   echo 'EndSection' >> ${xfconfig}   local cvt="/usr/X11R6/bin/cvt"
248     local modeline
249     modeline=$("${cvt}" "${ALX_RESOLUTION%x*}" "${ALX_RESOLUTION#*x}" "${ALX_REFRESH_RATE}" | sed -e 's:^:\t:g' -e 's:_.*\":\":')
250     echo "${modeline}" >> ${xfconfig}
251     # add ddcxinfo-knoppix modelines (fallback)
252     if [[ -x /sbin/ddcxinfo-knoppix ]]
253     then
254     echo '' >> ${xfconfig}
255     ddcxinfo-knoppix -modelines >> ${xfconfig}
256   fi   fi
257     echo 'EndSection' >> ${xfconfig}
258    
259   # vga   # vga
260   echo '' >> ${xfconfig}   echo '' >> ${xfconfig}
261   echo 'Section "Device"' >> ${xfconfig}   echo 'Section "Device"' >> ${xfconfig}
262   echo '    Identifier  "vga0"' >> ${xfconfig}   echo '    Identifier  "vga0"' >> ${xfconfig}
263     # check for openchrome and use it if available
264     if [[ ${ALX_MODULE} = via ]] && [ -f /usr/X11R6/lib/xorg/modules/drivers/openchrome_drv.so ]
265     then
266     ALX_MODULE="openchrome"
267     fi
268   echo "    Driver      \"${ALX_MODULE}\"" >> ${xfconfig}   echo "    Driver      \"${ALX_MODULE}\"" >> ${xfconfig}
269    
270   # vnc server options   # vnc server options
# Line 316  config_x11() Line 303  config_x11()
303   echo '        ViewPort    0 0' >> ${xfconfig}   echo '        ViewPort    0 0' >> ${xfconfig}
304   echo '    EndSubsection' >> ${xfconfig}   echo '    EndSubsection' >> ${xfconfig}
305    
306   if [[ ${HAS_REALVNC} = yes ]]   if [[ ${HAS_REALVNC} = yes ]] || [[ ${HAS_TIGERVNC} = yes ]]
307   then   then
308   echo '    Option "SecurityTypes" "VncAuth"' >> ${xfconfig}   echo '    Option "SecurityTypes" "VncAuth"' >> ${xfconfig}
309   echo '    Option "UserPasswdVerifier" "VncAuth"' >> ${xfconfig}   echo '    Option "UserPasswdVerifier" "VncAuth"' >> ${xfconfig}
# Line 341  config_x11() Line 328  config_x11()
328    
329   echo 'EndSection' >> ${xfconfig}   echo 'EndSection' >> ${xfconfig}
330    
331   # dri (here disabled, use default of xserver)   # dri
332   echo '' >> ${xfconfig}   echo '' >> ${xfconfig}
333   echo '# Section "DRI"' >> ${xfconfig}   echo 'Section "DRI"' >> ${xfconfig}
334   echo '#    Mode 0666' >> ${xfconfig}   echo '    Mode 0666' >> ${xfconfig}
335   echo '# EndSection' >> ${xfconfig}   echo 'EndSection' >> ${xfconfig}
336  }  }
337    

Legend:
Removed from v.343  
changed lines
  Added in v.1710