| 1 | <?xml version='1.0' encoding='UTF-8'?> |
1 | <?xml version='1.0' encoding='UTF-8'?> |
| 2 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
2 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
| 3 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.28 2009/01/26 08:08:22 nightmorph Exp $ --> |
3 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.32 2009/12/09 01:35:03 nightmorph Exp $ --> |
| 4 | |
4 | |
| 5 | <guide link="/doc/en/xorg-config.xml"> |
5 | <guide> |
| 6 | <title>The X Server Configuration HOWTO</title> |
6 | <title>The X Server Configuration HOWTO</title> |
| 7 | |
7 | |
| 8 | <author title="Author"> |
8 | <author title="Author"> |
| 9 | <mail link="swift@gentoo.org">Sven Vermeulen</mail> |
9 | <mail link="swift@gentoo.org">Sven Vermeulen</mail> |
| 10 | </author> |
10 | </author> |
| 11 | <author title="Editor"> |
11 | <author title="Author"> |
| 12 | <mail link="nightmorph"/> |
12 | <mail link="nightmorph"/> |
| 13 | </author> |
13 | </author> |
| 14 | |
14 | |
| 15 | <abstract> |
15 | <abstract> |
| 16 | Xorg is the X Window server which allows users to have a graphical |
16 | Xorg is the X Window server which allows users to have a graphical |
| … | |
… | |
| 20 | |
20 | |
| 21 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
21 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
| 22 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
22 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
| 23 | <license/> |
23 | <license/> |
| 24 | |
24 | |
| 25 | <version>1.19</version> |
25 | <version>1.23</version> |
| 26 | <date>2009-01-26</date> |
26 | <date>2009-12-08</date> |
| 27 | |
27 | |
| 28 | <chapter> |
28 | <chapter> |
| 29 | <title>What is the X Window Server?</title> |
29 | <title>What is the X Window Server?</title> |
| 30 | <section> |
30 | <section> |
| 31 | <title>Graphical vs Command-Line</title> |
31 | <title>Graphical vs Command-Line</title> |
| … | |
… | |
| 86 | </chapter> |
86 | </chapter> |
| 87 | |
87 | |
| 88 | <chapter> |
88 | <chapter> |
| 89 | <title>Installing Xorg</title> |
89 | <title>Installing Xorg</title> |
| 90 | <section> |
90 | <section> |
|
|
91 | <title>Kernel configuration</title> |
|
|
92 | <body> |
|
|
93 | |
|
|
94 | <p> |
|
|
95 | By default, Xorg uses <c>evdev</c>, a generic input driver. You'll need to |
|
|
96 | activate support for <c>evdev</c> by making a change to your kernel |
|
|
97 | configuration. (Read the |
|
|
98 | <uri link="/doc/en/kernel-config.xml">Kernel Configuration Guide</uri> if you |
|
|
99 | don't know how to setup your kernel.) |
|
|
100 | </p> |
|
|
101 | |
|
|
102 | <pre caption="Enabling evdev in the kernel"> |
|
|
103 | Device Drivers ---> |
|
|
104 | Input device support ---> |
|
|
105 | <*> Event interface |
|
|
106 | </pre> |
|
|
107 | |
| 91 | <body> |
108 | </body> |
|
|
109 | </section> |
|
|
110 | <section> |
|
|
111 | <title>make.conf configuration</title> |
|
|
112 | <body> |
| 92 | |
113 | |
| 93 | <p> |
114 | <p> |
| 94 | Before installing Xorg you have to configure two important variables in the |
115 | Before you install Xorg, you have to configure two important variables in the |
| 95 | <path>/etc/make.conf</path> file. |
116 | <path>/etc/make.conf</path> file. |
| 96 | </p> |
117 | </p> |
| 97 | |
118 | |
| 98 | <p> |
119 | <p> |
| 99 | The first one is <c>VIDEO_CARDS</c>. This is used to set the video drivers that |
120 | The first variable is <c>VIDEO_CARDS</c>. This is used to set the video drivers |
| 100 | you intend to use and is usually based on the kind and brand of card you have. |
121 | that you intend to use and is usually based on the kind and brand of card you |
| 101 | The most common settings are <c>nvidia</c> for Nvidia cards or <c>fglrx</c> for |
122 | have. The most common settings are <c>nvidia</c> for Nvidia cards or |
| 102 | ATI Radeon cards. Those are the proprietary drivers from Nvidia and ATI |
123 | <c>fglrx</c> for ATI Radeon cards. Those are the proprietary drivers from Nvidia |
| 103 | respectively. If you would like to use the open source versions, use <c>nv</c> |
124 | and ATI respectively. If you would like to use the open source nVidia driver, |
| 104 | rather than <c>nvidia</c> in the variable, but bear in mind that using this |
125 | use <c>nv</c> rather than <c>nvidia</c> in the variable, but bear in mind that |
| 105 | driver means no 3D acceleration at all. The free <c>radeon</c> and |
126 | using this driver means no 3D acceleration at all. The free <c>radeon</c> and |
| 106 | <c>radeonhd</c> drivers for ATI cards support 3D acceleration on older Radeons |
127 | <c>radeonhd</c> drivers are available for ATI cards, and are more or less the |
| 107 | but don't yet support all the features of the newer ones. <c>VIDEO_CARDS</c> may |
128 | equal of the proprietary <c>fglrx</c> driver. The <c>intel</c> driver may be |
| 108 | contain more than one driver, in this case list of them should be separated with |
129 | used for desktops or laptops with common Intel integrated graphics chipsets. |
| 109 | spaces. |
130 | <c>VIDEO_CARDS</c> may contain more than one driver, in this case list of them |
|
|
131 | should be separated with spaces. |
| 110 | </p> |
132 | </p> |
| 111 | |
133 | |
| 112 | <p> |
134 | <p> |
| 113 | The second variable is <c>INPUT_DEVICES</c> and is used to determine which |
135 | The second variable is <c>INPUT_DEVICES</c> and is used to determine which |
| 114 | drivers are to be built for input devices. In most cases setting it to |
136 | drivers are to be built for input devices. In most cases setting it to |
| 115 | <c>keyboard mouse</c> should work just fine. If you use alternative input |
137 | <c>evdev</c> should work just fine. If you use alternative input |
| 116 | devices, such as a Synaptics touchpad for a laptop, be sure to add it to |
138 | devices, such as a Synaptics touchpad for a laptop, be sure to add it to |
| 117 | <c>INPUT_DEVICES</c>. |
139 | <c>INPUT_DEVICES</c>. |
| 118 | </p> |
140 | </p> |
| 119 | |
141 | |
| 120 | <p> |
142 | <p> |
| 121 | Now you should decide which drivers you will use and add necessary settings to |
143 | Now you should decide which drivers you will use and add necessary settings to |
| 122 | the <path>/etc/make.conf</path> file: |
144 | the <path>/etc/make.conf</path> file: |
| 123 | </p> |
145 | </p> |
| 124 | |
146 | |
| 125 | <pre caption="Sample make.conf entries"> |
147 | <pre caption="Sample make.conf entries"> |
| 126 | <comment>(For mouse and keyboard support)</comment> |
148 | <comment>(For mouse, keyboard, and Synaptics touchpad support)</comment> |
| 127 | INPUT_DEVICES="keyboard mouse" |
149 | INPUT_DEVICES="evdev synaptics" |
| 128 | <comment>(For Nvidia cards)</comment> |
150 | <comment>(For Nvidia cards)</comment> |
| 129 | VIDEO_CARDS="nvidia" |
151 | VIDEO_CARDS="nvidia" |
| 130 | <comment>(OR, for ATI Radeon cards)</comment> |
152 | <comment>(OR, for ATI Radeon cards)</comment> |
| 131 | VIDEO_CARDS="fglrx" |
153 | VIDEO_CARDS="radeon" |
| 132 | </pre> |
154 | </pre> |
| 133 | |
155 | |
| 134 | <p> |
156 | <note> |
| 135 | More instructions on how to configure nVidia and ATI cards can be found in |
157 | More instructions on how to configure nVidia and ATI cards can be found in the |
| 136 | <uri link="/doc/en/nvidia-guide.xml">Gentoo Linux nVidia Guide</uri> and in |
158 | <uri link="/doc/en/nvidia-guide.xml">Gentoo Linux nVidia Guide</uri> and in the |
| 137 | <uri link="/doc/en/ati-faq.xml">Gentoo Linux ATI FAQ</uri>. If you don't know |
159 | <uri link="/doc/en/ati-faq.xml">Gentoo Linux ATI FAQ</uri>. If you don't know |
| 138 | which drivers you should choose, refer to these guides for more information. |
160 | which drivers you should choose, refer to these guides for more information. |
| 139 | </p> |
|
|
| 140 | |
|
|
| 141 | <note> |
161 | </note> |
|
|
162 | |
|
|
163 | <p> |
| 142 | If the suggested settings don't work for you, you should run <c>emerge -pv |
164 | If the suggested settings don't work for you, you should run <c>emerge -pv |
| 143 | xorg-server</c>, check all the options available and choose those which apply to |
165 | xorg-server</c>, check all the options available and choose those which apply to |
| 144 | your system. The example is for the amd64 architecture and |
166 | your system. This example is for a system with a keyboard, mouse, Synaptics |
| 145 | <c>xorg-server-1.2</c>. |
167 | touchpad, and a Radeon video card. |
| 146 | </note> |
168 | </p> |
| 147 | |
169 | |
| 148 | <pre caption="Displaying all the driver options available"> |
170 | <pre caption="Displaying all the driver options available"> |
| 149 | # <i>emerge -pv xorg-server</i> |
171 | # <i>emerge -pv xorg-server</i> |
| 150 | |
172 | |
| 151 | These are the packages that would be merged, in order: |
173 | These are the packages that would be merged, in order: |
| 152 | |
174 | |
| 153 | Calculating dependencies... done! |
175 | Calculating dependencies... done! |
| 154 | [ebuild R ] x11-base/xorg-server-1.2.0-r3 USE="dri nptl xorg (-3dfx) -debug |
176 | [ebuild R ] x11-base/xorg-server-1.6.3.901-r2 USE="hal nptl xorg -debug |
| 155 | -dmx -ipv6 -kdrive -minimal -sdl -xprint" INPUT_DEVICES="keyboard mouse -acecad |
177 | -dmx -ipv6 -kdrive -minimal -sdl -tslib" 0 kB |
| 156 | -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -evdev |
178 | [ebuild R ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev synaptics |
| 157 | -fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax |
179 | -acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -keyboard -mouse |
| 158 | -penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse -void -wacom" |
180 | -mutouch -penmount -tslib -virtualbox -vmmouse -void -wacom" |
| 159 | VIDEO_CARDS="nvidia -apm -ark -chips -cirrus -cyrix -dummy -epson -fbdev -fglrx |
181 | VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx |
| 160 | -glint -i128 (-i740) -i810 (-impact) (-imstt) -mach64 -mga -neomagic (-newport) |
182 | (-geode) -glint -i128 (-i740) (-impact) (-imstt) -intel -mach64 -mga -neomagic |
| 161 | (-nsc) -nv -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis |
183 | (-newport) -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage |
| 162 | -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) |
184 | -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) |
| 163 | -tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB |
185 | (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l (-vermilion) -vesa -via |
|
|
186 | -virtualbox -vmware (-voodoo) (-xgi)" 0 kB |
| 164 | </pre> |
187 | </pre> |
| 165 | |
188 | |
| 166 | <p> |
189 | <p> |
| 167 | After setting all the necessary variables you can install the Xorg package. |
190 | After setting all the necessary variables you can install the Xorg package. |
| 168 | </p> |
191 | </p> |
| 169 | |
192 | |
| 170 | <pre caption="Installing Xorg"> |
193 | <pre caption="Installing Xorg"> |
| 171 | # <i>emerge xorg-x11</i> |
194 | # <i>emerge xorg-server</i> |
| 172 | </pre> |
195 | </pre> |
| 173 | |
196 | |
|
|
197 | <note> |
|
|
198 | You could install the <c>xorg-x11</c> metapackage instead of the more |
|
|
199 | lightweight <c>xorg-server</c>. Functionally, <c>xorg-x11</c> and |
|
|
200 | <c>xorg-server</c> are the same. However, <c>xorg-x11</c> brings in many more |
|
|
201 | packages that you probably don't need, such as a huge assortment of fonts in |
|
|
202 | many different languages. They're not necessary for a working desktop. |
|
|
203 | </note> |
|
|
204 | |
| 174 | <p> |
205 | <p> |
| 175 | When the installation is finished, you might need to re-initialise some |
206 | When the installation is finished, you will need to re-initialise some |
| 176 | environment variables before you continue. Just run <c>env-update</c> followed |
207 | environment variables before you continue. Just run <c>env-update</c> followed |
| 177 | by <c>source /etc/profile</c> and you're all set. |
208 | by <c>source /etc/profile</c> and you're all set. |
| 178 | </p> |
209 | </p> |
| 179 | |
210 | |
| 180 | <pre caption="Re-initialising the environment variables"> |
211 | <pre caption="Re-initialising the environment variables"> |
| … | |
… | |
| 183 | </pre> |
214 | </pre> |
| 184 | |
215 | |
| 185 | </body> |
216 | </body> |
| 186 | </section> |
217 | </section> |
| 187 | </chapter> |
218 | </chapter> |
|
|
219 | |
| 188 | <chapter> |
220 | <chapter> |
| 189 | <title>Configuring Xorg</title> |
221 | <title>Configuring Xorg</title> |
| 190 | <section> |
222 | <section> |
|
|
223 | <title>Using HAL</title> |
|
|
224 | <body> |
|
|
225 | |
|
|
226 | <p> |
|
|
227 | Recent X server versions are designed to work out-of-the-box, with no need to |
|
|
228 | manually configure Xorg's configuration files. |
|
|
229 | </p> |
|
|
230 | |
|
|
231 | <p> |
|
|
232 | You should first try <uri link="#using_startx">starting X</uri> without creating |
|
|
233 | <path>/etc/X11/xorg.conf</path>. |
|
|
234 | </p> |
|
|
235 | |
|
|
236 | <p> |
|
|
237 | If Xorg won't start (if there's something wrong with the screen, or with your |
|
|
238 | keyboard/mouse), then you can try fixing problems by using the right |
|
|
239 | configuration files. |
|
|
240 | </p> |
|
|
241 | |
|
|
242 | <p> |
|
|
243 | By default, Xorg uses HAL (Hardware Abstraction Layer) to detect and configure |
|
|
244 | devices such as keyboards and mice. |
|
|
245 | </p> |
|
|
246 | |
|
|
247 | <p> |
|
|
248 | HAL comes with many premade device rules, also called policies. These policy |
|
|
249 | files are available in <path>/usr/share/hal/fdi/policy/</path>. Just find a few |
|
|
250 | that suit your needs most closely and copy them to |
|
|
251 | <path>/etc/hal/fdi/policy/</path>. |
|
|
252 | </p> |
|
|
253 | |
|
|
254 | <impo> |
|
|
255 | Do not edit the files in <path>/usr/share/hal/fdi/</path>! Just copy the ones |
|
|
256 | you need, and edit them once they're placed in the proper <path>/etc</path> |
|
|
257 | location. |
|
|
258 | </impo> |
|
|
259 | |
|
|
260 | <p> |
|
|
261 | For example, to get a basic working keyboard/mouse combination, you could copy |
|
|
262 | the following files to <path>/etc/hal/fdi/policy/</path>: |
|
|
263 | </p> |
|
|
264 | |
|
|
265 | <pre caption="Using HAL policy files"> |
|
|
266 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-input-policy.fdi /etc/hal/fdi/policy</i> |
|
|
267 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /etc/hal/fdi/policy</i> |
|
|
268 | </pre> |
|
|
269 | |
|
|
270 | <p> |
|
|
271 | There are several other HAL policies in <path>/usr/share/hal/fdi/</path> that |
|
|
272 | may interest you, such as laptop configurations, storage device handling, power |
|
|
273 | management, and more. Just copy any of the policies to |
|
|
274 | <path>/etc/hal/fdi/policy/</path>. |
|
|
275 | </p> |
|
|
276 | |
|
|
277 | <p> |
|
|
278 | You can edit the policy files in <path>/etc/hal/fdi/policy</path> to your |
|
|
279 | liking. You may want to make a few tweaks or to expose additional |
|
|
280 | functionality. Let's go through an example of tweaking a HAL policy. |
|
|
281 | </p> |
|
|
282 | |
|
|
283 | <p> |
|
|
284 | One very convenient trick is to kill the X server entirely by pressing |
|
|
285 | Ctrl-Alt-Backspace. This is useful when your X server is malfunctioning, frozen, |
|
|
286 | etc. It's not as extreme as rebooting the whole machine with Ctrl-Alt-Del. |
|
|
287 | </p> |
|
|
288 | |
|
|
289 | <p> |
|
|
290 | Recent X server versions disabled this key combination by default. However, you |
|
|
291 | can reenable it by copying <path>10-x11-input.fdi</path> to |
|
|
292 | <path>/etc/hal/fdi/policy</path> and editing it. You'll need to add just one |
|
|
293 | line to the appropriate section, as shown below: |
|
|
294 | </p> |
|
|
295 | |
|
|
296 | <pre caption="Editing 10-x11-input.fdi"> |
|
|
297 | <comment>(Open the file in your preferred editor)</comment> |
|
|
298 | # <i>nano -w /etc/hal/fdi/policy/10-x11-input.fdi</i> |
|
|
299 | <comment>(Find the "input.keys" section)</comment> |
|
|
300 | <match key="info.capabilities" contains="input.keys"> |
|
|
301 | <comment>(Add the "terminate" merge string as shown)</comment> |
|
|
302 | <match key="info.capabilities" contains="input.keys"> |
|
|
303 | <merge key="input.x11_driver" type="string">keyboard</merge> |
|
|
304 | <i><merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>></i> |
|
|
305 | <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" |
|
|
306 | string="Linux"> |
|
|
307 | <merge key="input.x11_driver" type="string">evdev<merge> |
|
|
308 | </match> |
|
|
309 | </match> |
|
|
310 | </pre> |
|
|
311 | |
|
|
312 | <p> |
|
|
313 | There, now you have a handy way of killing an unresponsive X server. This is |
|
|
314 | useful when programs have frozen your display entirely, or when configuring and |
|
|
315 | tweaking your Xorg environment. Be careful when killing your desktop with this |
|
|
316 | key combination -- most programs really don't like it when you end them this |
|
|
317 | way, and you may lose some (or all) of what you were working on. |
|
|
318 | </p> |
|
|
319 | |
|
|
320 | <p> |
|
|
321 | Hopefully just working with the HAL policy files results in a working X desktop. |
|
|
322 | If Xorg still won't start, or there's some other problem, then you'll need to |
|
|
323 | manually configure <path>xorg.conf</path> as shown in the next section. |
|
|
324 | </p> |
|
|
325 | |
|
|
326 | </body> |
|
|
327 | </section> |
|
|
328 | <section> |
| 191 | <title>The xorg.conf File</title> |
329 | <title>The xorg.conf file</title> |
| 192 | <body> |
330 | <body> |
| 193 | |
331 | |
|
|
332 | <note> |
|
|
333 | Configuring <path>xorg.conf</path> should be seen as a "last resort" option. It |
|
|
334 | really desirable to run without one if possible, and to do all your |
|
|
335 | configuration via HAL policy files. If you still can't get a working |
|
|
336 | configuration, then read on. |
|
|
337 | </note> |
|
|
338 | |
| 194 | <p> |
339 | <p> |
| 195 | The configuration file of Xorg is called <path>xorg.conf</path> and it |
340 | The configuration file of Xorg is called <path>xorg.conf</path> and it resides |
| 196 | resides in <path>/etc/X11</path>. The Xorg-X11 package provides an example |
341 | in <path>/etc/X11</path>. Xorg provides an example configuration as |
| 197 | configuration as <path>/etc/X11/xorg.conf.example</path> which you can use to |
342 | <path>/etc/X11/xorg.conf.example</path> which you can use to create your own |
| 198 | create your own configuration. It is heavily commented, but if you are in need |
343 | configuration. It is heavily commented, but if you are in need of more |
| 199 | of more documentation regarding the syntax, don't hesitate to read the man page: |
344 | documentation regarding the syntax, don't hesitate to read the man page: |
| 200 | </p> |
345 | </p> |
| 201 | |
346 | |
| 202 | <pre caption="Reading the xorg.conf man page"> |
347 | <pre caption="Reading the xorg.conf man page"> |
| 203 | # <i>man 5 xorg.conf</i> |
348 | $ <i>man 5 xorg.conf</i> |
| 204 | </pre> |
|
|
| 205 | |
|
|
| 206 | <p> |
|
|
| 207 | Happy reading for those of you willing to. We surely don't so we'll continue |
|
|
| 208 | with checking out how we can create the file automatically. |
|
|
| 209 | </p> |
349 | </pre> |
| 210 | |
350 | |
| 211 | </body> |
351 | </body> |
| 212 | </section> |
|
|
| 213 | <section> |
352 | </section> |
|
|
353 | <section> |
| 214 | <title>Default: Automatic Generation of xorg.conf</title> |
354 | <title>Automatic Generation of xorg.conf</title> |
| 215 | <body> |
355 | <body> |
| 216 | |
356 | |
| 217 | <p> |
357 | <p> |
| 218 | Xorg itself is able to guess most parameters for you. In most cases, you |
358 | Xorg itself is able to guess most parameters for you. In most cases, you |
| 219 | will only have to change some lines to get the resolution you want up and |
359 | will only have to change some lines to get the resolution you want up and |
| … | |
… | |
| 238 | # <i>X -config /root/xorg.conf.new</i> |
378 | # <i>X -config /root/xorg.conf.new</i> |
| 239 | </pre> |
379 | </pre> |
| 240 | |
380 | |
| 241 | <p> |
381 | <p> |
| 242 | If all goes well, you should see a simple black and white pattern. Verify if |
382 | If all goes well, you should see a simple black and white pattern. Verify if |
| 243 | your mouse works correctly and if the resolution is good. If you received errors |
383 | your mouse works correctly and if the resolution is good. You might not be able |
| 244 | about "/dev/mouse", try changing your mouse device to <c>/dev/input/mice</c> in |
|
|
| 245 | the "InputDevice" section of <path>xorg.conf</path>. You might not be able to |
|
|
| 246 | deduce the exact resolution, but you should be able to see if it's too low. You |
384 | to deduce the exact resolution, but you should be able to see if it's too low. |
| 247 | can exit any time by pressing Ctrl-Alt-Backspace. |
385 | You can exit any time by pressing Ctrl-Alt-Backspace. |
| 248 | </p> |
|
|
| 249 | |
|
|
| 250 | </body> |
|
|
| 251 | </section> |
|
|
| 252 | <section> |
|
|
| 253 | <title>Alternative: Semi-Automatic Generation of xorg.conf</title> |
|
|
| 254 | <body> |
|
|
| 255 | |
|
|
| 256 | <p> |
386 | </p> |
| 257 | Xorg provides a tool called <c>xorgconfig</c> which will ask you for various |
|
|
| 258 | information regarding your system (graphical adapter, keyboard, ...). Based on |
|
|
| 259 | your input it will create a <path>xorg.conf</path> file. |
|
|
| 260 | </p> |
|
|
| 261 | |
|
|
| 262 | <pre caption="Semi-Automatic Generation of xorg.conf"> |
|
|
| 263 | # <i>xorgconfig</i> |
|
|
| 264 | </pre> |
|
|
| 265 | |
|
|
| 266 | <p> |
|
|
| 267 | Another tool, also provided by Xorg, is <c>xorgcfg</c>, which will first |
|
|
| 268 | attempt to run <c>Xorg -configure</c> and then start the X server for more |
|
|
| 269 | final tweaking. |
|
|
| 270 | </p> |
|
|
| 271 | |
|
|
| 272 | <pre caption="Using xorgcfg"> |
|
|
| 273 | # <i>xorgcfg</i> |
|
|
| 274 | <comment>(In case X crashes or the configuration fails, try:)</comment> |
|
|
| 275 | # <i>xorgcfg -textmode</i> |
|
|
| 276 | </pre> |
|
|
| 277 | |
387 | |
| 278 | </body> |
388 | </body> |
| 279 | </section> |
389 | </section> |
| 280 | <section> |
390 | <section> |
| 281 | <title>Copying over xorg.conf</title> |
391 | <title>Copying over xorg.conf</title> |
| 282 | <body> |
392 | <body> |
| 283 | |
393 | |
| 284 | <p> |
394 | <p> |
| 285 | Let us copy over the <path>xorg.conf.new</path> to |
395 | Let us copy over the <path>xorg.conf.new</path> to |
| 286 | <path>/etc/X11/xorg.conf</path> now, so we won't have to continuously run |
396 | <path>/etc/X11/xorg.conf</path> now, so we won't have to continuously run |
| 287 | <c>X -config</c> -- typing just <c>X</c> or <c>startx</c> is easier. :) |
397 | <c>X -config</c> -- typing just <c>startx</c> is easier. :) |
| 288 | </p> |
398 | </p> |
| 289 | |
399 | |
| 290 | <pre caption="Copying over xorg.conf"> |
400 | <pre caption="Copying over xorg.conf"> |
| 291 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
401 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
| 292 | </pre> |
402 | </pre> |
| … | |
… | |
| 296 | <section id="using_startx"> |
406 | <section id="using_startx"> |
| 297 | <title>Using startx</title> |
407 | <title>Using startx</title> |
| 298 | <body> |
408 | <body> |
| 299 | |
409 | |
| 300 | <p> |
410 | <p> |
| 301 | Now try <c>startx</c> to start up your X server. <c>startx</c> is a script |
411 | Now try <c>startx</c> to start up your X server. <c>startx</c> is a script |
| 302 | that executes an <e>X session</e>, that is, it starts the X servers and some |
412 | that executes an <e>X session</e>, that is, it starts the X servers and some |
| 303 | graphical applications on top of it. It decides which applications to run |
413 | graphical applications on top of it. It decides which applications to run |
| 304 | using the following logic: |
414 | using the following logic: |
| 305 | </p> |
415 | </p> |
| 306 | |
416 | |
| 307 | <ul> |
417 | <ul> |
| 308 | <li> |
418 | <li> |
| … | |
… | |
| 310 | execute the commands listed there. |
420 | execute the commands listed there. |
| 311 | </li> |
421 | </li> |
| 312 | <li> |
422 | <li> |
| 313 | Otherwise, it will read the value of the XSESSION variable and will execute |
423 | Otherwise, it will read the value of the XSESSION variable and will execute |
| 314 | one of the sessions available in <path>/etc/X11/Sessions/</path> |
424 | one of the sessions available in <path>/etc/X11/Sessions/</path> |
| 315 | accordingly (you can set the value of XSESSION in <path>/etc/rc.conf</path> |
425 | accordingly. You can set the value of XSESSION in |
| 316 | to make it a default for all the users on the system). |
426 | <path>/etc/env.d/90xsession</path> to make it a default for all the users on |
|
|
427 | the system. For example, as root, run <c>echo XSESSION="Xfce4" > |
|
|
428 | /etc/env.d/90xsession</c>. This will create the <path>90xsession</path> file |
|
|
429 | and set the default X session to Xfce4. |
| 317 | </li> |
430 | </li> |
| 318 | <li> |
431 | <li> |
| 319 | If all of the above fail, it will fall back to a simple window manager, |
432 | If all of the above fail, it will fall back to a simple window manager, |
| 320 | usually <c>twm</c>. |
433 | usually <c>twm</c>. |
| 321 | </li> |
434 | </li> |
| … | |
… | |
| 328 | <p> |
441 | <p> |
| 329 | If you see an ugly, loathsome, repulsive, deformed window manager, that's |
442 | If you see an ugly, loathsome, repulsive, deformed window manager, that's |
| 330 | <c>twm</c>. To finish the twm session, type in <c>exit</c> or Ctrl-D in the |
443 | <c>twm</c>. To finish the twm session, type in <c>exit</c> or Ctrl-D in the |
| 331 | upcoming xterms. You can also kill the X session using the Ctrl-Alt-Backspace |
444 | upcoming xterms. You can also kill the X session using the Ctrl-Alt-Backspace |
| 332 | combination. This will however make X exit disgracefully -- something that you |
445 | combination. This will however make X exit disgracefully -- something that you |
| 333 | might not always want. It doesn't hurt though. :) |
446 | might not always want. |
| 334 | </p> |
447 | </p> |
| 335 | |
448 | |
| 336 | </body> |
449 | </body> |
| 337 | </section> |
450 | </section> |
| 338 | </chapter> |
451 | </chapter> |
|
|
452 | |
| 339 | <chapter> |
453 | <chapter> |
| 340 | <title>Tweaking xorg.conf</title> |
454 | <title>Tweaking X settings</title> |
| 341 | <section> |
455 | <section> |
| 342 | <title>Setting your Resolution</title> |
456 | <title>Setting your Resolution</title> |
| 343 | <body> |
457 | <body> |
| 344 | |
458 | |
| 345 | <p> |
459 | <p> |
| 346 | If you feel that the screen resolution is wrong, you will need to check two |
460 | If you feel that the screen resolution is wrong, you will need to check two |
| 347 | sections in your configuration. First of all, you have the <e>Screen</e> section |
461 | sections in your <path>xorg.conf</path> configuration. First of all, you have |
| 348 | which lists the resolutions, if any that your X server will run at. By |
462 | the <e>Screen</e> section which lists the resolutions, if any that your X server |
| 349 | default, this section might not list any resolutions at all. If this is the |
463 | will run at. By default, this section might not list any resolutions at all. If |
| 350 | case, Xorg will estimate the resolutions based on the information in the |
464 | this is the case, Xorg will estimate the resolutions based on the information in |
| 351 | second section, <e>Monitor</e>. |
465 | the second section, <e>Monitor</e>. |
| 352 | </p> |
466 | </p> |
| 353 | |
467 | |
| 354 | <p> |
468 | <p> |
| 355 | What happens is that Xorg checks the settings of <c>HorizSync</c> and |
469 | What happens is that Xorg checks the settings of <c>HorizSync</c> and |
| 356 | <c>VertRefresh</c> in the <e>Monitor</e> section to compute valid resolutions. |
470 | <c>VertRefresh</c> in the <e>Monitor</e> section to compute valid resolutions. |
| 357 | For now, leave these settings as-is. Only when the changes to the <e>Screen</e> |
471 | For now, leave these settings as-is. Only when the changes to the <e>Screen</e> |
| 358 | section (which we will describe in a minute) don't work, then you will need to |
472 | section (which we will describe in a minute) don't work, then you will need to |
| 359 | look up the specs for your monitor and fill in the correct values. You can also |
473 | look up the specs for your monitor and fill in the correct values. |
| 360 | use a tool that searches for your monitor's specs, such as |
|
|
| 361 | <c>sys-apps/ddcxinfo-knoppix</c>. |
|
|
| 362 | </p> |
474 | </p> |
| 363 | |
475 | |
| 364 | <warn> |
476 | <warn> |
| 365 | Do <b>not</b> "just" change the values of these two monitor related variables |
477 | Do <b>not</b> "just" change the values of these two monitor related variables |
| 366 | without consulting the technical specifications of your monitor. Setting |
478 | without consulting the technical specifications of your monitor. Setting |
| … | |
… | |
| 369 | </warn> |
481 | </warn> |
| 370 | |
482 | |
| 371 | <p> |
483 | <p> |
| 372 | Now let us change the resolutions. In the next example from |
484 | Now let us change the resolutions. In the next example from |
| 373 | <path>/etc/X11/xorg.conf</path> we add the <c>Modes</c> lines and the |
485 | <path>/etc/X11/xorg.conf</path> we add the <c>Modes</c> lines and the |
| 374 | <c>DefaultDepth</c> so that our X server starts with 24 bits at 1024x768 by |
486 | <c>DefaultDepth</c> so that our X server starts with 24 bits at 1440x900 by |
| 375 | default. Don't mind the given strings -- they are examples and will most likely |
487 | default. Don't mind the given strings -- they are examples and will most likely |
| 376 | differ from the settings on your system. |
488 | differ from the settings on your system. |
| 377 | </p> |
489 | </p> |
| 378 | |
490 | |
| 379 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
491 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
| 380 | Section "Screen" |
492 | Section "Screen" |
| 381 | Identifier "Default Screen" |
493 | Identifier "Default Screen" |
| 382 | Device "S3 Inc. ProSavage KN133 [Twister K]" |
494 | Device "RadeonHD 4550" |
| 383 | Monitor "Generic Monitor" |
495 | Monitor "Generic Monitor" |
| 384 | <i>DefaultDepth 24</i> |
496 | <i>DefaultDepth 24</i> |
| 385 | <comment># Skipping some text to improve readability</comment> |
497 | <comment># Skipping some text to improve readability</comment> |
| 386 | SubSection "Display" |
498 | SubSection "Display" |
| 387 | Depth 24 |
499 | Depth 24 |
| 388 | <i>Modes "1024x768"</i> |
500 | <i>Modes "1440x900"</i> |
| 389 | EndSubSection |
501 | EndSubSection |
| 390 | EndSection |
502 | EndSection |
| 391 | </pre> |
503 | </pre> |
| 392 | |
504 | |
| 393 | <p> |
505 | <p> |
| … | |
… | |
| 395 | </p> |
507 | </p> |
| 396 | |
508 | |
| 397 | </body> |
509 | </body> |
| 398 | </section> |
510 | </section> |
| 399 | <section> |
511 | <section> |
| 400 | <title>Configuring your Keyboard</title> |
512 | <title>Configuring your keyboard</title> |
| 401 | <body> |
|
|
| 402 | |
|
|
| 403 | <p> |
|
|
| 404 | To setup X to use an international keyboard, search for the <e>InputDevice</e> |
|
|
| 405 | section that configures the keyboard and add the <c>XkbLayout</c> option to |
|
|
| 406 | point to the keyboard layout you want. As an example, we show you how to apply |
|
|
| 407 | for the Belgian layout. Just substitute the country-keycode with yours: |
|
|
| 408 | </p> |
|
|
| 409 | |
|
|
| 410 | <pre caption="Changing the keyboard layout"> |
|
|
| 411 | Section "InputDevice" |
|
|
| 412 | Identifier "Generic Keyboard" |
|
|
| 413 | Driver "keyboard" |
|
|
| 414 | Option "CoreKeyboard" |
|
|
| 415 | Option "XkbRules" "xorg" |
|
|
| 416 | Option "XkbModel" "pc105" |
|
|
| 417 | <i>Option "XkbLayout" "be"</i> |
|
|
| 418 | EndSection |
|
|
| 419 | </pre> |
|
|
| 420 | |
|
|
| 421 | </body> |
513 | <body> |
| 422 | </section> |
514 | |
|
|
515 | <p> |
|
|
516 | To setup X to use an international keyboard, you can copy the content of |
|
|
517 | <path>/usr/share/doc/hal-*/*/use-estonian-layout.fdi.bz2</path> to |
|
|
518 | <path>/etc/hal/fdi/policy/10-xinput-configuration.fdi</path>: |
|
|
519 | </p> |
|
|
520 | |
|
|
521 | <pre caption="Using an existing config file"> |
|
|
522 | # <i>bzcat /usr/share/doc/hal-*/*/use-estonian-layout.fdi > /etc/hal/fdi/policy/10-xinput-configuration.fdi</i> |
|
|
523 | </pre> |
|
|
524 | |
|
|
525 | <p> |
|
|
526 | Now you can just edit <path>10-xinput-configuration.fdi</path> and change the |
|
|
527 | Estonian keyboard layout (<c>ee</c>) to your own, such as Great Britain |
|
|
528 | (<b>gb</b>) or Polish (<b>pl</b>). |
|
|
529 | </p> |
|
|
530 | |
|
|
531 | <p> |
|
|
532 | When you're finished, run <c>/etc/init.d/hald restart</c> as root to make sure |
|
|
533 | that HAL picks up your configuration file changes. |
|
|
534 | </p> |
|
|
535 | |
|
|
536 | </body> |
| 423 | <section> |
537 | </section> |
| 424 | <title>Configuring your Mouse</title> |
538 | <section> |
|
|
539 | <title>Finishing up</title> |
| 425 | <body> |
540 | <body> |
| 426 | |
541 | |
| 427 | <p> |
|
|
| 428 | If your mouse isn't working, you will first need to find out if it is detected |
|
|
| 429 | by the kernel at all. Mice are (device-wise) seen as |
|
|
| 430 | <path>/dev/input/mouse0</path> (or <path>/dev/input/mice</path> if you want to |
|
|
| 431 | use several mice). In some cases <path>/dev/psaux</path> is used. In either |
|
|
| 432 | case you can check if the devices do represent |
|
|
| 433 | your mouse by checking the output of those files when you move your mouse. You |
|
|
| 434 | will usually see some junk on your screen. To end the session press |
|
|
| 435 | <c>Ctrl-C</c>. |
|
|
| 436 | </p> |
542 | <p> |
| 437 | |
|
|
| 438 | <pre caption="Checking the device files"> |
|
|
| 439 | # <i>cat /dev/input/mouse0</i> |
|
|
| 440 | <comment>(Don't forget to press Ctrl-C to end this)</comment> |
|
|
| 441 | </pre> |
|
|
| 442 | |
|
|
| 443 | <p> |
|
|
| 444 | If your mouse isn't detected, verify if all the necessary modules are loaded. |
|
|
| 445 | </p> |
|
|
| 446 | |
|
|
| 447 | <p> |
|
|
| 448 | If your mouse is detected, fill in the device in the appropriate |
|
|
| 449 | <e>InputDevice</e> section. In the next example you'll see we also set two other |
|
|
| 450 | options: <c>Protocol</c> (which lists the mouse protocol to be used -- most |
|
|
| 451 | users will use PS/2 or IMPS/2) and <c>ZAxisMapping</c> (which allows for the |
|
|
| 452 | mousewheel (if applicable) to be used). |
|
|
| 453 | </p> |
|
|
| 454 | |
|
|
| 455 | <pre caption="Changing the mouse settings in Xorg"> |
|
|
| 456 | Section "InputDevice" |
|
|
| 457 | Identifier "TouchPad Mouse" |
|
|
| 458 | Driver "mouse" |
|
|
| 459 | Option "CorePointer" |
|
|
| 460 | <i>Option "Device" "/dev/input/mouse0"</i> |
|
|
| 461 | <i>Option "Protocol" "IMPS/2"</i> |
|
|
| 462 | <i>Option "ZAxisMapping" "4 5"</i> |
|
|
| 463 | EndSection |
|
|
| 464 | </pre> |
|
|
| 465 | |
|
|
| 466 | <p> |
|
|
| 467 | Run <c>startx</c> and be happy about the result. :) Congratulations, you now |
543 | Run <c>startx</c> and be happy about the result. Congratulations, you now |
| 468 | (hopefully) have a working Xorg on your system. The next step is to remove this |
544 | (hopefully) have a working Xorg on your system. The next step is to remove this |
| 469 | ugly lightweight window manager and use a high-feature one (or even a desktop |
545 | ugly lightweight window manager (twm) and use a high-feature one (or even a |
| 470 | environment) such as KDE or GNOME, but that's not part of this guide. :) |
546 | desktop environment) such as KDE or GNOME, but that's not part of this guide. |
| 471 | </p> |
547 | </p> |
| 472 | |
548 | |
| 473 | </body> |
549 | </body> |
| 474 | </section> |
550 | </section> |
| 475 | </chapter> |
551 | </chapter> |
|
|
552 | |
| 476 | <chapter> |
553 | <chapter> |
| 477 | <title>Resources</title> |
554 | <title>Resources</title> |
| 478 | <section> |
555 | <section> |
| 479 | <title>Creating and Tweaking xorg.conf</title> |
556 | <title>Creating and Tweaking xorg.conf</title> |
| 480 | <body> |
557 | <body> |
| 481 | |
558 | |
| 482 | <p> |
559 | <p> |
| 483 | First of all, <c>man xorg.conf</c> provides a quick yet complete reference |
560 | First of all, <c>man xorg.conf</c> and <c>man evdev</c> provide quick yet |
| 484 | about the syntax used by the configuration file. Be sure to have it open on a |
561 | complete references about the syntax used by these configuration files. Be sure |
| 485 | terminal near you when you edit your configuration file! |
562 | to have them open on a terminal near you when you edit your configuration |
|
|
563 | files! |
| 486 | </p> |
564 | </p> |
| 487 | |
565 | |
| 488 | <p> |
566 | <p> |
| 489 | Also, be sure to look at <path>/etc/X11/xorg.conf.example</path>; you may wish |
567 | Also, be sure to look at <path>/etc/X11/xorg.conf.example</path>; you may wish |
| 490 | to copy this and use it as a foundation for writing your own |
568 | to copy this and use it as a foundation for writing your own |
| … | |
… | |
| 497 | </p> |
575 | </p> |
| 498 | |
576 | |
| 499 | <p> |
577 | <p> |
| 500 | There are also many online resources on editing <path>xorg.conf</path>. We only |
578 | There are also many online resources on editing <path>xorg.conf</path>. We only |
| 501 | list few of them here, be sure to <uri link="http://www.google.com">Google</uri> |
579 | list few of them here, be sure to <uri link="http://www.google.com">Google</uri> |
| 502 | for more. :) As <path>xorg.conf</path> and <path>XF86Config</path> (the |
580 | for more. |
| 503 | configuration file for the XFree86 project) use the |
|
|
| 504 | same syntax for most configuration options and more information about |
|
|
| 505 | <path>XF86Config</path> is available, we'll list those resources as well. |
|
|
| 506 | </p> |
581 | </p> |
| 507 | |
|
|
| 508 | <ul> |
|
|
| 509 | <li> |
|
|
| 510 | <uri link="http://tldp.org/HOWTO/XFree-Local-multi-user-HOWTO/">The XFree |
|
|
| 511 | Local Multi-User HOWTO</uri> |
|
|
| 512 | </li> |
|
|
| 513 | <li> |
|
|
| 514 | <uri |
|
|
| 515 | link="http://www-106.ibm.com/developerworks/edu/os-dw-linuxxwin-i.html">An |
|
|
| 516 | Introduction to XFree 4.x</uri> by Chris Houser |
|
|
| 517 | </li> |
|
|
| 518 | </ul> |
|
|
| 519 | |
582 | |
| 520 | </body> |
583 | </body> |
| 521 | </section> |
584 | </section> |
| 522 | <section> |
585 | <section> |
| 523 | <title>Other resources</title> |
586 | <title>Other resources</title> |
| … | |
… | |
| 528 | environments and applications can be found in the <uri |
591 | environments and applications can be found in the <uri |
| 529 | link="/doc/en/?catid=desktop">Gentoo Desktop Documentation Resources</uri> |
592 | link="/doc/en/?catid=desktop">Gentoo Desktop Documentation Resources</uri> |
| 530 | section of our documentation. |
593 | section of our documentation. |
| 531 | </p> |
594 | </p> |
| 532 | |
595 | |
|
|
596 | <p> |
|
|
597 | If you're upgrading to xorg-server-1.6 from an earlier version, then be sure to |
|
|
598 | read the <uri |
|
|
599 | link="/proj/en/desktop/x/x11/xorg-server-1.6-upgrade-guide.xml">migration |
|
|
600 | guide</uri>. |
|
|
601 | </p> |
|
|
602 | |
| 533 | </body> |
603 | </body> |
| 534 | </section> |
604 | </section> |
| 535 | </chapter> |
605 | </chapter> |
| 536 | </guide> |
606 | </guide> |