定制X会话:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Hjhee留言 | 贡献
Qiii2006留言 | 贡献
 
(未显示2个用户的4个中间版本)
第1行: 第1行:
{{Translation}}
{{Copyedit translation}}
{{From|https://wiki.ubuntu.com/CustomXSession}}
{{From|https://wiki.ubuntu.com/CustomXSession}}
{{Translator|Hjhee}}
{{Translator|Hjhee}}
{{Languages|UbuntuWiki:CustomXSession}}
{{Languages|UbuntuWiki:CustomXSession}}
本页面将会教你如何通过编辑shell脚本设计出属于自己的个性化X(图形桌面)会话。桌面环境像[http://www.gnome.org GNOME]通常有它们自己的会话管理器。这些会话管理器允许你设定在开始时会装载什么样附加程序,通过提供的一个图形界面。然而,知道如何去创建X会话脚本能允许你在定义你的桌面环境时有更大的灵活性,无论你使用GNOME、[http://www.kde.org KDE]、[http://www.xfce.org XFCE]、[[UbuntuWiki:Openbox|Openbox]],或任何少为人知的窗口管理器,像[http://blackboxwm.sourceforge.net/ Blackbox]或[[UbuntuWiki:FVWM|FVWM]]。此外,能够创建X会话允许你运行一个图形桌面即使图形登录管理器,GDM,损坏或者没有安装。
本页面将会教你如何通过编辑shell脚本设计出属于自己的个性化X(图形桌面)会话。桌面环境像[http://www.gnome.org GNOME]通常有它们自己的会话管理器。这些会话管理器允许你设定在启动时会装载什么样附加程序,通过提供的一个图形界面。然而,知道如何去创建X会话脚本能允许你,在定义你的桌面环境时有更大的灵活性,无论你使用GNOME、[http://www.kde.org KDE]、[http://www.xfce.org XFCE]、[[UbuntuWiki:Openbox|Openbox]],或任何少为人知的窗口管理器,像[http://blackboxwm.sourceforge.net/ Blackbox]或[[UbuntuWiki:FVWM|FVWM]]。此外,能够创建X会话让你能够运行一个图形桌面,即使图形登录管理器,GDM,损坏或者没有安装。
=== 解剖一个简单的X会话脚本 ===
=== 解剖一个简单的X会话脚本 ===
最简单的X会话脚本由两行命令组成,就像下面展示的例子一样:
最简单的X会话脚本由两行命令组成,就像下面展示的例子一样:
第19行: 第19行:
gedit ~/.xinitrc
gedit ~/.xinitrc
</nowiki></pre>
</nowiki></pre>
You should now have an empty text editor window on your screen. Any changes you make will be saved to the file '''.xinitrc''', which will be hidden in your home directory. ('''Note:''' In Linux, all files that begin with a period are treated by the system as hidden files.)
现在你的屏幕上应该有了一个空的文本编辑器。你所做的所有动作都会保存至'''.xinitrc'''文件,隐藏于你的家目录。('''注解:'''在Linux中,所有用点开头的文件都会被系统隐藏。)
1.#3 Specify the shell on the first line:
1.#3 在第一行指定shell:
<pre><nowiki>
<pre><nowiki>
#!/usr/bin/env bash
#!/usr/bin/env bash
</nowiki></pre>
</nowiki></pre>
1.#4 Type in any commands you want to run before launching your desktop environment or window manager. Use one command per line, and place a '''&''' after each command. Placing an ampersand (&) after each command tells the shell to run the command in the ''background'' and move immediately to the next command. Not having commands run in the background will lead to your X session script getting stuck on the first command listed in the file, so that all you see is an empty desktop. For example, if you always want to have a terminal open when you first login, include a line that says:
1.#4 输入任何你想在启动桌面环境或窗口管理器前运行的命令。一个命令一行,并在每行命令末尾加上'''&'''。在每行命令末尾加上"&"号将告诉shell让命令在后台运行,并且立即执行下一行命令。若命令不在后台运行,那么会让你的X会话脚本停滞于文件的第一行命令,因此你将会看到一个空的桌面。例如,如果你想要在登录之后显示一个终端,把这一行写入文件:
<pre><nowiki>
<pre><nowiki>
gnome-terminal &
gnome-terminal &
</nowiki></pre>
</nowiki></pre>
1.#5 On the last line, type in the word '''exec''' and then the name of the window manager or desktop environment you want to use as shown in the example below:
1.#5 在末行键入'''exec''',接着是要使用的窗口管理器或桌面环境的名字,就像下面的样例:
<pre><nowiki>
<pre><nowiki>
# for GNOME, use this command
# 欲使用GNOME,使用这行命令
exec gnome-session
exec gnome-session
# for KDE, us this command instead.
# 欲使用KDE,用这行命令代替
exec startkde
exec startkde
# Note that if you have two "exec" lines, X will only process the first, and ignore all others. Also, any line
# 要注意如果你有两行"exec",X只会运行第一行,并忽略其他的。而且,所有用#开头的行
# that begins with a # will be treated by the shell as a comment and ignored. Use this to your advantage
# 将被shell当作注解并忽略。这有利于在脚本中放置注解或禁用不想运行的命令。
# by placing notes in your script or disabling commands that you do not currently wish to run.
</nowiki></pre>
</nowiki></pre>
1.#6 When you are satisfied, save your file and close the text editor.
1.#6 当你满足后,保存文件并退出文字编辑器。
1.#7 Now make your X session script executable. To do this, type the following command into your terminal:
1.#7 现在让你的X会话脚本可运行。在终端键入下面的命令以达到这一点:
<pre><nowiki>
<pre><nowiki>
chmod +x ~/.xinitrc
chmod +x ~/.xinitrc
</nowiki></pre>
</nowiki></pre>
1.#8 Now that you have made your X session script executable, you are ready to try it out. To do so, save all documents you might have open, and close all applications. Log out of GNOME. Press CTRL+ALT+F1 to access a text console, and login. Once you have logged in, you have to temporarily disable your graphical login. To do this, enter the command
1.#8 现在你让脚本可运行了。你已经准备就绪,可以试运行了。想这样的话,保存所有可能打开的文档和关闭所有的应用程序。登出GNOME,按下CTRL+ALT+F1去访问字符控制台并登录。一旦你登录了,你必须临时禁用你的图形登录。这需要键入下面的命令:
<pre><nowiki>
<pre><nowiki>
sudo /etc/init.d/gdm stop
sudo /etc/init.d/gdm stop
</nowiki></pre>
</nowiki></pre>
1.#9 Once you have done this, you will be ready to test your X session script. To test it, enter the following command:
1.#9 一旦你完成了这些,你就准备好去测试你的X会话脚本了。键入下面的命令以达成:
<pre><nowiki>
<pre><nowiki>
startx
startx
</nowiki></pre>
</nowiki></pre>
1.#10 If you have not mispelled the names of any commands, then you should have a graphical desktop. If not, then you will have to correct your script. The shell will tell give you the line number if a command fails to make fixing your script easier. To fix your script, you can either edit your file with nano:
1.#10 如果你没打错命令的话,那么你应该已经进入了图形桌面。否则,你只好去更正脚本。shell会给你执行失败的命令的行数方便你修正。要修正你的脚本,你可以用nano编辑文件:
<pre><nowiki>
<pre><nowiki>
nano -w
nano -w
</nowiki></pre>
</nowiki></pre>
Or you can restart the graphical login manager with the following command, login, and perform steps 1 and 2:
你也可以通过下面的命令重启图形登录管理器,登录,然后执行步骤1、2:
<pre><nowiki>
<pre><nowiki>
sudo /etc/init.d/gdm start
sudo /etc/init.d/gdm start
</nowiki></pre>
</nowiki></pre>
Otherwise, log out of the graphical desktop you brought up with the '''startx''' command.
不同的是,登出你用'''startx'''叫出的图形桌面。
1.#11 Your login script, '''.xinitrc''', works with '''startx''', but graphical login managers like GDM do not look for '''.xinitrc'''. Instead, they look for a file named '''.xsession''' in your home directory. To make GDM run your .xinitrc script, you have to link it to .xsession with the following command:
1.#11 你的登录脚本'''.xinitrc'''会与'''startx'''一起工作,但是图形登录管理器像GDM不会寻找'''.xinitrc'''。与之替代,它们在你的家目录寻找一个叫做'''.xsession'''的文件。要让GDM运行你的.xinitrc脚本,你必须将它联结至.xsession,通过下面的命令:
<pre><nowiki>
<pre><nowiki>
ln -s ~/.xinitrc ~/.xsession
ln -s ~/.xinitrc ~/.xsession
</nowiki></pre>
</nowiki></pre>
Using the above command creates a symbolic link named '''.xsession''' that points to '''.xinitrc'''. If you are familiar with Windows, it may help to think of a symbolic link (or symlink), as a kind of non-graphical shortcut.
用上面的命令可以创建一个名叫'''.xsession'''的符号链接,指向'''.xinitrc'''。如果你熟悉Windows,这可能有助于理解符号链接(或符号链)是一种非图形化的快捷方式。
1.#12 Once you have linked '''.xsession''' to '''.xinitrc''', you are ready to make your graphical login manager run your custom environment instead of a default session. To do, begin by restarting the graphical login manager:
1.#12 一旦你完成了'''.xsession''''''.xinitrc'''的链接,你就可以使您的图形登录管理器运行自定义的环境,而不是默认的会话。为此,首先重新启动图形登录管理器:
<pre><nowiki>
<pre><nowiki>
sudo /etc/init.d/gdm start
sudo /etc/init.d/gdm start
</nowiki></pre>
</nowiki></pre>
1.#13 Enter your user name, and then click on the '''Sessions''' button. The appearance of the '''Sessions''' button depends on whether you are using a themed greeter or not, and which greeter theme you are using.
1.#13 键入你的用户名,点击'''Sessions'''按钮。'''Sessions'''按钮的外观取决于你是否使用登录器主题,还有登录器主题的种类。
1.#14 From the '''Sessions''' menu, select '''Default System Session'''. This will make GDM run your X session script instead of one of the predefined sessions.
1.#14 '''Sessions'''菜单中选择'''Default System Session'''。它会让GDM运行你的X会话主题以替代其他任意的预定义会话。
1.#15 Enter your password.
1.#15 输入你的密码。
1.#16 Once you have entered your password, GDM will notify you that you have chosen a session different from the default and ask you if you want to use the session you've chosen once, or make it the default. If you make your custom session the default, you can select a different session at your next login.
1.#16 一旦你输入密码,就GDM会通知你,你选择的会话并非默认,并询问你是否要使用选择的临时会话,或使其成为默认的会话。如果你让自定义会话的为默认,你就可以在下次登录时选择一个不同的会话。
 
=== 一个~/.xinitrc文件样例 ===
=== 一个~/.xinitrc文件样例 ===
下面是此HOWTO的作者,Stormy Eyes,在家中使用的'''.xinitrc'''文件。它利用非默认安装的应用程序,比如xcompmgr来合成特效还有feh来设置壁纸。如果你有任何关于这.xinitrc样例文件的问题,请在论坛里询问。
下面是本HOWTO的作者,Stormy Eyes,在家中使用的'''.xinitrc'''文件。它利用非默认安装的应用程序,比如xcompmgr来合成特效还有feh来设置壁纸。如果你有任何关于这.xinitrc样例文件的问题,请在论坛里询问。
<pre><nowiki>
<pre><nowiki>
#!/usr/bin/env bash
#!/usr/bin/env bash
第99行: 第97行:
=== 问题与意见 ===
=== 问题与意见 ===
如果你有任何有关此教程的意见或问题,请将它们发送到[http://ubuntuforums.org/showthread.php?p=427953 论坛]上。谢谢。
如果你有任何有关此教程的意见或问题,请将它们发送到[http://ubuntuforums.org/showthread.php?p=427953 论坛]上。谢谢。
----
[[category:CategoryDocumentation]] [[category:CategoryCleanup]]


[[category:UbuntuWiki]]
[[category:系统]]

2010年11月13日 (六) 12:43的最新版本

{{#ifexist: :定制X会话/zh | | {{#ifexist: 定制X会话/zh | | {{#ifeq: {{#titleparts:定制X会话|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:定制X会话|1|-1|}} | zh | | }}

本页面将会教你如何通过编辑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

问题与意见

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