Wie ersetze ich den Desktop durch eine Anwendung?

31

Manchmal kann es erforderlich sein, dass ein Benutzer nur Zugriff auf eine bestimmte Anwendung hat. Das Ausführen der Desktop-Umgebung kann dann unerwünscht sein, sei es aus Sicherheitsgründen oder um einen besseren Zugriff auf die jeweilige Anwendung zu erreichen.

In diesen Fällen kann es wünschenswert sein, den Desktop durch eine Anwendung zu ersetzen, die unmittelbar nach der Anmeldung ausgeführt wird.

Andere Benutzer sollten einen normalen Zugriff auf ihre Desktops haben.

Takkat
quelle

Antworten:

36

Desktop durch eine Anwendung ersetzen

Benutzerdefinierte Sitzung definieren

Zuerst müssen wir eine benutzerdefinierte Sitzung definieren, die den Sonderfall behandelt, wenn kein Desktop geladen werden soll. Wir werden diese Sitzung definieren, indem wir eine custom.desktop-Datei in / usr / share / xsessions / mit ähnlichem Inhalt erstellen:

[Desktop Entry]
Name=Custom
Comment=Custom Session to run ~./.xsession
Exec=/home/<username>/.xsession
X-Ubuntu-Gettext-Domain=<gnome-session-3.0>

Dadurch wird GDM angewiesen, das Skript auszuführen, das .xsessionsich im HOME des Benutzers befindet <username>.

Optional X-Ubuntu-Gettext-Domainwird für eine korrekte Sprachübersetzung benötigt, falls der Unity / GNOME-Desktop später geladen wird (durch gdm10.04 ersetzen ).

Erstellen Sie ein Skript zum Starten

Dieses Skript ~ / .xsession könnte so einfach aussehen:

#! /bin/bash

xterm
logout

Benutzerdefinierte Sitzung beim Anmelden laden

Wenn wir jetzt festlegen, dass unsere Sitzung "Benutzerdefiniert" während der Anmeldung des angegebenen Benutzers auf dem GDM-Bildschirm geladen wird, wird nur das X-Terminal gestartet und wir werden beim Beenden wieder bei GDM sein. Wenn wir uns das nächste Mal als Benutzer anmelden, wird diese Einstellung standardmäßig gespeichert.

Führen Sie eine Anwendung aus, für die Windows-Verwaltung erforderlich ist

Natürlich können wir noch keine Anwendung ausführen, die einen Windows-Manager wie GNOME benötigt. Ersetzen Sie dazu das .xsession-Skript durch Folgendes:

#! /bin/bash

gnome-wm &
firefox
logout

Wir können sehen, dass der GNOME-Windows-Manager jetzt geladen ist, aber keine Desktop-Elemente vorhanden sind. Dies ermöglicht das Starten einer Anwendung (z. B. Firefox hier).

Aber pass auf, was du tust: Wenn wir die Anwendung auf das nicht vorhandene Fach reduzieren, erhalten wir ein hübsches Hintergrundbild. Aus diesem Grund ist es sehr wichtig, logoutam Ende des Skripts die Sitzung abzumelden, nachdem die Anwendung beendet wurde. Es gibt wirklich kein anderes Programm, das dies für Sie ausführt, bis Sie Ihrem Skript eines hinzufügen. Sie haben Ihren Desktop absichtlich nur durch Firefox ersetzt (eine schlechte Idee).

Natürlich können wir auch gnome-desktopoder gnome-session(bzw. Optionen) aus dem Skript heraus starten, aber das ist es, was wir bereits standardmäßig tun.

Takkat
quelle
Nur ein Problem mit dem Vollbild in benutzerdefinierten Sitzungen. Siehe Frage askubuntu.com/questions/184610/…
Juzer Ali
Ihre Lösung erstellt eine Sitzung, die für alle Benutzer sichtbar ist, jedoch ein Skript für einen bestimmten Benutzer ausführt. -- Nicht ideal.
Robert Siemer