1 |
# $Id$ |
# $Id$ |
2 |
# configures the x11 server on the host via mysql db settings |
# configures the x11 server on the host via mysql db settings |
3 |
|
|
|
get_x11_settings() |
|
|
{ |
|
|
local x i all DB_X11SETTINGS |
|
|
# autodetect |
|
|
all=$(mysqldo "select module, |
|
|
resolution, |
|
|
depth, |
|
|
refresh_rate |
|
|
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_REFRESH_RATE="${DB_X11SETTINGS[3]:=NULL}" |
|
|
|
|
|
# which input devices are we using ? |
|
|
ALX_MOUSE=$(mysqldo "select mouse from cfg_input where serial='${ALX_SERIAL}'") |
|
|
export ALX_MOUSE |
|
|
} |
|
|
|
|
4 |
config_display_manager() |
config_display_manager() |
5 |
{ |
{ |
6 |
# setup slim |
# setup slim |
8 |
sed -i "s:@@USERNAME@@:${ALX_UNPRIV_USER}:" /etc/slim.conf |
sed -i "s:@@USERNAME@@:${ALX_UNPRIV_USER}:" /etc/slim.conf |
9 |
|
|
10 |
# windowmanager |
# windowmanager |
11 |
echo "exec startfluxbox" > ${ALX_UNPRIV_HOME}/.xinitrc |
local CONFIG="${ALX_UNPRIV_HOME}/.xinitrc" |
12 |
|
clearconfig |
13 |
|
addconfig "exec startfluxbox" |
14 |
} |
} |
15 |
|
|
16 |
config_x11() |
config_x11() |
18 |
local has_tigervnc |
local has_tigervnc |
19 |
local CONFIG |
local CONFIG |
20 |
|
|
21 |
# get our settings f2rom the db |
# get our settings from the db |
22 |
get_x11_settings |
evaluate_table cfg_graphic |
23 |
|
evaluate_table cfg_input |
24 |
|
|
25 |
# setup displaymanager |
# setup displaymanager |
26 |
config_display_manager |
config_display_manager |
27 |
|
|
28 |
# got we vnc support ? |
# got we vnc support ? |
29 |
if [ -f /usr/X11R6/lib/xorg/modules/extensions/libvnc.so ] |
if [ -f /usr/lib/xorg/modules/extensions/libvnc.so ] |
30 |
then |
then |
31 |
has_tigervnc="yes" |
has_tigervnc="yes" |
32 |
else |
else |
34 |
fi |
fi |
35 |
|
|
36 |
# show which server we use |
# show which server we use |
37 |
echo -en ${COLOREDSTAR}"Configuring Xorg x11-server " |
rc_echo -en ${COLOREDSTAR}"Configuring Xorg x11-server " |
38 |
|
|
39 |
# show if we have vnc |
# show if we have vnc |
40 |
if [[ ${has_tigervnc} = yes ]] |
if [[ ${has_tigervnc} = yes ]] |
41 |
then |
then |
42 |
echo "with tigervnc enabled ..." |
rc_echo "with tigervnc enabled ..." |
43 |
else |
else |
44 |
echo "..." |
rc_echo "..." |
45 |
fi |
fi |
46 |
|
|
47 |
# set_input_keyboard |
# set_input_keyboard |
58 |
clearconfig |
clearconfig |
59 |
addconfig 'Section "Device"' |
addconfig 'Section "Device"' |
60 |
addconfig ' Identifier "Card0"' |
addconfig ' Identifier "Card0"' |
61 |
addconfig " Driver \"${ALX_MODULE}\"" |
|
62 |
|
if [[ $(alx-hwdetection system) = i845 ]] |
63 |
|
then |
64 |
|
addconfig ' # i845 hack - using vesa driver atm' |
65 |
|
addconfig ' Driver "vesa"' |
66 |
|
else |
67 |
|
addconfig " Driver \"${cfg_graphic_module}\"" |
68 |
|
fi |
69 |
|
|
70 |
addconfig 'EndSection' |
addconfig 'EndSection' |
71 |
|
|
72 |
# vnc module |
# vnc module |
75 |
CONFIG="/etc/X11/xorg.conf.d/25-module.conf" |
CONFIG="/etc/X11/xorg.conf.d/25-module.conf" |
76 |
clearconfig |
clearconfig |
77 |
addconfig 'Section "Module"' |
addconfig 'Section "Module"' |
78 |
addconfig ' Load vnc' |
addconfig ' Load "vnc"' |
79 |
addconfig 'EndSection' |
addconfig 'EndSection' |
80 |
fi |
fi |
81 |
|
|
94 |
# fallback |
# fallback |
95 |
[[ ${hsync} = 0-0 ]] && hsync="28-96" |
[[ ${hsync} = 0-0 ]] && hsync="28-96" |
96 |
[[ ${vsync} = 0-0 ]] && vsync="50-60" |
[[ ${vsync} = 0-0 ]] && vsync="50-60" |
97 |
|
|
98 |
addconfig |
addconfig |
99 |
addconfig " HorizSync ${hsync}" |
addconfig " HorizSync ${hsync}" |
100 |
addconfig " VertRefresh ${vsync}" |
addconfig " VertRefresh ${vsync}" |
102 |
|
|
103 |
# add cvt modelines |
# add cvt modelines |
104 |
addconfig |
addconfig |
105 |
local cvt="/usr/X11R6/bin/cvt" |
local cvt="/usr/bin/cvt" |
106 |
local modeline |
local modeline |
107 |
modeline=$("${cvt}" "${ALX_RESOLUTION%x*}" "${ALX_RESOLUTION#*x}" "${ALX_REFRESH_RATE}" | sed -e 's:^:\t:g' -e 's:_.*\":\":') |
modeline=$("${cvt}" "${cfg_graphic_resolution%x*}" "${cfg_graphic_resolution#*x}" "${cfg_graphic_refresh_rate}" | sed -e 's:^:\t:g' -e 's:_.*\":\":') |
108 |
addconfig "${modeline}" |
addconfig "${modeline}" |
109 |
# add ddcxinfo-knoppix modelines (fallback) |
# add ddcxinfo-knoppix modelines (fallback) |
110 |
if [[ -x /sbin/ddcxinfo-knoppix ]] |
if [[ -x /sbin/ddcxinfo-knoppix ]] |
120 |
addconfig 'Section "Screen"' |
addconfig 'Section "Screen"' |
121 |
addconfig ' Identifier "Screen0"' |
addconfig ' Identifier "Screen0"' |
122 |
addconfig ' Monitor "Monitor0"' |
addconfig ' Monitor "Monitor0"' |
123 |
addconfig " DefaultDepth ${ALX_DEPTH}" |
addconfig " DefaultDepth ${cfg_graphic_depth}" |
124 |
addconfig ' SubSection "Display"' |
addconfig ' SubSection "Display"' |
125 |
addconfig " Depth ${ALX_DEPTH}" |
addconfig " Depth ${cfg_graphic_depth}" |
126 |
addconfig " Modes \"${ALX_RESOLUTION}\"" |
addconfig " Modes \"${cfg_graphic_resolution}\"" |
127 |
addconfig ' ViewPort 0 0' |
addconfig ' ViewPort 0 0' |
128 |
addconfig ' EndSubSection' |
addconfig ' EndSubSection' |
129 |
# vnc auth |
# vnc auth |
135 |
fi |
fi |
136 |
addconfig 'EndSection' |
addconfig 'EndSection' |
137 |
|
|
138 |
|
# disable screen blanks, use xscreensaver for it |
139 |
|
CONFIG="/etc/X11/xorg.conf.d/25-server.conf" |
140 |
|
clearconfig |
141 |
|
addconfig 'Section "ServerFlags"' |
142 |
|
addconfig ' Option "BlankTime" "0"' |
143 |
|
addconfig ' Option "StandbyTime" "0"' |
144 |
|
addconfig ' Option "SuspendTime" "0"' |
145 |
|
addconfig ' Option "OffTime" "0"' |
146 |
|
addconfig 'EndSection' |
147 |
|
|
148 |
|
# fixes |
149 |
|
# disable LVDS-1 on zotacs or enable it if hdmi was requested |
150 |
|
if [[ $(alx-hwdetection system) = zotac ]] |
151 |
|
then |
152 |
|
CONFIG="/etc/X11/xorg.conf.d/30-fix-zotac.conf" |
153 |
|
clearconfig |
154 |
|
addconfig 'Section "Monitor"' |
155 |
|
addconfig ' Identifier "LVDS1"' |
156 |
|
if [[ ${cfg_graphic_hdmi} = enable ]] |
157 |
|
then |
158 |
|
# add cvt modelines |
159 |
|
addconfig |
160 |
|
local cvt="/usr/bin/cvt" |
161 |
|
local modeline |
162 |
|
modeline=$("${cvt}" "${cfg_graphic_resolution%x*}" "${cfg_graphic_resolution#*x}" "${cfg_graphic_refresh_rate}" | sed -e 's:^:\t:g' -e 's:_.*\":\":') |
163 |
|
addconfig "${modeline}" |
164 |
|
else |
165 |
|
addconfig ' Option "Ignore" "True"' |
166 |
|
fi |
167 |
|
addconfig 'EndSection' |
168 |
|
else |
169 |
|
# clear this file |
170 |
|
if [ -f /etc/X11/xorg.conf.d/30-fix-zotac.conf ] |
171 |
|
then |
172 |
|
rm /etc/X11/xorg.conf.d/30-fix-zotac.conf |
173 |
|
fi |
174 |
|
fi |
175 |
} |
} |