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


31

有时可能需要用户仅有权访问某个应用程序。出于安全原因或为了更好地访问给定应用程序,可能不希望运行桌面环境。

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

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

Answers:


36

通过应用程序替换桌面

定义用户定义的会话

首先,我们将必须定义一个用户定义的会话,该会话可以处理不应该加载桌面时的特殊情况。我们将通过在/ 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>

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

编写脚本开始

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

#! /bin/bash

xterm
logout

登录时加载自定义会话

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

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

当然,我们还不能运行需要Windows管理器(如GNOME)的应用程序。为此,请使用以下方式替换.xsession脚本:

#! /bin/bash

gnome-wm &
firefox
logout

我们可以看到现在已加载GNOME Windows管理器,但不存在桌面元素。这样可以启动应用程序(例如,此处为Firefox)。

但请注意您要做什么:如果我们将应用程序最小化到不存在的纸盘,我们将得到一张漂亮的墙纸。因此,logout在应用程序终止后在脚本末尾包含注销会话非常重要。在您向脚本中添加一个程序之前,实际上没有其他程序可以运行。您故意只将桌面替换为firefox(一个坏主意)。

当然,我们也可以从脚本中启动gnome-desktopgnome-session(重新选择),但这是默认情况下已经执行的操作。


在自定义会话中,全屏只是一个问题。参见问题askubuntu.com/questions/184610/…–
Juzer Ali

您的解决方案将创建一个所有用户都可以看到的会话,但是会运行特定用户的脚本。-不理想。
罗伯·西默
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.