Ich verwende Ubuntu 12.04 mit der Standard-Unity-Oberfläche. Ich habe später den KDE-Desktop, XFCE, LXDE, Gnome-Shell und Cinnamon installiert.
Der KDE wird mit anderen Standardanwendungen als Unity geliefert, z
kwrite
zur Textbearbeitung,konsole
als virtuelles Terminal,kfontview
zum Anzeigen und Installieren von Schriftarten,dolphin
als Dateibrowser etc.
Andere DE werden mit einigen anderen Standardanwendungen geliefert.
Das Problem tritt auf, wenn Sie eine Datei wie eine Textdatei öffnen möchten, mit der sowohl von gedit
als auch kwrite
, die ich kwrite
auf KDE und gedit
auf Unity oder Gnome verwenden möchte, geöffnet werden kann . Aber es gibt keine Möglichkeit, so zu setzen. Ich kann die Standardanwendung für Textdateien festlegen, indem ich die entsprechenden Einstellungen sowohl in KDE als auch in Unity ändere. Sie wird jedoch für beide DE zur Standardeinstellung.
Wenn ich kfontviewer
beispielsweise in KDE die Standardanwendung zum Anzeigen von Schriftarten festgelegt habe, werden auch Schriftarten geöffnet, wenn ich mich in Unity oder Gnome befinde, und umgekehrt. Dies ist ein Problem, da das Laden des Programms anderer DE viel länger dauert als das Standardprogramm für das verwendete DE.
Meine Frage ist: Kann ich verschiedene Standardanwendungen für verschiedene DE verwenden? Wie?
Antworten:
Ich habe diese Lösung zusammengestellt, um Ihr Problem zu beheben, und sie auf KDE und XFCE mit dem Öffnen von Text- und Schriftdateien getestet. Es ist eine generische Lösung, die auf eine beliebige Anzahl von Desktop-Umgebungen und MIME-Typen anwendbar sein sollte. So funktioniert es: Es gibt ein einfaches Python-Skript namens custom-open, das eine Datei mit verschiedenen Anwendungen für verschiedene Desktop-Umgebungen öffnet. Dies sind die Schritte zum Einrichten der Lösung:
benutzerdefiniert öffnen
.custom-open.ini
Das Besondere an dieser Lösung ist, dass Sie so viele neue Desktop-Umgebungen hinzufügen können, wie Sie möchten, und so viele MIME-Typen, wie Sie möchten. Um zu überprüfen, welchen Namen Sie für die Desktop-Umgebung angeben sollten, führen Sie den folgenden Befehl in einem Terminal aus.
Um den genauen MIME-Typ einer Datei zu überprüfen, führen Sie einfach Folgendes aus:
BEARBEITET: Die Notwendigkeit für symbolische Links wurde entfernt. Dies sollte die Verwendung vereinfachen. Ich habe auch einen grafischen Fehlerbehandler hinzugefügt, der eine Warnung ausgibt, wenn ein Fehler auftritt.
quelle
co.desktop
) mitExec=/home/user/.scripts/Customization/Defaultapps/custom-open-text
in ~ / .local / share / applications. 2.) Bearbeiten./local/share/applications/mimeapps.list
und fügen Sie die folgende Standardzuordnung hinzu :text/plain=co.desktop
. Finden Sie Fehler in diesem Verfahren?Wenn Sie nicht den "richtigen" Weg finden, können Sie eine Brute-Force-Methode wie die folgende anwenden:
cd $HOME;ls -Rlrt | less
, um herauszufinden, welche Dateien gerade aktualisiert wurden - dh wo diese Auswahlmöglichkeiten gespeichert wurdenHoffentlich gibt es eine Möglichkeit, Desktop-Umgebungen von einem Shell-Skript aus zu wechseln, mit der Option, der Desktop-Umgebung mitzuteilen, woher sie ihre Konfigurationsdateien bezieht. Das ist vielleicht sauberer als das ständige Verschieben von Dateien, aber ich habe nicht untersucht, ob oder wie das funktioniert.
Eine andere, viel einfachere Lösung, aber nicht genau das, wonach Sie gefragt haben, wäre einfach:
Erstellen Sie alle gängigen Datendateien, auf die Sie von all diesen Benutzern zugreifen müssen
-rwxrwxr-x
(chmod 775 list-of-files-and-directories
). Auf diese Weise erhalten Sie keine Berechtigungsfehler beim Versuch, in eine Datei zu schreiben, in die ein anderer Ihrer "Benutzer" zuerst geschrieben hat.quelle
~/.local/share/mime/