[[Vorlage(Howto, fleet_street)]] ## Howtos bekommen eine getestet-Box wie Wikiartikel auch: [[Vorlage(getestet, jammy)]] {{{#!vorlage Wissen [:Caja: Dateimanager Caja] [:Editor: Texteditor] [:/GNOME_Konfiguration/dconf/#Grafisch: Konfigurationseditor] [:mit_Root-Rechten_arbeiten:] [:Terminal:] [:Konfigurationsverzeichnisse:] }}} [[Inhaltsverzeichnis(1)]] = Problembeschreibung = Ubuntu Mate hatte in der Version [:Focal: 20.04] noch ein Systemprogramm namens "Anmeldefenster", mit dem man die Anzeige bzw. das Verhalten während der Benutzeranmeldung beeinflussen konnte. Seit Version 21.04 wird jedoch der dafür verwendete slick-greeter durch artica-greeter ersetzt, weshalb das nicht mehr funktioniert. Nach einem Versionsupgrade auf die nun aktuelle Version 22.04 ist zwar das Programm "Anmeldefenster" noch installiert, aber es zeigt keine Wirkung mehr. Möchte man den alten Zustand wieder haben, deinstalliert man den `artica-greeter` und installiert stattdessen `lightdm-settings` sowie `slick-greeter`, wie unter [:LightDM_Settings:] beschrieben. Hier soll es um die Einflussnahme auf den artica-greeter gehen. Da artica-greeter nicht auf die Konfigurationsdateien unter '''/etc/lightdm.conf.d''' reagiert, sondern seine Einstellung per `dconf/gsettings` sucht, ist es ein wenig schwieriger, aber nicht unmöglich. In den folgenden Beispielen wird das Hintergrundbild geändert. Es sind jedoch noch weitere Einflussnahmen auf den artica-greeter möglich. Welche das sind, kann mit dem [:/GNOME_Konfiguration/dconf/#Grafisch: Konfigurationseditor] erkunden. Nach einem Eingriff – egal nach welcher Methode – ist ein Neustart des Rechners erforderlich, damit der Anmeldebildschirm auch die neue Einstellung einliest. = Methode A – "quick and dirty" = Man muss nur herausbekommen, welche Datei als Hintergrundbild verwendet wird, und ersetzt die Originaldatei durch das eigene Bild. Dazu kann man mit dem [:/GNOME_Konfiguration/dconf/#Grafisch: Konfigurationseditor] nach „artica“ und „background“ suchen bzw. im Terminal: {{{#!vorlage befehl gsettings get org.ArcticaProject.arctica-greeter background }}} Den Dateimanager [:Caja:] versetzt man über Rechtsklick -> '''Als Systemverwalter öffnen''' in die Lage in dem ermittelten Verzeichnis Änderungen vorzunehmen. Ist das eigene Bild richtig platziert, startet man den Rechner neu. Zeigt sich nicht das gewünschte Bild, hat man entweder nicht das richtige Verzeichnis erwischt oder die Groß-/Kleinschreibung durcheinander gebracht. {{{#!vorlage befehl sudo cp /usr/share/backgrounds/arctica-greeter.png /usr/share/backgrounds/ubuntu-mate-jammy/Jammy-Jellyfish_WP_4096x2304_Green.png }}} '''Nachteil''' dieser Methode ist ganz sicher, dass bei einer Aktualisierung der Pakete `arctica-greeter`, `ubuntu-mate-wallpapers-jammy` sowie `ubuntu-mate-default-settings` sich auch das Hintergrundbild auf den neuen Standard ändern kann. Wobei man mit einer gewissen Sicherheit davon ausgehen kann, dass die Hintergrundbilder nicht geändert werden, sondern eher durch neue Pakete (`…-kinetic`, ff.) ergänzt werden, wohingegen der `arctica-greeter` wohl bis zum Upgrade auf eine höhere Ubuntu-Version unverändert bleiben wird; Zumindest was das Hintergrundbild angeht. = Methode B – umständlicher und trotzdem ein wenig schmutzig = Es wird die binäre Konfigurationsdatei für ''dconf'' eines Benutzers in das Benutzerverzeichnis des Systembenutzers ''lightdm'' kopiert. Da die eine oder andere private Information in dieser Datei gelandet sein könnte, sollte sie besser von einem extra angelegten Benutzer erfolgen. {{{#!vorlage hinweis Hat man ein Upgrade auf die aktuelle Version hinter sich, gibt es noch ein grafisches Werkzeug um neue Benutzer anzulegen. Das kann natürlich noch genutzt werden. Wer hingegen eine Neuinstallation von Ubuntu MATE 22.04 gemacht hat, wird dieses Werkzeug nicht finden, es wird erst in Ubuntu MATE 22.10 ein Ersatz enthalten sein. Deshalb hier der Verweis auf das Terminal: (Wer stattdessen lieber das veraltete `gnome-system-tools` installiert, … ) }}} Es wird ein Benutzer ''dummy'' angelegt (s. [:adduser:]) {{{#!vorlage befehl sudo adduser dummy }}} Sodann muss man den Benutzer auf grafischem Weg wechseln und die Einstellung für das Hintergrundbild mittels [:/GNOME_Konfiguration/dconf/#Grafisch: Konfigurationseditor] oder `gsettings` ändern: {{{#!vorlage befehl gsettings set org.ArcticaProject.arctica-greeter background "'/usr/share/backgrounds/arctica-greeter.png'" }}} Nun sollte man sich wieder abmelden und als normaler Benutzer anmelden. (Sonst müsste ''dummy'' auch noch in die Gruppe ''sudo'' und das wäre doch unnötig). Nun kann man die Konfigurationsdatei des Benutzer ''dummy'' ins Benutzerverzeichnis des Benutzers ''lightdm'' kopieren/verschieben. Den Dateimanager [:Caja:] versetzt man über [[Vorlage(Tasten, rmb)]] -> '''Als Systemverwalter öffnen''' in die Lage in dem Zielverzeichnis Änderungen vorzunehmen. Um in das Quellverzeichnis '''/home/dummy/.config/dconf''' zu gelangen, lässt man sich über ''"Darstellung" -> "Verborgene Dateien anzeigen"'' ([[Vorlage(Tasten, strg+h)]]) eben genau Letzteres. Anschließend blendet man über ''"Darstellung" -> "Zusätzliche Leiste"'' (bzw. [[Vorlage(Tasten,F3)]]) ein weiteres Mal das Quellverzeichnis ein. In die erschienene Wechselt man, kann über [[Vorlage(Tasten, strg+l)]] die Pfadeingabe einschalten, löscht aus dem Pfad das '''/home/dummy''' heraus und ersetzt es durch '''/var/lib/lightdm''', was man noch kurz mit [[Vorlage(Tasten, Enter)]] bestätigen muss, damit der geänderte Pfad wirksam wird. Nun kann man die einzige im Quellverzeichnis enthaltene Datei '''user''' aus der linken Leiste in das Zielverzeichnis auf der rechte Seite herüberziehen. Anschließend sollte man noch über [[Vorlage(Tasten, rmb)]] ''"Eigenschaften"'' im Reiter ''"Zugriffsrechte"'' den Besitzer auf ''lightdm'' ändern. Denn nur so kann man im Anmeldefenster direkt bspw. die Einstellung der Lautstärke vornehmen. [[Bild(dummy-to-lightdm.png, align=center)]] Alternativ kurz im Terminal: {{{#!vorlage befehl sudo cp /home/dummy/.config/dconf/user /var/lib/lightdm/.config/dconf/user }}} Den Benutzer dummy kann man dann auch wieder löschen {{{#!vorlage befehl sudo deluser --remove-home dummy }}} '''Vorteil''' dieser Methode ist, dass sie eine Aktualisierung des Systems übersteht. = Methode C – Änderung als Benutzer lightdm = Diese sehr feine Methode, die ausschließlich im __Terminal__ stattfindet, arbeitet im Kontext des Benutzers ''lightdm'' und schreibt so die Änderung in die richtige Datei. == Einstellung ermitteln == Es ist zwar ein langes Kommando, aber immerhin ein Einzeiler. {{{#!vorlage befehl sudo setpriv --reuid=lightdm --reset-env dbus-launch gsettings get org.ArcticaProject.arctica-greeter background }}} === Erklärung === Zunächst benötigen wir erweiterte Rechte mittels vorangestelltem `sudo`, damit der folgende Wechsel der Privilegien auch funktionieren kann. Für diesen Wechsel wird das Programm `setpriv` verwendet. Mit dessen Option `--reuid` legen wir zunächst fest, dass die '''r'''eale und '''e'''ffektive Benutzerkennung (engl.: '''u'''ser '''id'''entifier; kurz: uid) ''lightdm'' sein soll. Durch die weitere Option `--reset-env` weisen wir es zudem an, die [:Umgebungsvariable: Umgebungsvariablen] ('''env'''ironment) durch die dieses Benutzers zu ersetzen. (Wichtig ist hier vor allem `HOME=/var/lib/lightdm`.) Als nächstes wird in diesem Kontext nun das Programm `dbus-launch` ausgeführt, welches verwendet wird um eine D-Bus-Session von einem Shell-Skript aus zu starten (üblicherweise erfolgt das über einen Dämon bei der grafischen Anmeldung eines Benutzers, aber wir wollen ''lightdm'' ja nicht grafisch anmelden.). Dies (dbus) ist wiederum eine zwingende Voraussetzung, damit `gsettings` arbeiten kann. `gsettings` wird nun abschließend angewiesen mittels `get` etwas auszulesen, nämlich aus dem ''Schema'' `org.ArcticaProject.arctica-greeter` den Schlüssel (engl. key) `background`. == Einstellung setzen == Nach der obigen Beschreibung kann man für das Ändern der Einstellung das Kommando nur mit `set` (statt `get`) und dem gewünschten Dateinamen ausführen. Dabei ist zwingend darauf zu achten, dass der Dateiname in einfachen Hochkommata eingeschlossen ist. Um das zu erreichen, wird es bei der Eingabe nochmals in normale Anführungszeichen verpackt. {{{#!vorlage befehl sudo setpriv --reuid=lightdm --reset-env dbus-launch gsettings set org.ArcticaProject.arctica-greeter background "'/usr/share/backgrounds/arctica-greeter.png'" }}} {{{#!vorlage Experten Beim erstmaligen Auslesen der Einstellung existiert die Datei '''/var/lib/lightdm/.config/dconf/user''' noch nicht. Es wird also der Standard ausgelesen. Erst nach dem ersten Setzen eines Wertes wird die Datei angelegt. }}} = Methode D – systemweite Änderung = {{{#!vorlage hinweis Hat man zuvor schon eine der Methoden B oder C angewendet, greift diese Methode D erst nach dem Löschen der Datei '''/var/lib/lightdm/.config/dconf/user'''. }}} Das meiste dieser Methode kann __grafisch__ erledigt werden. Der Dateimanager [:Caja:] wird gestartet und dann ins Verzeichnis '''/etc''' gewechselt. Das darin enthaltene Verzeichnis '''dconf''' wird mit der rechten Maustaste angeklickt und '''Als Systemverwalter öffnen''' ausgewählt. Nach erfolreicher Passwortabfrage hat man die Rechte Änderungen vorzunehmen. Es wird unterhalb von '''dconf''' ein neues Verzeichnis '''profile''' erstellt. Darin eine neue, leere Textdatei, die man '''user''' benennt. Per Rechtsklick [[Vorlage(Tasten, rmb)]] wird diese Datei mit einem reinen Texteditor geöffnet (und nicht mit dem Libreoffice Writer o. ä.). Nun fügt man folgen Inhalt hinein: {{{ user-db:user system-db:local }}} und speichert sie ab. Dann wechseln man wieder eine Ebene höher nach '''dconf''' und steigt nach '''db''' ab. Hier muss zunächst ein neues Unterverzeichnis '''local.d''' erstellt werden. Darin eine neue, leere Textdatei, die man '''arctica-background''' benennt. Mit Doppelklick kann man sie bearbeiten, den Text wie folgt verfassen und speichern: {{{ # dconf-Pfad [org/ArcticaProject/arctica-greeter] # dconf-Schlüsselnamen und zugehörige Werte background='/usr/share/backgrounds/arctica-greeter.png' }}} Nun kann im Dateimanager per Rechtsklick '''Im Terminal öffnen''' gewählt werden, womit man sich die erneute Passwortabfrage erspart – aber Vorsicht, als Systemverwalter können kleine Tippfehler gravierende Auswirkungen haben. Am Besten per Rechtsklick kopieren bzw. einfügen: {{{#!vorlage befehl dconf update }}} = Methode E – Schema Überschreibung = {{{#!vorlage hinweis Hat man zuvor schon eine der Methoden B oder C angewendet, greift diese Methode E erst nach dem Löschen der Datei '''/var/lib/lightdm/.config/dconf/user'''. }}} Für dconf gibt es im Verzeichnis '''/usr/share/glib-2.0/schemas/''' Xml-Dateien, die die Beschreibungen für Schema, ihre Schlüssel und ihre Vorgabewerte beinhalten. Diese Dateien sollte man nicht bearbeiten, da sie der Paketverwaltung unterstehen. Es gibt jedoch die Möglichkeit mit einer override-Datei, wie sie auch seitens Ubuntu MATE mehrfach genutzt wird, das Verhalten abweichend von den Ideen der Maintainer bzw. Distributoren zu setzen. Man wechselt also mit dem Dateimanager [:Caja:] in das genannte Verzeichnis, verschafft sich die Rechte eines Systemverwalters, öffnet per Rechtsklick [[Vorlage(Tasten, rmb)]] wird die Datei '''30_ubuntu-mate.gschema.override''' mit einem Texteditor, da sie als Vorlage dienen kann. (Unter Ubuntu MATE 22.04 enthält sie nämlich die Überschreibung auf das Hintergrundbild). Alles außer den oberen beiden Zeilen kann man löschen, als Wert zu ''background'' fügt man den absoluten Pfad für das gewünschte Hintergrundbild ein, wählt ''"Datei -> Speichern __unter__"'' und als Dateiname bspw. '''99_benutzerdefiniert.gschema.override'''. Der Inhalt der Datei sieht dann bspw. so aus: {{{ [org.ArcticaProject.arctica-greeter] background='/usr/share/backgrounds/arctica-greeter.png' }}} Alternativ im Terminal eine neue Datei erstellen: {{{#!vorlage befehl echo "[org.ArcticaProject.arctica-greeter] background='/usr/share/backgrounds/arctica-greeter.png'" | sudo tee /usr/share/glib-2.0/schemas/99_benutzerdefiniert.gschema.override }}} Für den abschließenden Schritt führt kein Weg am Terminal vorbei, denn der geänderte Wert muss noch in die Datenbank eingelesen werden mit: {{{#!vorlage befehl sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ }}} = Links = * Methode C * [https://manpages.ubuntu.com/manpages/jammy/de/man1/setpriv.1.html man setpriv] * [https://manpages.ubuntu.com/manpages/jammy/en/man1/dbus-launch.1.html man dbus-launch] {en} * [https://manpages.ubuntu.com/manpages/jammy/en/man1/gsettings.1.html man gsettings] {en} * Methode D * [https://help.gnome.org/admin/system-admin-guide/stable/dconf-custom-defaults.html.de help.gnome.org: Benutzerdefinierte Vorgabewerte für Systemeinstellungen] #tag: Howto