web-dev-qa-db-ja.com

ユーザー定義のセッションにLightDMを使用するにはどうすればよいですか?

正しく理解できれば、LightDMはデフォルトでGDMに取って代わりました。 .xinitrcファイルに入れたものを実行できるかどうか疑問に思います...必要なのは、「Unity」および「Unity 2D」の下にある「Run a user-defined session」というオプションです。

それは可能ですか?最も簡単なことであるはずですが、私はこれまでのところ手がかりを得ませんでした。このファイル内の多くのものをエクスポートして定義し、実行するため、それを制御することが非常に重要です。

したくないのは/ usr/some/whereのカスタムセッションです。各ユーザーのxinitrc(または同様の)からのものだけを実行したいだけです。

22
Philipp

新しいファイル/usr/share/xsessions/custom.desktopを作成します:

[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession

ログイン中に新しいセッションオプションが必要になります。Xsessionはユーザーの~/.xinitrcをロードします。

21
João Pinto

Olvwmを使用するには:

1)コンソールにSudo apt-get install olvwmと入力します

2)このセッションを作成します。

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application
1
Malix

新しいファイルを作成/user/share/xsessions/default.desktop(名前はあなた次第ですが、.desktop接尾辞が必要です):

[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=

lightdmでこのセッションを選択してログインすると、~/.xsessionファイルが存在する場合は実行されます。

実行されるユーザーのファイルは~/.xsessionであり、質問で言及された~/.xinitrcではありません。 (~/.xinitrcは、コマンドラインからstartxスクリプトを使用してXセッションが開始されるときに使用されます。)

説明:Nameエントリは、このセッションでlightdmが表示するものです。 Execエントリは重要なものであり、実際のセッションを開始するプログラムの名前である必要があります。ログインすると、lightdm/etc/X11/Xsessionスクリプトを呼び出し、Execの値を引数として渡して、Xsessionが最終的にこのプログラムを実行します(たとえば、 startxfce4セッションを開始する場合はxfce4になります)。 Execエントリが特別な文字列defaultである場合、Xsessionはユーザーの~/.xsessionファイルを実行します。 (Xsessionは、引数なしで呼び出された場合、~/.xsessionも実行します。)

申し訳ありませんが、私はここにいるので、他の人の答えにコメントすることはできませんが、より明確にするために、受け入れられた答えにコメントしたいと思います。上記の私の説明によると、その答えの方法で起こることは、Xsessionが([フルパス])lightdmである引数でXsessionによって呼び出されることです。したがって、Xessionが実行されてから、今度は引数なしで自分自身を呼び出します。 2番目のXsessionは、引数なしで呼び出され、ユーザーの~/.xsessionを実行します。そのため、最終的には目的のアクションが実行されますが、少し厄介です。

0
amitr