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

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

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

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

用应用程序替换桌面

定义用户定义的会话

首先,我们必须定义一个用户定义的会话,在没有加载桌面的情况下处理特殊情况。 我们将通过在/ usr / share / xsessions /中创建一个custom.desktop文件来定义此会话,其内容类似于:

[Desktop Entry] Name=Custom Comment=Custom Session to run ~./.xsession Exec=/home//.xsession X-Ubuntu-Gettext-Domain= 

这将告诉GDM运行位于用户的HOME中的脚本.xsession

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

让脚本开始

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

 #! /bin/bash xterm logout 

登录时加载自定义会话

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

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

当然,我们还无法运行需要像GNOME这样的Windows管理器的应用程序。 为此,请使用以下内容替换.xsession脚本:

 #! /bin/bash gnome-wm & firefox logout 

我们可以看到GNOME窗口管理器现在已加载但没有桌面元素。 这使得应用程序(例如firefox)可以启动。

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

当然我们也可以从脚本启动gnome-desktopgnome-session (resp。options),但这是我们默认做的。