LXDE: Autostart Anwendungen mit .desktop Dateien

von Paul Arnote (parnote)

Unter fast jeder großen Desktop-Umgebung, ist es eine relativ einfache Aufgabe, Anwendungen einzurichten, die automatisch gestartet werden, wenn Sie ihren Desktop starten. Allerdings ist dies nicht unbedingt so unter LXDE. In der Tat, LXDE verfügt nicht über ein Autostart-Verzeichnis, das standardmäßig aktiviert ist. Dank Neal Brooks, Autor des PCLinuxOS-LXDE Remaster, haben PCLinuxOS Nutzer dieses Feature bereits eingerichtet.

pic

Versteckt im Homeverzeichnis des Benutzers, ist der Ordner .config. In diesem Ordner .config finden Sie einen weiteren Ordner namens autostart. Genau wie bei KDE, werden Anwendungen beim hochfahren von LXDE automatisch gestartet, wenn diese im Verzeichnis autostart abgelegt wurden.

Man könnte denken, das es nun einfach ist einen Link zu der Anwendung anzulegen - entweder als symbolische Verknüpfung oder als feste Verbindung – um die gewünschte Anwendung aus dem Ordner autostart automatisch zu starten. Leider wird das so nicht gehen. Nö. Nur die tatsächlichen .desktop-Dateien funktionieren, unter LXDE. Automatisch gestartet werden können nur die Anwendung die in einer .desktop-Datei definiert sind.

Natürlich ist der einfachste Weg, die richtige .desktop-Datei (benötigt nicht unbedingt Rootrechte) zu kopieren und zwar von /usr/share/applications in das Verzeichnis $HOME/.config/autostart. Aber was, wenn Sie die Anwendung, die automatisch gestartet werden soll keine entsprechende .desktop-Datei bereit stellt? Lesen Sie weiter.

Wie .desktop Dateien genutzt werden

Bevor wir darüber diskutieren, wie eine .desktop-Datei für die Anwendung(en), die Sie automatisch starten möchten erstellt wird, ist es wichtig, zu verstehen, wie. desktop-Dateien auf Ihrem System angewendet werden. Natürlich, ist die Verwendung das Hauptthema dieses Beitrages: Das automatische starten von Anwendungen, wenn Sie LXDE nutzen. Aber die Hauptaufgabe der. desktop-Dateien ist es, die Programme in Ihrem LXDE-Menü anzuzeigen.

Alle Elemente die in LXDE-Menü angezeigt werden, sind in /usr/share/applications gespeichert. Diese Informationen können auch genutzt werden, um Ihr LXDE Menü anzupassen. In dieser Perspektive ist LXDE nicht all zu verschieden zu Xfce. Der Beitrag zu Xfce 4.6.1: Ihr Xfce Menü individuell anpassen (Juni 2010 Ausgabe) wird Ihre Bemühungen das LXDE Menü anzupassen erleichtern.

Glücklicherweise folgt LXDE den Standards für die .desktop-Datei, die durch freedesktop.org. festgelegt wurden. Dieser Link führt Sie auf die Seite, wo alle anerkannten "Schlüssel" in den .desktop-Dateien konform erklärt werden, sowie Angabe zu jeder Taste die erforderlich oder optional ist. Es ist zwar keine "offizielle" Organisation für Standards, jedoch haben Sie "Leitlinien" hervorgerufen, die durch Freedesktop.org gesetzt werden, de-facto Standards.

Erstellen einer .desktop Datei

Genau wie mit vielen anderen Dingen in Linux gibt es mehr als einen Weg eine .desktop-Datei für die gewünschte Applikation, die automatisch gestartet werden soll wenn LXDE hochgefahren wird zu erstellen. Die .desktop-Datei ist, wie viele Dateien in Linux eine einfache Textdatei. AlsaMixer GUI zum Beispiel zeigt das grundlegende Format für die .desktop-Datei:

[Desktop Entry]
Name=AlsaMixerGUIComment=Advanced Linux Sound Architecture (ALSA) graphical mixer
Exec=alsamixergui
Icon=sound_section
Terminal=false
Type=Application
Categories=Audio;Mixer;X-MandrivaLinux-Multimedia-Sound

Die Zeilen sollten ziemlich selbsterklärend sein, hier ein kurzer Überblick über jede Zeile. Der Eintrag "Name" ist, wie Sie vielleicht erraten, der Name der zu startende Anwendung. Der Eintrag "Kommentar" enthält die Informationen, die ausgegeben werden, wenn der Benutzer die Maus über den Eintrag im LXDE-Menü verweilen lässt. Der Eintrag "Exec" gibt an, welche Anwendung gestartet werden soll. Obwohl die meisten der ausführbaren Dateien auf Ihrem Computer in dem Verzeichnis /usr/bin abgelegt sind, wäre es klug, den vollständigen Pfad zu der Anwendung anzugeben. Wenn Ihre Anwendung in der Tat die ausführbare Datei in /usr/bin abgelegt hat, können Sie den Pfad in der "Exec" auch weglassen, da "Exec" automatisch in /usr/bin nach schaut. Andernfalls müssen Sie den vollständigen Pfad zur ausführbaren Datei mit angeben.

Der Eintrag "Icon" gibt das Symbol an das für die angegebene Anwendung angezeigt wird. Der Eintrag "Terminal" gibt an, ob die Anwendung in einer Terminal-Sitzung geöffnet werden soll. Der Eintrag "Type" braucht eigentlich keine Erklärung. Schließlich gibt es noch den Eintrag "Kategorien", erstens, die Kategorien, wo die Anwendung eingestuft werden soll und zweitens, wo das Symbol der Anwendung im LXDE Menü abgelegt werden soll. In unserem obigen Beispiel wäre dass unter LXDE > Klänge.

Jetzt, wo Sie ein grundlegendes Verständnis davon haben, wie eine .desktop-Datei funktioniert und wie sie aufgebaut ist, wird es Zeit zu erfahren, wie wir unsere .desktop Datei erstellen. Die erste Wahl und der wohl offensichtlichste Weg eine einfache Datei zu erstellen, ist von Hand mit einen einfachen Texteditor wie Leafpad. Um das Programm nicht in dem LXDE Menü angezeigt zu bekommen muss die .desktop-Datei auch nicht in /usr/share/applications Verzeichnis gespeichert werden. Umgekehrt, wenn Sie möchten, dass das Programm in Ihrem LXDE-Menü erscheint, müssen Sie die .desktop-Datei (oder eine Kopie davon) im Verzeichnis /usr/share/applications speichern. Sie benötigen Root-Privilegien, um die Datei dort zu speichern. Für den Aufbau einer Anwendung die automatisch gestartet werden soll, wenn Sie LXDE starten, müssen Sie die .desktop-Datei (oder eine Kopie davon), in Ihrem Verzeichnis /$HOME/.config/autostart speichern.

Die zweite Möglichkeit ist, eine vorhandene .desktop-Datei zu verwenden und diese auf Ihre Bedürfnisse anzupassen. Öffnen Sie eine bestehende .desktop-Datei, ändern die aufgelisteten Zeilen und speichern Sie mit dem gleichen Namen wie Ihre Anwendung mit der Erweiterung .desktop. In diesem Fall als xxx.desktop..

Die dritte Möglichkeit ist den Schritten aus dem Beitrag: Xfce 4.6.1: Ihr Xfce Menü individuell anpassen (Juni 2010 Ausgabe) zu folgen, indem Sie den Befehl exo-desktop-item-edit nutzen um Ihre .desktop-Datei mit der GUI Variante zu erstellen.

Unabhängig von der Methode die Sie verwenden möchten, vergessen Sie nicht, das speichern der resultierende .Desktop-Datei (oder eine Kopie davon) in $HOME/.config/autostart Ordner um die gewünschten Anwendungen automatisch zu starten, wenn Sie LXDE starten.

Fortgeschritten: Eine geführte Anleitung für (einfache) Abkürzung

Nun, ich nenne es "fortgeschritten", aber interpretieren Sie fortgeschritten nicht als schwierig. Eigentlich ist diese geführte Anleitung einfacher. Ich nenne es "fortgeschritten" aus zwei Gründen. Erstens geht es um ein einfaches Bash-Skript. Diese Tatsache allein kann schon der Versuch sein es bei zu behalten. Zweitens ist es eine andere Sichtweise auf das Problem und bietet eine andere Lösung, die flexibler ist.

Dieses Verfahren begann als Idee eines "Machbarkeitsnachweis" in meinem Kopf. Ich weiß nicht, ob jemand es schon vorher versucht hat. Wenn ja, toll. Wenn nicht, dann frage ich mich, warum. Also lassen Sie mich diese Methode Schritt-für-Schritt durchgehen.

Schritt eins: Erstellen Sie ein einfaches Bash-Skript, wie das folgende:

#!/bin/bash

sleep 10
dropbox &
conky &
aumix &
leafpad &
pcmanfm &
checkgmail &
pcc &

Alles, was ich hier gemacht habe, ist eine Liste aller Anwendungen zu erstellen, die automatisch gestartet werden sollen, wenn LXDE gestartet wird. Die erste Zeile bewirkt eine Verzögerung von 10 Sekunden bei der Ausführung vom Rest des Skripts. Diese Verzögerung ermöglicht die Desktop Umgebung zu laden, bevor der Start von Anwendungen beginnt. Jede Anwendung steht in einer eigene Zeile, gefolgt von einem Leerzeichen und dem kaufmännischen & Zeichen. Das & teilt der bash mit, die Anwendung im Hintergrund zu starten und anschließend zur nächsten Zeile zu gehen. Ohne das Zeichen würde das Skript zuerst Dropbox starten und warten bis Dropbox wieder beendet wird, um dann conky zu starten. Sobald conky fertig wäre, würde aumix gestartet werden. Der Ablauf würde sich bis zum Schluss fortführen, was nicht in unserem Interesse stände.

Diese Liste setzt natürlich voraus, dass ich Dropbox, Conky, Aumix, Leafpad, PCManFM, checkgmail sowie PCC starten möchte und das jedes Mal, wenn ich meinen Computer starte. Ich bin mir sicher, dass ich nicht will, dass alle diese Anwendungen automatisch gestartet werden, wenn ich LXDE starte. Aber ich liste sie hier auf, um zu beweisen, dass diese Technik funktioniert, die Bestätigung des Machbarkeitsnachweises. Sie können genauso gut andere Anwendungen in die Liste eintragen, die Sie möglicherweise automatisch gestartet haben wollen, sobald LXDE hoch fahren.

Schritt zwei: Speichern Sie Ihr neues Bash-Skript. Ich nenne es autostart-lxde.sh. Natürlich können Sie es nennen wie Sie wollen. Aber ich habe ihm den bedeutenden Namen gegeben, damit ich mich auch noch nach sechs Monaten oder nach einem Jahr daran erinnern kann was es zu bedeuten hat. Ich speichere mein Bash-Skript in meinem Verzeichnis $HOME.

Schritt drei: Nach einem rechten Mausklick auf Ihr neues Bash-Skript wählen Sie aus dem Kontextmenü "Eigenschaften".

pic

Klicken Sie auf die Registerkarte "Zugriffsrechte" und wählen Sie alle Felder, die mit der Aufschrift "Ausführen" beschrieben sind, an. Das erlaubt nicht nur dem Eigentümer die Datei auszuführen, sondern auch allen Mitgliedern die der angegebenen Gruppe angehören, sowie allen anderen Benutzern des Systems.

Schritt vier: Nach einem rechten Mausklick auf das Skript wählen Sie "Kopieren" aus dem Kontextmenü. Öffnen Sie das Verzeichnis /usr/bin (als root) und speichern Sie Ihr Skript in das Verzeichnis. Das Verzeichnis /usr/bin ist sehr wünschenswert, da es sich in Ihrem $PATH (Pfad) befindet. Wenn Sie eine Kopie Ihres Skript im das Verzeichnis /usr/bin speichern wird root Eigentümer und Gruppe des Skripts. Ein zusätzlicher Vorteil ist, dass die Liste der Anwendungen automatisch gestartet werden, wenn LXDE startet und das Skript nur von einem Benutzer mit Root-Rechten bearbeitet werden kann.

Wenn Sie aber lieber jedem Benutzer das Bearbeiten des Skript ermöglichen wollen, so können Sie es auch im Verzeichnis ihrer Wahl speichern. Wenn Sie diesen Weg wählen, müssen Sie den gesamten Pfad zu dem Skript in der .desktop-Datei, die Sie im nächsten Schritt erstellen, angeben.

Schritt fünf: Erstellen Sie eine .desktop-datei für Ihr Skript. Sie sollte in etwa wie folgt aussehen:

[Desktop Entry]
Name=LXDE Autostart
Comment=Automatically start listed applications when LXDE starts.
Exec=autostart-lxde.sh
Icon=/usr/share/icons/5.png
Terminal=false
Type=Application
Categories=Configuration

Speichern Sie die Datei in Ihrem Verzeichnis $HOME/.config/autostart. Es ist nicht Notwendigkeit, diese im Verzeichnis /usr/share/applications zu speichern, da es dabei nur dem einzigen Zweck dient, nämlich den automatischen Start Ihrer ausgewählte Anwendungen, beim starten von LXDE. In der Tat, habe ich in diesem Beispiel der .desktop-Datei nicht alle Parameter für das oben angegebene Skript gesetzt, damit es auch in Ihrem LXDE-Menü erscheinen würde.

Nun, wenn Sie jetzt LXDE starten, werden alle Anwendungen, die in Ihrem Skript aufgeführt sind, automatisch gestartet. Um dies zu testen, melden Sie sich bei Ihrer aktuellen LXDE Sitzung ab und wieder an. Wenn Sie die Schritte befolgt, und alles Richtig gesetzt haben, dann sollten alle Anwendungen in Ihrem Skript ausgeführt werden, wenn Sie LXDE starten.

Wissen Sie noch, dass ich sagte, das diese Methode einfacher und flexibler ist? Es bereinigt sicherlich Ihr Verzeichnis $ HOME /.config/autostart. Anstatt eine Menge an .desktop-Dateien im Verzeichnis autostart zu haben, haben Sie jetzt nur noch eine (oder zwei, da die DropBox sich automatisch hier einträgt ). Es spart Platz auf Ihrer Festplatte und im Autostart Ordner ist es übersichtlicher, da nicht mehr so viele .desktop-Dateien abgespeichert werden müssen. Und Sie können mit dieser Methode wirklich jede Anwendung starten, egal ob .desktop-Datei oder nicht.

Obwohl ich es nicht intensiv versucht getestet habe, sollte diese Methode gleichermaßen gut auf fast alle anderen Desktop-Umgebung funktionieren. Solange wie es eine gültige Anweisung für das automatische Starten von Anwendungen gibt, wenn die Desktop Umgebung gestartet wird. Es sollte kein Problem sein, da .desktop-Dateien im allgemeinen als ausführbare Dateien angesehen werden.

Kann das Skript auf werden verbessert? Ich bin überzeugt davon, da meine scripting Fähigkeiten sehr, sehr grundlegende sind. Aber wie es in seinem aktuellen Zustand vorhanden ist, es ist sehr funktionell. Es funktioniert einfach. Ich bin sicher, dass für jemanden (Wink mit dem Zaunpfahl), der gut im Erstellen von Skripten mit einer GUI-Schnittstelle (entweder über Zenity oder Gtkdialog) ist, es ein ziemlich einfaches Vorhaben wäre, ein GUI-Skript zum erstellen des Autostart-lxde.sh-Skript und der .desktop-Datei zu schreiben. Dies wäre für PCLinuxOS-LXDE Benutzer etwas, das keine anderen Benutzer von LXDE und auch auf anderen Linux-Distributionen haben: eine grafische Möglichkeit zum Verwalten der Anwendungen die automatisch gestartet werden, sobald LXDE gestartet wird.