Gnome favorite-apps per postsync setzen

Hallo,

ich habe versucht, auf einzelnen Rechnern eine App in die Favoritenleiste von Gnome/Ubuntu zu bekommen, per postsync (linuxmuster V7)
Dazu habe ich diesen Rechnern ein Skript in die /etc/linuxmuster-client/login.d gelegt, mit folgendem Inhalt:
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'appname.desktop']"

Aber der User erhält nach dem Login das neue Icon nicht. Wenn ich den Befehl dann auf der Konsole absetze, klappt es. Hat jemand eine Idee, warum nicht als Login-Script?

Grüße,
Stefan

1 Like

Hallo Stefan,

mein erster Verdächtiger in solchen Fällen: Rechte!?

Beste Grüße

Thorsten

Hallo Thorsten,

identisch zu den anderen Login-Scripten, die laufen…

Grüße,
Stefan

  1. Verdächtiger: Pfade!?

  2. ?

Nachtrag:

whereis gsettings

Ausgabe im Script mit verwursteln.

Hallo,

wäre nett gewesen, mit /usr/bin/gsettings, ändert aber leider nix.

Grüße,
Stefan

Hallo Stefan,

Probier mal dein Skript als User zu rufen (und nicht als Kommandozeile ), vielleicht hat das Skript ein Problem mit dem $ (anderes Shell ?), und vielleicht erhälst du auch damit eine klare Fehlermeldung.

Gruß

Arnaud

Was ist das für ein Zeichen, das du mittels s/.$// entfernst?

Hallo,

In der Tat:

expected value:
  , 'appname.desktop']
  ^'

Hab ich aus dem Internet, aber ich gehe davon aus, dass damit die ] entfernt wird, die sonst vor anstatt nach dem
'appname.desktop'
stünde…

Grüße,
Stefan

Stefan, poste doch mal dein komplettes Script. Bzw. verrate mir wo ich das finde. Eine schließende Klammer ohne öffnende finde ich komisch.

Und wo wir schon dabei sind: Anführungszeichen unten!?
Übertragfehler?

Hallo,

Das Script besteht nur aus der Zeile im ersten Post -der Editor hier hatte nur die Formatierung durcheinandergehauen, ich habe den Post deshalb bearbeitet, da sind natürlich in Wirklichkeit keine Anführungszeichen unten drin.
Die schließende Klammer steht da alleine, weil die öffnende Klammer schon im Ergebnis des get drinsteht. Die schließende Klammer im get-Ergebnis wird weggelöscht um hinten die neue App anzufügen.

Wie gesagt, der Befehl selbst funktioniert, sofern ich ihn per Copy&Paste in die Konsole des Users einfüge und ausführe, anschließend taucht die App sofort in der Schnellstartleiste auf. Da dürfte der Fehler also nicht stecken.

Grüße,
Stefan

Hallo Stefan,

ich fasse mal zusammen (um meinen Gedanken zu sortieren):

Du gibst als einfacher User die folgende Zeile an der Konsole ein:

Schritt 1

gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'appname.desktop']"

Sie macht das was du willst!

Schritt 2

Startetst du dein Script (ich nenne es mal lessies_apps) mit folgenden Inhalt

#!/bin/bash
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'appname.desktop']"

an der Konsole als einfacher User mit dem Befehl

/etc/linuxmuster-client/login.d/lessies_apps

dann macht es das was du willst?!

Nach dem Login wird das Script aber nicht automatisch abgearbeitet!?

Habe ich das so richtig wiedergegeben? Teste die Schritte noch einmal und poste bitte deren Output.

Beste Grüße

Thorsten

Hallo Stefan,

der sed-Befehl entfernt das letzte Zeichen der Zeile.

Pack doch mal ein paar Ausgabe-Befehle in Dein Skript, sowas wie „echo … >> /tmp/debug-skript.txt“. Dann weißt Du vielleicht mehr.

Beste Grüße

Jörg

Hallo,

Fast:

Das ist in meinem Post oben offenbar etwas untergegangen. Wenn ich das Script auf der Konsole starte, kommt:

Das Problem scheinen die doppelten Anführungszeichen zu sein, die er direkt auf der Konsole so akzeptiert, bei Ausführung des Scripts aber nicht.
Besonders komisch: Wenn ich das Script auf meinem heimischen Laptop mit Ubuntu 18.04 ausprobiere, funktioniert es. Aber auf dem schulischen 20.04 nicht…
Was ist denn da der Unterschied?

Grüße,
Stefan

Moin,

was gibt den

echo $SHELL

Beste Grüße

Thorsten

Hallo,

argh, peinlich! Nachdem meine Versuche heute auch auf der Konsole schiefliefen, habe ich versucht rauszukriegen, was gestern anders war - und in meinem Originalscript war doch ein Tippfehler, den ich trotz mehrmaligem Drübersehen nicht bemerkt habe: Ich hatte zweimmal set statt je einmal set und get getippt. Immer blöd, wenn man den Post auf einem anderen System tippt, als das mit dem Problem.

Genaugenommen war mein erster Post also selbst die Lösung des Problems, wenn man den Befehl korrekt übernimmt…

Nach der kleinen Korrektur eines Buchstabens klappt es jetzt nach dem Login! Nun kriegen die Smartboard-Rechner nach dem User-Login das Icon für die Smartboard-Software, während bei den anderen Rechnern darauf verzichtet wird.

Trotzdem vielen Dank fürs Mitdenken und eure Zeit!

Grüße,
Stefan

Hallo Stefan

Damit wir den 1. Post auch gleich als Lösung markieren können.

Beste Grüße

Thorsten

Hallo Stefan,

ich kann es jedenfalls gut gebrauchen, danke für den Tipp.

Beste Grüße

Jörg