Annotation of /alx-src/branches/alxconf-060/functions/config_x11.sh
Parent Directory | Revision Log
Revision 543 -
(hide annotations)
(download)
(as text)
Wed Feb 4 19:51:39 2009 UTC (15 years, 7 months ago) by niro
Original Path: alx-src/branches/alxconf_20060908/alxconfig-ng/functions/config_x11.sh
File MIME type: application/x-sh
File size: 10847 byte(s)
Wed Feb 4 19:51:39 2009 UTC (15 years, 7 months ago) by niro
Original Path: alx-src/branches/alxconf_20060908/alxconfig-ng/functions/config_x11.sh
File MIME type: application/x-sh
File size: 10847 byte(s)
- created alxconf_20060908 branch for the stable-050 alx based on tag alxconf_20060908_1
1 | niro | 343 | # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_x11.sh,v 1.9 2005-10-09 21:31:54 niro Exp $ |
2 | niro | 218 | # configures the x11 server on the host via mysql db settings |
3 | |||
4 | get_x11_settings() | ||
5 | { | ||
6 | local x i all DB_X11SETTINGS | ||
7 | |||
8 | # autodetect or not ? | ||
9 | niro | 343 | if [ $(mysqldo "select monitorid from cfg_graphic where serial='${ALX_SERIAL}'") -gt 0 ] |
10 | niro | 218 | then |
11 | # settings from db | ||
12 | |||
13 | niro | 343 | all=$(mysqldo "select cfg_graphic.module, |
14 | niro | 218 | cfg_graphic.resolution, |
15 | cfg_graphic.depth, | ||
16 | list_monitors.vendor, | ||
17 | list_monitors.model, | ||
18 | list_monitors.hsync, | ||
19 | list_monitors.vrefresh | ||
20 | from list_monitors | ||
21 | inner join cfg_graphic | ||
22 | on cfg_graphic.monitorid=list_monitors.id | ||
23 | and cfg_graphic.serial='${ALX_SERIAL}';") | ||
24 | |||
25 | niro | 343 | # split'em up and put 'em in an array |
26 | niro | 218 | declare -i i=0 |
27 | for x in ${all} | ||
28 | do | ||
29 | DB_X11SETTINGS[${i}]="${x}" | ||
30 | ((i++)) | ||
31 | done | ||
32 | |||
33 | # and now put them in usable var names and export them systemwide | ||
34 | export ALX_MODULE="${DB_X11SETTINGS[0]:=NULL}" | ||
35 | export ALX_RESOLUTION="${DB_X11SETTINGS[1]:=NULL}" | ||
36 | export ALX_DEPTH="${DB_X11SETTINGS[2]:=NULL}" | ||
37 | export ALX_VENDOR="${DB_X11SETTINGS[3]:=NULL}" | ||
38 | export ALX_MODEL="${DB_X11SETTINGS[4]:=NULL}" | ||
39 | export ALX_HSYNC="${DB_X11SETTINGS[5]:=NULL}" | ||
40 | export ALX_VREF="${DB_X11SETTINGS[6]:=NULL}" | ||
41 | else | ||
42 | # autodetect | ||
43 | niro | 343 | all=$(mysqldo "select module, |
44 | niro | 218 | resolution, |
45 | depth | ||
46 | from cfg_graphic where serial='${ALX_SERIAL}'") | ||
47 | |||
48 | niro | 343 | # split'em up and put 'em in an array |
49 | niro | 218 | declare -i i=0 |
50 | for x in ${all} | ||
51 | do | ||
52 | DB_X11SETTINGS[${i}]="${x}" | ||
53 | ((i++)) | ||
54 | done | ||
55 | |||
56 | # and now put them in usable var names and export them systemwide | ||
57 | export ALX_MODULE="${DB_X11SETTINGS[0]:=NULL}" | ||
58 | export ALX_RESOLUTION="${DB_X11SETTINGS[1]:=NULL}" | ||
59 | export ALX_DEPTH="${DB_X11SETTINGS[2]:=NULL}" | ||
60 | export ALX_VENDOR="Autodetected" | ||
61 | export ALX_MODEL="Monitor" | ||
62 | export ALX_HSYNC="auto" | ||
63 | export ALX_VREF="auto" | ||
64 | fi | ||
65 | |||
66 | niro | 343 | # which input devices are we using ? |
67 | ALX_MOUSE=$(mysqldo "select mouse from cfg_input where serial='${ALX_SERIAL}'") | ||
68 | niro | 218 | export ALX_MOUSE |
69 | } | ||
70 | |||
71 | niro | 343 | config_x11() |
72 | { | ||
73 | niro | 218 | # get our settings from the db |
74 | get_x11_settings | ||
75 | |||
76 | local xserver | ||
77 | local xfconfig | ||
78 | local HAS_VNC | ||
79 | niro | 325 | local HAS_REALVNC |
80 | niro | 218 | |
81 | niro | 343 | # xfree or xorg ? |
82 | niro | 218 | xserver="$(readlink /usr/X11R6/bin/X)" |
83 | |||
84 | case ${xserver} in | ||
85 | Xorg) | ||
86 | xfconfig=/etc/X11/xorg.conf | ||
87 | ;; | ||
88 | XFree86) | ||
89 | xfconfig=/etc/X11/XF86Config | ||
90 | ;; | ||
91 | *) | ||
92 | echo " Unkown xserver. aborting." | ||
93 | exit 1 | ||
94 | ;; | ||
95 | esac | ||
96 | |||
97 | niro | 343 | # got we vnc support ? |
98 | niro | 218 | if [ -f /usr/X11R6/lib/modules/vnc.so ] |
99 | then | ||
100 | HAS_VNC="yes" | ||
101 | else | ||
102 | HAS_VNC="no" | ||
103 | fi | ||
104 | |||
105 | niro | 325 | if [ -f /usr/X11R6/lib/modules/extensions/vnc.so ] |
106 | then | ||
107 | HAS_REALVNC="yes" | ||
108 | else | ||
109 | HAS_REALVNC="no" | ||
110 | fi | ||
111 | |||
112 | niro | 343 | # show which server we use |
113 | niro | 218 | echo -en ${COLOREDSTAR}"Using '${xserver}' as x11-server " |
114 | |||
115 | niro | 343 | # show if we have vnc |
116 | if [[ ${HAS_VNC} = yes ]] | ||
117 | niro | 218 | then |
118 | echo "with vnc enabled ..." | ||
119 | niro | 343 | elif [[ ${HAS_REALVNC} = yes ]] |
120 | niro | 325 | then |
121 | echo "with realvnc enabled ..." | ||
122 | niro | 218 | else |
123 | echo "..." | ||
124 | fi | ||
125 | |||
126 | niro | 343 | # create a new clear xfconfig file |
127 | niro | 218 | echo '# Generated with hwdetect, part of Magellan-Linux initscripts.' > ${xfconfig} |
128 | echo '' >> ${xfconfig} | ||
129 | |||
130 | niro | 343 | # write modules |
131 | niro | 218 | echo '' >> ${xfconfig} |
132 | echo 'Section "Module"' >> ${xfconfig} | ||
133 | echo ' Load "dbe"' >> ${xfconfig} | ||
134 | echo ' SubSection "extmod"' >> ${xfconfig} | ||
135 | echo ' Option "omit xfree86-dga"' >> ${xfconfig} | ||
136 | echo ' EndSubSection' >> ${xfconfig} | ||
137 | echo ' Load "type1"' >> ${xfconfig} | ||
138 | echo ' Load "speedo"' >> ${xfconfig} | ||
139 | echo ' Load "freetype"' >> ${xfconfig} | ||
140 | echo '# Load "xtt"' >> ${xfconfig} | ||
141 | echo '# Load "glx"' >> ${xfconfig} | ||
142 | echo ' Load "dri"' >> ${xfconfig} | ||
143 | |||
144 | niro | 343 | [[ ${HAS_VNC} = yes ]] && echo ' Load "vnc"' >> ${xfconfig} |
145 | [[ ${HAS_REALVNC} = yes ]] && echo ' Load "vnc"' >> ${xfconfig} | ||
146 | niro | 218 | |
147 | echo 'EndSection' >> ${xfconfig} | ||
148 | |||
149 | niro | 343 | # fonts |
150 | niro | 218 | echo '' >> ${xfconfig} |
151 | echo 'Section "Files"' >> ${xfconfig} | ||
152 | echo ' RgbPath "/usr/X11R6/lib/X11/rgb"' >> ${xfconfig} | ||
153 | |||
154 | case ${xserver} in | ||
155 | Xorg) | ||
156 | echo ' FontPath "/usr/share/fonts/local/"' >> ${xfconfig} | ||
157 | echo ' FontPath "/usr/share/fonts/misc/"' >> ${xfconfig} | ||
158 | echo ' FontPath "/usr/share/fonts/75dpi/:unscaled"' >> ${xfconfig} | ||
159 | echo ' FontPath "/usr/share/fonts/100dpi/:unscaled"' >> ${xfconfig} | ||
160 | echo ' #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig} | ||
161 | echo ' #FontPath "/usr/share/fonts/Speedo/"' >> ${xfconfig} | ||
162 | echo ' #FontPath "/usr/share/fonts/Type1/"' >> ${xfconfig} | ||
163 | echo ' FontPath "/usr/share/fonts/TrueType/"' >> ${xfconfig} | ||
164 | echo ' FontPath "/usr/share/fonts/freefont/"' >> ${xfconfig} | ||
165 | echo ' FontPath "/usr/share/fonts/75dpi/"' >> ${xfconfig} | ||
166 | echo ' FontPath "/usr/share/fonts/100dpi/"' >> ${xfconfig} | ||
167 | ;; | ||
168 | XFree86) | ||
169 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/local/"' >> ${xfconfig} | ||
170 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/misc/"' >> ${xfconfig} | ||
171 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"' >> ${xfconfig} | ||
172 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"' >> ${xfconfig} | ||
173 | echo ' #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig} | ||
174 | echo ' #FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"' >> ${xfconfig} | ||
175 | echo ' #FontPath "/usr/X11R6/lib/X11/fonts/Type1/"' >> ${xfconfig} | ||
176 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/TrueType/"' >> ${xfconfig} | ||
177 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/freefont/"' >> ${xfconfig} | ||
178 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"' >> ${xfconfig} | ||
179 | echo ' FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"' >> ${xfconfig} | ||
180 | ;; | ||
181 | esac | ||
182 | |||
183 | echo '# ModulePath "/usr/X11R6/lib/modules"' >> ${xfconfig} | ||
184 | echo 'EndSection' >> ${xfconfig} | ||
185 | |||
186 | niro | 343 | # server flags |
187 | niro | 218 | echo '' >> ${xfconfig} |
188 | echo 'Section "ServerFlags"' >> ${xfconfig} | ||
189 | echo '# Option "DontVTSwitch"' >> ${xfconfig} | ||
190 | echo '# Option "DontZap"' >> ${xfconfig} | ||
191 | echo '# Option "Dont Zoom"' >> ${xfconfig} | ||
192 | echo 'EndSection' >> ${xfconfig} | ||
193 | |||
194 | niro | 343 | # keyboard |
195 | niro | 218 | echo '' >> ${xfconfig} |
196 | echo 'Section "InputDevice"' >> ${xfconfig} | ||
197 | echo ' Identifier "Keyboard1"' >> ${xfconfig} | ||
198 | |||
199 | case ${xserver} in | ||
200 | Xorg) | ||
201 | echo ' Driver "kbd"' >> ${xfconfig} | ||
202 | ;; | ||
203 | XFree86) | ||
204 | echo ' Driver "Keyboard"' >> ${xfconfig} | ||
205 | ;; | ||
206 | esac | ||
207 | |||
208 | echo ' Option "AutoRepeat" "500 30"' >> ${xfconfig} | ||
209 | echo '# Option "Xleds" "1 2 3"' >> ${xfconfig} | ||
210 | |||
211 | case ${xserver} in | ||
212 | Xorg) | ||
213 | echo ' Option "XkbRules" "xorg"' >> ${xfconfig} | ||
214 | ;; | ||
215 | XFree86) | ||
216 | echo ' Option "XkbRules" "xfree86"' >> ${xfconfig} | ||
217 | ;; | ||
218 | esac | ||
219 | |||
220 | niro | 278 | echo ' Option "XkbModel" "pc105"' >> ${xfconfig} |
221 | niro | 218 | echo ' Option "XkbLayout" "de"' >> ${xfconfig} |
222 | echo 'EndSection' >> ${xfconfig} | ||
223 | |||
224 | niro | 343 | # mouse |
225 | niro | 218 | echo '' >> ${xfconfig} |
226 | echo 'Section "InputDevice"' >> ${xfconfig} | ||
227 | echo ' Identifier "Mouse1"' >> ${xfconfig} | ||
228 | echo ' Driver "mouse"' >> ${xfconfig} | ||
229 | echo " Option \"Protocol\" \"${ALX_MOUSE}\"" >> ${xfconfig} | ||
230 | |||
231 | local device | ||
232 | case ${ALX_MOUSE} in | ||
233 | IMPS/2|PS/2) device=/dev/psaux;; | ||
234 | Auto) device=/dev/mouse;; | ||
235 | *) device=/dev/mouse;; | ||
236 | esac | ||
237 | niro | 223 | echo " Option \"Device\" \"${device}\"" >> ${xfconfig} |
238 | niro | 218 | echo ' Option "Resolution" "1200"' >> ${xfconfig} |
239 | |||
240 | niro | 343 | [[ ${ALX_MOUSE} = IMPS/2 ]] && echo ' Option "ZAxisMapping" "4 5"' >> ${xfconfig} |
241 | niro | 218 | |
242 | echo 'EndSection' >> ${xfconfig} | ||
243 | |||
244 | niro | 343 | # vnc keyboard && mouse |
245 | if [[ ${HAS_VNC} = yes ]] | ||
246 | niro | 218 | then |
247 | echo '' >> ${xfconfig} | ||
248 | echo 'Section "InputDevice"' >> ${xfconfig} | ||
249 | echo ' Identifier "vncKeyboard"' >> ${xfconfig} | ||
250 | echo ' Driver "rfbkeyb"' >> ${xfconfig} | ||
251 | echo 'EndSection' >> ${xfconfig} | ||
252 | |||
253 | echo '' >> ${xfconfig} | ||
254 | echo 'Section "InputDevice"' >> ${xfconfig} | ||
255 | echo ' Identifier "vncMouse"' >> ${xfconfig} | ||
256 | echo ' Driver "rfbmouse"' >> ${xfconfig} | ||
257 | echo 'EndSection' >> ${xfconfig} | ||
258 | fi | ||
259 | |||
260 | niro | 343 | # monitor |
261 | niro | 218 | if [ -x "/sbin/ddcxinfo-knoppix" ] && |
262 | niro | 343 | [[ ${ALX_HSYNC} = auto ]] || |
263 | [[ ${ALX_VREF} = auto ]] | ||
264 | niro | 218 | then |
265 | ddcxinfo-knoppix -monitor >> ${xfconfig} | ||
266 | else | ||
267 | echo '' >> ${xfconfig} | ||
268 | echo "# Monitor: ${ALX_VENDOR} ${ALX_MODEL}" >> ${xfconfig} | ||
269 | echo 'Section "Monitor"' >> ${xfconfig} | ||
270 | echo ' Identifier "Monitor0"' >> ${xfconfig} | ||
271 | echo " HorizSync ${ALX_HSYNC}" >> ${xfconfig} | ||
272 | echo " VertRefresh ${ALX_VREF}" >> ${xfconfig} | ||
273 | echo ' Option "DPMS"' >> ${xfconfig} | ||
274 | echo 'EndSection' >> ${xfconfig} | ||
275 | fi | ||
276 | |||
277 | niro | 343 | # vga |
278 | niro | 218 | echo '' >> ${xfconfig} |
279 | echo 'Section "Device"' >> ${xfconfig} | ||
280 | echo ' Identifier "vga0"' >> ${xfconfig} | ||
281 | echo " Driver \"${ALX_MODULE}\"" >> ${xfconfig} | ||
282 | |||
283 | niro | 343 | # vnc server options |
284 | if [[ ${HAS_VNC} = yes ]] | ||
285 | niro | 218 | then |
286 | echo '' >> ${xfconfig} | ||
287 | echo ' # rfb options' >> ${xfconfig} | ||
288 | echo ' Option "rfbauth" "/root/.vnc/passwd"' >> ${xfconfig} | ||
289 | echo ' Option "rfbport" "5900"' >> ${xfconfig} | ||
290 | echo ' #Option "nevershared"' >> ${xfconfig} | ||
291 | echo ' Option "alwaysshared"' >> ${xfconfig} | ||
292 | echo ' Option "dontdisconnect"' >> ${xfconfig} | ||
293 | echo ' Option "httpdir" "/usr/share/vnc/classes"' >> ${xfconfig} | ||
294 | echo ' Option "httpport" "5800"' >> ${xfconfig} | ||
295 | echo ' # Option "useraccept"' >> ${xfconfig} | ||
296 | echo ' Option "usevnc"' >> ${xfconfig} | ||
297 | echo ' # Option "localhost"' >> ${xfconfig} | ||
298 | echo ' # Option "interface" "192.168.0.1"' >> ${xfconfig} | ||
299 | echo ' # Option "viewonly"' >> ${xfconfig} | ||
300 | echo ' # Option "loginauth"' >> ${xfconfig} | ||
301 | echo '' >> ${xfconfig} | ||
302 | fi | ||
303 | |||
304 | echo 'EndSection' >> ${xfconfig} | ||
305 | |||
306 | niro | 343 | # screens |
307 | niro | 218 | echo '' >> ${xfconfig} |
308 | echo 'Section "Screen"' >> ${xfconfig} | ||
309 | echo ' Identifier "Screen 1"' >> ${xfconfig} | ||
310 | echo ' Device "vga0"' >> ${xfconfig} | ||
311 | echo ' Monitor "Monitor0"' >> ${xfconfig} | ||
312 | echo " DefaultDepth ${ALX_DEPTH}" >> ${xfconfig} | ||
313 | echo ' Subsection "Display"' >> ${xfconfig} | ||
314 | echo " Depth ${ALX_DEPTH}" >> ${xfconfig} | ||
315 | echo " Modes \"${ALX_RESOLUTION}\"" >> ${xfconfig} | ||
316 | echo ' ViewPort 0 0' >> ${xfconfig} | ||
317 | echo ' EndSubsection' >> ${xfconfig} | ||
318 | niro | 325 | |
319 | niro | 343 | if [[ ${HAS_REALVNC} = yes ]] |
320 | niro | 325 | then |
321 | echo ' Option "SecurityTypes" "VncAuth"' >> ${xfconfig} | ||
322 | echo ' Option "UserPasswdVerifier" "VncAuth"' >> ${xfconfig} | ||
323 | echo ' Option "PasswordFile" "/root/.vnc/passwd"' >> ${xfconfig} | ||
324 | fi | ||
325 | niro | 218 | echo 'EndSection' >> ${xfconfig} |
326 | |||
327 | niro | 343 | # server layout |
328 | niro | 218 | echo '' >> ${xfconfig} |
329 | echo 'Section "ServerLayout"' >> ${xfconfig} | ||
330 | echo ' Identifier "Simple Layout"' >> ${xfconfig} | ||
331 | echo ' Screen "Screen 1"' >> ${xfconfig} | ||
332 | echo ' InputDevice "Mouse1" "CorePointer"' >> ${xfconfig} | ||
333 | echo ' InputDevice "Keyboard1" "CoreKeyboard"' >> ${xfconfig} | ||
334 | |||
335 | niro | 343 | # load vnc keyboard && mouse |
336 | if [[ ${HAS_VNC} = yes ]] | ||
337 | niro | 218 | then |
338 | echo ' InputDevice "vncMouse" "ExtraPointer"' >> ${xfconfig} | ||
339 | echo ' InputDevice "vncKeyboard" "ExtraKeyboard"' >> ${xfconfig} | ||
340 | fi | ||
341 | |||
342 | echo 'EndSection' >> ${xfconfig} | ||
343 | |||
344 | niro | 343 | # dri (here disabled, use default of xserver) |
345 | niro | 218 | echo '' >> ${xfconfig} |
346 | echo '# Section "DRI"' >> ${xfconfig} | ||
347 | echo '# Mode 0666' >> ${xfconfig} | ||
348 | echo '# EndSection' >> ${xfconfig} | ||
349 | } | ||
350 |