Ist es möglich zu wissen, welche erkannte Geschmacksrichtung ich mit dem Terminal verwende?

8

Ich habe eine Reihe von Funktionen im Bash-Skript, die ich nur auf bestimmten Ubuntu-Varianten ausführen möchte. Ich möchte beispielsweise Folgendes ausführen, wenn ich Unity ausführe:

gsettings set com.canonical.indicator.datetime show-week-numbers true

aber das folgende, wenn ich Ubuntu GNOME laufen lasse:

gsettings set org.gnome.shell.calendar show-weekdate true

und in ähnlicher Weise verschiedene Befehle für verschiedene Ubuntu-Varianten.

Ich habe versucht, den Inhalt von zu sehen /etc/os-release, aber es gibt keine Informationen über den Geschmack von Ubuntu. Folgendes ist, wenn es unter Ubuntu GNOME ausgeführt wird:

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

Ist es möglich zu wissen, welche erkannte Geschmacksrichtung ich mit dem Terminal verwende? Ich würde eine Lösung bevorzugen, die sofort funktioniert, ohne andere Pakete für Live- und installierte Umgebungen zu installieren. Es ist möglich, nach den installierten Paketen zu suchen, aber ich würde es vorziehen, diesen Weg nicht zu gehen, obwohl Sie gerne eine Antwort in diese Richtung geben können.

Aditya
quelle
1
Möchten Sie wissen, welche Ubuntu-Version installiert ist oder welche Desktop-Umgebung Sie gerade ausführen?
Terdon
@terdon Ich suche nach dem Geschmack, den ich in einer Live-Umgebung installiert / ausgeführt habe.
Aditya
1
Ich verstehe, ich kann mir einfach nicht vorstellen, warum das jemals nützlich sein würde. Die Variante ist nur die Gruppe von Paketen, die standardmäßig installiert sind. Sie sagt nichts darüber aus, was Sie tatsächlich installiert haben. Ich kann KDE zum Beispiel auf Xubuntu installieren. Warum sollte es also nützlich sein zu wissen, dass ich Xubuntu und nicht Kubuntu verwende?
Terdon
@terdon Ich wollte es nur so schreiben, aber ja, es wäre nützlicher, wenn ich mir anschaue, welche Desktop-Umgebung ich verwende.
Aditya
1
@ Aditya: Vielleicht nicht das Aroma ... aber Sie können die Variable XDG_CURRENT_DESKTOP lesen, um zu wissen, was die aktuelle Desktop-Umgebung läuft, zB: Unity, GNOME, XFCE, KDE
Roman Raguet

Antworten:

12

Dies ist der Befehl, den ich benutze. Es funktioniert die ganze Zeit für mich:

cat /var/log/installer/media-info 

Ausgabe (mein System) Zeigt korrekt an, dass ich Kubuntu ausführe

Kubuntu 14.04 LTS "Trusty Tahr" - Beta amd64 (20140326.2)
cshubhamrao
quelle
Es sagt Thiszu mir.
Aditya
OP fragte nach Ubuntu Aromen (Einheit, Gnom)
Avinash Raj
@ AvashashRaj So etwas wäre auch in Ordnung gewesen :)
Aditya
1
Dies ist eine gute Möglichkeit, Informationen über das verwendete Installationsmedium und nicht über das aktuell ausgeführte Release zu erhalten. Wenn Sie alle Ihre Updates
Elder Geek
Ich verwende derzeit Ubuntu 16.04, aber dieser Befehl gibt mir folgende Ausgabe:Ubuntu 15.10 "Wily Werewolf" - Release amd64 (20151021)
RD017
7

Vielleicht keine Variante wie Kubuntu , Xubuntu , Lubuntu usw. Denn wie Oli & Terdon kommentiert, können Sie Kubuntu installieren, aber XFCE als Desktop ausführen .

Sie können also den Wert der Umgebungsvariablen XDG_CURRENT_DESKTOP abrufen, um zu erfahren, was auf dem aktuellen Desktop ausgeführt wird.

z.B:

  • echo $XDG_CURRENT_DESKTOP

Hinweis:
Die Werte der Variablen können Unity, GNOME, XFCE, KDE, LXDE, Pantheon (Elementary OS ) sein.

Hoffe das hilft.

Roman Raguet
quelle
Obwohl sich die Frage auf anerkannte Geschmacksrichtungen bezog und dies mich nicht wissen lässt, ob ich Edubuntu, UbuntuKylin, Mythbuntu, UbuntuStudio oder andere anerkannte Geschmacksrichtungen verwende; aber das würde mir helfen, das Problem zu lösen, das ich zu lösen versuchte. Also +1 für die Antwort, aber ich bin mir nicht sicher, ob ich es akzeptieren will oder nicht.
Aditya
@ Aditya: Ich verstehe. Vielleicht könnte der Titel Ihrer Frage lauten: "Ist es möglich zu wissen, welche Desktop-Umgebung ich mit dem Terminal verwende?". Je nach Inhalt Ihrer Frage möchten Sie mit gsetting festlegen, ob ich Unity oder Gnome usw. (Desktops) und nicht Flavours verwende. Vielleicht können Sie mit der Antwort des Cshubhamrao kombinieren cat /var/log/installer/media-info. arbeitete für mich in virtuellen Maschinen Kubuntu, Ubuntu Gnome, Ubuntu, Xubuntu. (nicht live installiert)
Roman Raguet
Einfach und elegant. Ich mag das.
Elder Geek
2

Stellen Sie beide ein. Alles einstellen. Feuer und vergessen.

Die Einstellungen sind exklusiv genug, um andere Dinge nicht zu beeinflussen, daher sollte es sicher sein ... Und es ist viel, viel einfacher zu tun, als herauszufinden, was ausgeführt wird ... Es ist möglich, herauszufinden, was installiert ist, aber das ist keine Angabe, was der Benutzer tatsächlich verwendet.

Oli
quelle
Ja, die Befehle scheinen keine Nebenwirkungen zu haben, wenn sie in einer Umgebung ausgeführt werden, in der sie nicht ausgeführt werden sollen. Gibt es jedoch keine Datei, aus der ich die Informationen der von mir ausgeführten Version extrahieren kann?
Aditya
2
Selbst wenn es einen Weg gab (und es gibt ihn mit ziemlicher Sicherheit), der nicht garantiert, dass sich der Benutzer in dieser Umgebung befindet. Sie können Gnome und KDE unter Ubuntu installieren und es ist immer noch Ubuntu.
Oli
0

Folgendes ifzeigt Ihnen, ob Sie Unity ausführen oder nicht:

if [[ "$(ps -ef | grep unity | grep $USER | grep -v grep)" =~ "unity" ]]; then 
    echo "I'm running Unity"; 
fi

Auf die gleiche Weise können Sie überprüfen, ob Sie GNOME oder andere Varianten ausführen. Wichtig ist, welchen (Teil-) Namen der Prozess Sie zuerst verwenden grep. Sie müssen einen bestimmten Prozess unterscheiden, der ständig nur in dem Geschmack abläuft, an dem Sie interessiert sind.

Radu Rădeanu
quelle
Ich mag die Verwendung von ps und grep hier. Die Unterscheidung eines bestimmten Verfahrens zur Anwendung auf einen bestimmten Geschmack wird für den Durchschnittsbenutzer jedoch wahrscheinlich etwas schwierig sein.
Elder Geek
0

Wenn Sie einige Standardeinstellungen für Desktop-Einstellungen für alle Benutzer festlegen möchten, ist es viel einfacher, das Betriebssystem dies mithilfe von Gsettings-Schemaüberschreibungen für Sie tun zu lassen. Erstellen Sie beispielsweise Folgendes /usr/share/glib-2.0/schemas/99_my-settings.gschema.overridemit Ihren Einstellungen:

[com.canonical.indicator.datetime]
show-week-numbers=true

[org.gnome.desktop.calendar]
show-weekdate=true

Verwenden Sie den Dconf-Editor oder die CLI-Tools, um das richtige Schema (in eckigen Klammern) für jede Einstellung zu überprüfen. Sie können unter jedem Schema mehrere Einstellungen gruppieren. Führen Sie dies abschließend aus, um die Standardeinstellungen für alle Benutzer festzulegen:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Auf diese Weise müssen Sie nicht einmal Skripte ausführen, da jede Desktop-Umgebung beim Start ihre neuen Standardeinstellungen findet. Außerdem können Benutzer sie personalisieren, ohne dass ein hinterhältiges Startskript sie wieder ändert.

Hier einige weitere Informationen: https://developer.gnome.org/gio/stable/glib-compile-schemas.html

Martin Laakso
quelle