web-dev-qa-db-ja.com

デスクトップをアプリケーションに置き換えるにはどうすればよいですか?

ユーザーが特定のアプリケーションにのみアクセスできることが必要になる場合があります。セキュリティ上の理由から、または特定のアプリケーションへのより良いアクセシビリティを実現するために、デスクトップ環境を実行することは望ましくない場合があります。

このような場合、ログイン直後に実行されるアプリケーションでデスクトップを置き換えることが望ましい場合があります。

他のユーザーには、デスクトップへの通常のアクセス権が必要です。

31
Takkat

アプリケーションによるデスクトップの置き換え

ユーザー定義セッションの定義

最初に、デスクトップをロードしない特別なケースを処理するユーザー定義セッションを定義する必要があります。/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デスクトップをロードする場合の正しい言語翻訳に必要です(10.04のgdmに置き換えます)。

開始するスクリプトを作成する

このスクリプト〜/ .xsessionは、次のように単純に見える可能性があります。

#! /bin/bash

xterm
logout

ログイン時にカスタムセッションを読み込む

Gdm画面で特定のユーザーのログイン中にセッション「カスタム」をロードするように定義すると、X-Terminalのみが開始され、終了時にgdmに戻ります。次回ユーザーとしてログインすると、この設定はデフォルトとして記憶されます。

Windows管理が必要なアプリケーションを実行する

もちろん、GNOMEなどのWindowsマネージャーを必要とするアプリケーションをまだ実行することはできません。これを行うには、.xsessionスクリプトを次のようなものに置き換えます。

#! /bin/bash

gnome-wm &
firefox
logout

GNOME Windowsマネージャーがロードされたが、デスクトップ要素が存在しないことがわかります。これにより、アプリケーション(ここではfirefoxなど)を開始できます。

しかし、あなたが何をするかに注意してください:存在しないトレイへのアプリケーションを最小化すると、見栄えの良い壁紙になります。このため、アプリケーションの終了後にセッションをログアウトするには、スクリプトの最後にlogoutを含めることが非常に重要です。スクリプトにスクリプトを追加するまで、これを実行するプログラムは他にありません。デスクトップを意図的にfirefoxのみに置き換えました(悪い考えです)。

もちろん、スクリプトからgnome-desktopまたはgnome-session(それぞれのオプション)を開始することもできますが、これは既にデフォルトで実行されています。

36
Takkat