Takkat Asked: 2011-01-30 13:29:57 +0800 CST2011-01-30 13:29:57 +0800 CST 2011-01-30 13:29:57 +0800 CST 如何用应用程序替换桌面? 772 有时可能需要用户只能访问某个应用程序。出于安全原因或为了更好地访问给定的应用程序,可能不需要运行桌面环境。 在这些情况下,可能需要用登录后立即运行的应用程序替换桌面。 其他用户应该可以正常访问他们的桌面。 gdm 1 个回答 Voted Best Answer Takkat 2011-01-30T13:32:42+08:002011-01-30T13:32:42+08:00 用应用程序替换桌面 定义用户定义的会话 首先,我们必须定义一个用户定义的会话来处理不应加载桌面的特殊情况。我们将通过在 /usr/share/xsessions/ 中创建一个 custom.desktop 文件来定义这个会话,其内容类似于: [Desktop Entry] Name=Custom Comment=Custom Session to run ~./.xsession Exec=/home/<username>/.xsession X-Ubuntu-Gettext-Domain=<gnome-session-3.0> 这将告诉 GDM 运行.xsession位于用户 HOME 中的脚本<username>。 如果我们稍后加载 Unity/GNOME 桌面(在 10.04 中X-Ubuntu-Gettext-Domain替换),正确的语言翻译需要可选。gdm 编写脚本开始 这个脚本 ~/.xsession 看起来很简单: #! /bin/bash xterm logout 登录时加载自定义会话 如果我们现在定义在给定用户登录 gdm 屏幕期间加载我们的会话“自定义”,那么只有 X-Terminal 将被启动,我们将在退出时返回 gdm。下次我们以用户身份登录时,此设置将被记住为默认设置。 运行需要 Windows 管理的应用程序 当然,我们还不能运行需要诸如 GNOME 之类的 Windows 管理器的应用程序。为此,请使用以下内容替换 .xsession 脚本: #! /bin/bash gnome-wm & firefox logout 我们可以看到 GNOME 窗口管理器现在已加载,但不存在桌面元素。这使应用程序(例如此处的 firefox)能够启动。 但请注意您的操作:如果我们将应用程序最小化到不存在的托盘,我们最终会得到一个漂亮的壁纸来查看。因此,logout在脚本末尾包含在应用程序终止后注销会话非常重要。在您将一个程序添加到您的脚本之前,实际上没有其他程序可以为您执行此操作。您故意只用 firefox 替换了您的桌面(一个坏主意)。 当然,我们也可以从脚本开始gnome-desktop或gnome-session(或选项),但这是我们默认已经做的。
用应用程序替换桌面
定义用户定义的会话
首先,我们必须定义一个用户定义的会话来处理不应加载桌面的特殊情况。我们将通过在 /usr/share/xsessions/ 中创建一个 custom.desktop 文件来定义这个会话,其内容类似于:
这将告诉 GDM 运行
.xsession
位于用户 HOME 中的脚本<username>
。如果我们稍后加载 Unity/GNOME 桌面(在 10.04 中
X-Ubuntu-Gettext-Domain
替换),正确的语言翻译需要可选。gdm
编写脚本开始
这个脚本 ~/.xsession 看起来很简单:
登录时加载自定义会话
如果我们现在定义在给定用户登录 gdm 屏幕期间加载我们的会话“自定义”,那么只有 X-Terminal 将被启动,我们将在退出时返回 gdm。下次我们以用户身份登录时,此设置将被记住为默认设置。
运行需要 Windows 管理的应用程序
当然,我们还不能运行需要诸如 GNOME 之类的 Windows 管理器的应用程序。为此,请使用以下内容替换 .xsession 脚本:
我们可以看到 GNOME 窗口管理器现在已加载,但不存在桌面元素。这使应用程序(例如此处的 firefox)能够启动。
但请注意您的操作:如果我们将应用程序最小化到不存在的托盘,我们最终会得到一个漂亮的壁纸来查看。因此,
logout
在脚本末尾包含在应用程序终止后注销会话非常重要。在您将一个程序添加到您的脚本之前,实际上没有其他程序可以为您执行此操作。您故意只用 firefox 替换了您的桌面(一个坏主意)。当然,我们也可以从脚本开始
gnome-desktop
或gnome-session
(或选项),但这是我们默认已经做的。