Fink

运行 X11 - 4. 启动 X11

4.1 Darwin

在纯 Darwin 环境下,XFree86 和其它 Unix 环境的使用基本一样。 通常的启动方式是在控制台运行 startx; 这会启动服务器程序可一些最初的客户程序,例如窗口管理器和一个运行 shell 的终端模拟程序。 在纯 Darwin 中,不需要指明任何参数,只需要输入:

startx

你可以通过你自己主目录中的几个文件来定制需要启动什么。 .xinitrc 控制什么客户程序会被启动。 .xserverrc 可以控制服务器程序的选项,甚至启动一个不同的服务器。 如果你碰到麻烦(比如,只有一个空白的屏幕或退回了控制台),你可以通过把这些文件暂时移开来确定问题所在。 当 startx 找不到这些文件的时候,它会使用安全的默认设置,一般这时候应该能正常工作。

另外的办法是,你可以直接通过一个 XDMCP 选项直接启动服务器,象这样:

X -query remotehost

关于它的详细信息请查看 Xserver 的手册页面。

最后,可以有些选项设置 xdm;请阅读它的手册页面获取详细信息。

注意:如果你使用 Mac OS X Panther 之前的版本,你可以在登录窗口输入 >console 来获得一个和纯 Darwin 环境等效的纯文本控制台。如果你在登录窗口看不到输入用户的地方,你可以按下随便一个用户名的第一个字母,然后按 Option+Return 组合键。 然后,你可以使用上面描述的启动方法,除了 xdm 作为一个例外。

如果你运行的是 Panther or later,你不能从控制台窗口启动 XFree86。

4.2 Mac OS X + XFree86 4.x.y

基本上,在 Mac OS X 下启动 XFree86 有两种办法。 一种办法是在你应用程序中双击 XDarwin.app 程序图标。在启动过程中会有一个对话框让你选择是全屏幕模式还是无根模式。你可以在偏好设定对话框中设定总是使用你选择模式并禁用选择对话框。

在 4.2.0 之前,它会自动启动全屏幕模式,没有办法通过双击程序来进入无根模式。

另外一种在 Mac OS X 中启动 XFree86 的办法是在终端程序中运行 startx。 如果你用这种办法启动服务器程序,你必须告诉它应该与 Quartz 并行使用。 这可以通过使用 -fullscreen 参数,比如:

startx -- -fullscreen

这会以全屏幕模式启动服务器,以及你的 .xinitrc 文件里面的客户程序。

注意,在 4.2 之前,使用 -quartz 参数来进入全屏幕模式。

你可以用 -rootless 参数用无根模式启动:

startx -- -rootless

-quartz 选项不再选择全屏幕模式,而是使用偏好设定里面的默认设置。

对于 4.3,如果不带参数地使用 startx,会显示启动对话框。

4.3 Starting X.org

X.org works identically to XFree86 in all respects.

4.4 Starting Apple's X11

Functionally, Apple's X11 works similarly to XFree86 (e.g. using a .xinitrc file to control the clients that are launched on startup). The normal way to run it is by double-clicking the X11.app icon (whose default location is /Applications/Utilities). You can use startx, as well, but it doesn't have a commmand-line option to set the display mode; X11.app will start up in whatever mode was previously set in its Preferences.

If you don't set up a different window manager you will be running Apple's quartz-wm window manager. X11.app's Preferences give the option to switch between fullscreen and rootless modes without restarting. However, this doesn't work for quartz-wm; it is necessary to choose a different window manager (e.g. in .xinitrc)

4.5 The applex11tools package

Fink's applex11tools package allows the use of X11.app and quartz-wm under OS 10.3 and later with XFree86 4.4 or later or X.org.

To install this package you must enable the unstable tree, and have X11User.pkg somewhere within /Users or /Volumes. X11.app will be installed in the Applications folder within your Fink tree. You can now use either X11.app or XDarwin.app.

4.6 .xinitrc 文件

如果在你的主目录中有一个 .xinitrc 文件,它可以用于启动一些最初的 X 客户程序,比如,窗口管理器,或者一些 xterm 终端或象 GNOME 这样的桌面环境。.xinitrc 文件实际上是包括一些命令 shell 脚本。 需要把通常的 #!/bin/sh 放在第一行和把这个文件设为可执行;xinit 知道怎么在 shell 里面运行它。

如果在你的主目录里面没有 .xinitrc 文件,X11 会使用它的默认文件, /private/etc/X11/xinit/xinitrc。 你可以使用这个默认文件作为你自己的 .xinitrc 文件的一个起点:

cp /private/etc/X11/xinit/xinitrc ~/.xinitrc

如果你使用 Fink,你可以在文件的开头使用 source init.sh 来确保环境被正确设置。

虽然原则上你可以在 .xinitrc 中使用任意命令,但是还是有些需要注意的地方。 首先,解释这个文件的 shell 默认情况下会等待一个程序执行完毕才会执行下一个程序。 因此,如果你希望同时运行多个程序,你需要告诉 shell 应该"在后台"运行他们。这可以通过在一行命令的末尾加一个 & 号来实现。

第二,xinit 会等待 .xinitrc 脚本执行完,然后认为 "这个部分已经执行完毕,现在我应该关闭 X 服务器了"。 这意味着你的 .xinitrc 文件里面的最后一个命令一定不能是后台运行的,而且它应该是一个一直运行的程序。 一般情况下,窗口管理器正好可以用于这个用途。 事实上,多数窗口管理器会假设 xinit 在等待它结束运行,并以此来作为它们菜单里面"注销"功能的工作原理。 (注意:为了节省一些内存和 CPU 的消耗,你可以象下面的例子一样在最后一条命令前加上 exec。)

A simple example that starts up GNOME on XFree86 or Xorg:

. /opt/sw/bin/init.sh
exec gnome-session

一个稍微复杂一点的针对 bash 用户的例子会关闭 X11 响铃,启动一些客户程序,最后运行 Enlightenment 窗口管理器:

. /opt/sw/bin/init.sh

xset b off

xclock -geometry -0+0 &
xterm &
xterm &

exec enlightenment

To start GNOME 2.4 and later under Apple's X11:

. /opt/sw/bin/init.sh
quartz-wm --only-proxy &
exec gnome-session

在苹果的 X11 下启动 KDE 3.2 (版本大于 3.2.2-21):

. /opt/sw/bin/init.sh
export KDEWM=kwin
quartz-wm --only-proxy &
/opt/sw/bin/startkde </tmp/kde.log 2<&1

最后,在苹果的 X11 下启动最新的非稳定版 KDE:

. /opt/sw/bin/init.sh
/opt/sw/bin/startkde </tmp/kde.log 2<&1

4.7 OroborOSX

OroborOSX is a an alternative to the X11.app and XDarwin display servers. It requires a preexisting X11 installation to work. X11.app or XDarwin.app continue to function, as well

When run, OroborOSX starts its own rootless-only window manager, and doesn't read in either the system's xinitrc or user's .xinitrc files. After starting, it does have a menu option to execute .xinitrc. However, it does have its own method to set up applications to run when it starts. It also provides a mechanism to start X11 applications from the Finder via startup scripts.

For more information visit the OroborOSX homepage.

Next: 5. Xtools