如何用应用程序替换桌面?

如何用应用程序替换桌面?

有时可能需要用户只能访问某个应用程序。出于安全原因或为了更好地访问给定应用程序,运行桌面环境可能是不受欢迎的。

在这些情况下,可能需要用登录后立即运行的应用程序替换桌面。

其他用户应该可以正常访问他们的桌面。

答案1

用应用程序替换桌面

定义用户定义会话

首先,我们必须定义一个用户定义会话,用于处理不应加载任何桌面的特殊情况。我们将通过在 /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位于用户主目录中的脚本<username>

X-Ubuntu-Gettext-Domain如果我们稍后加载 Unity/GNOME 桌面(gdm在 10.04 中替换),则需要可选的正确语言翻译。

编写脚本开始

这个脚本 ~/.xsession 看起来很简单:

#! /bin/bash

xterm
logout

登录时加载自定义会话

如果我们现在定义在给定用户登录 gdm 屏幕时加载我们的会话“自定义”,则只会启动 X-Terminal,退出时我们将返回 gdm。下次我们以用户身份登录时,此设置将被记住为默认值。

运行需要 Windows 管理的应用程序

当然,我们还不能运行需要窗口管理器的应用程序,例如 GNOME。为此,请用以下脚本替换 .xsession 脚本:

#! /bin/bash

gnome-wm &
firefox
logout

我们可以看到 GNOME 窗口管理器现已加载,但尚无桌面元素。这样便可启动应用程序(例如此处的 Firefox)。

但要小心你的行为:如果我们将应用程序最小化到不存在的托盘,我们最终将看到一个漂亮的壁纸。因此,logout在脚本末尾包含应用程序终止后注销会话非常重要。实际上没有其他程序可以为您执行此操作,除非您将一个程序添加到脚本中。您故意用 Firefox 替换了您的桌面(一个坏主意)。

当然,我们也可以从脚本中启动gnome-desktopgnome-session(分别选项),但这是我们默认已经做的事情。

相关内容