个人工具

定制X会话

来自Ubuntu中文

跳转至: 导航, 搜索

本页面将会教你如何通过编辑shell脚本设计出属于自己的个性化X(图形桌面)会话。桌面环境像GNOME通常有它们自己的会话管理器。这些会话管理器允许你设定在启动时会装载什么样附加程序,通过提供的一个图形界面。然而,知道如何去创建X会话脚本能允许你,在定义你的桌面环境时有更大的灵活性,无论你使用GNOME、KDEXFCEOpenbox,或任何少为人知的窗口管理器,像BlackboxFVWM。此外,能够创建X会话让你能够运行一个图形桌面,即使图形登录管理器,GDM,损坏或者没有安装。

解剖一个简单的X会话脚本

最简单的X会话脚本由两行命令组成,就像下面展示的例子一样:

#!/usr/bin/env bash
exec gnome-session

第一行和所有的Linux shell脚本一样;它指定运行该脚本要使用的shell。就上面展示的例子来说,bash(Bourne Again Shell)是被指定的shell。 第二行指定驱动X会话的应用程序。有时会称之为“magic process”,因为当该程序停止运行时X会话就会终结。在上面展示的例子里,“gnome-session”是“magic process”,它用于运行GNOME桌面环境。

如何创建一个X会话脚本

你不必拥有root权限去创建你自己的X会话脚本。 ⒈#1 从应用程序菜单里,选择附件,然后点击终端,从而打开一个终端。 ⒈#2 要想开始编辑你的脚本,就在提示符内输入下面的命令:

gedit ~/.xinitrc

现在你的屏幕上应该有了一个空的文本编辑器。你所做的所有动作都会保存至.xinitrc文件,隐藏于你的家目录。(注解:在Linux中,所有用点开头的文件都会被系统隐藏。) 1.#3 在第一行指定shell:

#!/usr/bin/env bash

1.#4 输入任何你想在启动桌面环境或窗口管理器前运行的命令。一个命令一行,并在每行命令末尾加上&。在每行命令末尾加上"&"号将告诉shell让命令在后台运行,并且立即执行下一行命令。若命令不在后台运行,那么会让你的X会话脚本停滞于文件的第一行命令,因此你将会看到一个空的桌面。例如,如果你想要在登录之后显示一个终端,把这一行写入文件:

gnome-terminal &

1.#5 在末行键入exec,接着是要使用的窗口管理器或桌面环境的名字,就像下面的样例:

# 欲使用GNOME,使用这行命令
exec gnome-session
# 欲使用KDE,用这行命令代替
exec startkde
# 要注意如果你有两行"exec",X只会运行第一行,并忽略其他的。而且,所有用#开头的行
# 将被shell当作注解并忽略。这有利于在脚本中放置注解或禁用不想运行的命令。

1.#6 当你满足后,保存文件并退出文字编辑器。 1.#7 现在让你的X会话脚本可运行。在终端键入下面的命令以达到这一点:

chmod +x ~/.xinitrc

1.#8 现在你让脚本可运行了。你已经准备就绪,可以试运行了。想这样的话,保存所有可能打开的文档和关闭所有的应用程序。登出GNOME,按下CTRL+ALT+F1去访问字符控制台并登录。一旦你登录了,你必须临时禁用你的图形登录。这需要键入下面的命令:

sudo /etc/init.d/gdm stop

1.#9 一旦你完成了这些,你就准备好去测试你的X会话脚本了。键入下面的命令以达成:

startx

1.#10 如果你没打错命令的话,那么你应该已经进入了图形桌面。否则,你只好去更正脚本。shell会给你执行失败的命令的行数方便你修正。要修正你的脚本,你可以用nano编辑文件:

nano -w

你也可以通过下面的命令重启图形登录管理器,登录,然后执行步骤1、2:

sudo /etc/init.d/gdm start

不同的是,登出你用startx叫出的图形桌面。 1.#11 你的登录脚本.xinitrc会与startx一起工作,但是图形登录管理器像GDM不会寻找.xinitrc。与之替代,它们在你的家目录寻找一个叫做.xsession的文件。要让GDM运行你的.xinitrc脚本,你必须将它联结至.xsession,通过下面的命令:

ln -s ~/.xinitrc ~/.xsession

用上面的命令可以创建一个名叫.xsession的符号链接,指向.xinitrc。如果你熟悉Windows,这可能有助于理解符号链接(或符号链)是一种非图形化的快捷方式。 1.#12 一旦你完成了.xsession.xinitrc的链接,你就可以使您的图形登录管理器运行自定义的环境,而不是默认的会话。为此,首先重新启动图形登录管理器:

sudo /etc/init.d/gdm start

1.#13 键入你的用户名,点击Sessions按钮。Sessions按钮的外观取决于你是否使用登录器主题,还有登录器主题的种类。 1.#14 从Sessions菜单中选择Default System Session。它会让GDM运行你的X会话主题以替代其他任意的预定义会话。 1.#15 输入你的密码。 1.#16 一旦你输入密码,就GDM会通知你,你选择的会话并非默认,并询问你是否要使用选择的临时会话,或使其成为默认的会话。如果你让自定义会话的为默认,你就可以在下次登录时选择一个不同的会话。

一个~/.xinitrc文件样例

下面是本HOWTO的作者,Stormy Eyes,在家中使用的.xinitrc文件。它利用非默认安装的应用程序,比如xcompmgr来合成特效还有feh来设置壁纸。如果你有任何关于这.xinitrc样例文件的问题,请在论坛里询问。

#!/usr/bin/env bash

xcompmgr -fF -I-.002 -O-.003 -D1 &
devilspie &
sudo killall -9 esd
sh ./.fehbg &
xrdb -merge .Xdefaults &

export OOO_FORCE_DESKTOP=gnome
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"

gnome-settings-daemon &
gnome-volume-manager &
conky &

exec openbox

问题与意见

如果你有任何有关此教程的意见或问题,请将它们发送到论坛上。谢谢。