Wie funktioniert das Setzen von Hintergrundbildern in Ubuntu?

7

Eine der ersten Anpassungen, die jeder neue Benutzer an einem Betriebssystem vornehmen möchte, muss das Festlegen seines eigenen Hintergrundbilds sein! Ja, das kann auch in Ubuntu gemacht werden. Solange sich der Benutzer an die wenigen Hintergrundbilder hält, die in Ubuntu integriert sind, sollte dies kein Problem sein. Der Benutzer muss also in der Sandbox spielen, um unnötige Kopfschmerzen zu vermeiden. Sobald der Benutzer seine eigenen Bilder oder eines der frei verfügbaren Hintergrundbilder aus dem Internet auswählt, wird es kompliziert.

Problem Nr. 1:

Desktop

  1. Der Benutzer speichert eine JPEG-Bilddatei mit dem Namen bird.jpg in /home/user/Desktop.
  2. Das Benutzerrecht klickt auf das Dateisymbol und wählt "Als Hintergrundbild festlegen".
  3. Die Datei wird von /home/user/Desktopnach kopiert /home/user/Pictures/Wallpapersund als Desktop-Hintergrund festgelegt.

Warum muss die Datei kopiert werden? Zur sicherheit? Falls die Originaldatei verschoben oder gelöscht wird?

Problem Nr. 2:

Vogel

  1. Benutzer öffnet /home/user/Pictures/Wallpapers.
  2. Das Benutzerrecht klickt auf das Dateisymbol für bird.jpg und wählt "Als Hintergrundbild festlegen".
  3. Die Datei wird im aktuellen Ordner als Bird (Kopie) .jpg dupliziert, und die Datei wird als Desktop-Hintergrund festgelegt.
  4. Das Benutzerrecht klickt erneut auf bird.jpg und wählt erneut "Als Hintergrundbild festlegen".
  5. Die Datei wird im aktuellen Ordner als Bird (eine weitere Kopie) .jpg dupliziert, und die Datei wird als Desktop-Hintergrund festgelegt.

Warum müssen Dupes erstellt werden, um eine bestimmte Datei als Hintergrundbild festzulegen?

Problem Nr. 3:

Aussehen Aussehen2 Tapeten

  1. Der Benutzer öffnet /home/user/Pictures/Wallpapersund löscht alle darin enthaltenen Dateien.
  2. Benutzer öffnet das Dialogfeld Darstellung.
  3. Der Benutzer klickt auf die Plus-Schaltfläche, um ein Bild zur Liste "Hintergrundbilder" hinzuzufügen.
  4. Der Benutzer navigiert zu /home/user/Desktop, wählt bird.jpg aus und klickt auf die Schaltfläche Öffnen.
  5. Das Bild wird hinzugefügt, jedoch nicht zur Liste "Hintergrundbilder". Es wird der Liste "Bilderordner" hinzugefügt.
  6. Der Benutzer navigiert zu /home/user/Pictures/einem leeren Ordner und findet ihn (mit Ausnahme eines Unterordners).
  7. Der Benutzer navigiert zu /home/user/Pictures/Wallpaperseinem leeren Ordner und findet ihn.

Warum wird die Bilddatei zur Liste "Bilderordner" und nicht zur Liste "Hintergrundbilder" hinzugefügt?

Warum ist der /home/user/PicturesOrdner leer, wenn die Datei zur Liste "Bilderordner" hinzugefügt wird ? Wenn "Bilderordner" einen Ordnernamen darstellt, wie lautet sein Suchpfad?

Problem Nr. 4:

Aussehen2 Aussehen3

  1. Der Benutzer führt die Schritte 2 bis 4 aus der vorherigen Problembeschreibung aus.
  2. Benutzer schließt das Dialogfeld Darstellung.
  3. Der Benutzer öffnet das Dialogfeld Darstellung.
  4. Die Liste "Bilderordner" ist jetzt auf magische Weise leer.

Ich möchte einen bestimmten Ordner festlegen, in dem ich alle Bilder aufbewahre, aus denen ich auswählen und als Desktop-Hintergrund verwenden kann.

Der Grund, warum ich mich auf einen Ordner beschränke, sind die oben beschriebenen Probleme. Ich bin bereit, dies auf diese Weise zu tun, um Dupes zu vermeiden, da ich normalerweise das Hintergrundbild ändere, indem ich die Datei finde, die ich verwenden möchte. Ich suche nicht zuerst nach dem richtigen Einstellungsdialogfeld und dann nach der Datei. (Ich denke, ich mache es aus Sicht der Ubuntu-Evangelisten falsch .) Ich verwende dann das Mausklick-Kontextmenü, um genau das zu tun, was ich will, und Ubuntu hat diese Option, aber sie ist schlecht implementiert.

Daher bin ich bereit, dieses Manko zu umgehen und das Dialogfeld "Darstellung" ("richtig") und einen bestimmten Ordner zu verwenden, aus dem ich über das Dialogfeld Hintergrundbilder auswählen kann. Aber selbst damit dies funktioniert, muss ich das Problem Nummer 4 beseitigen, bei dem das Dialogfeld Darstellung die zuvor ausgewählten Dateien oder Speicherorte nicht anzeigen möchte, damit sie mir als Liste angezeigt werden.

Wie geht ihr damit um? Bleib einfach bei den Standard-Hintergrundbildern ??? ...

Samir
quelle
4
Persönlich ändere ich selten mein Hintergrundbild. Und seit ich zu Ubuntu gewechselt bin, habe ich das nie bemerkt. In jedem Fall empfehle ich, dies als Fehler auf dem Launchpad hinzuzufügen, da dies ein sehr seltsames Verhalten zu sein scheint.
Dan
1
Abgeordneter Dan. Wenn Sie ein fehlerhaftes Verhalten festgestellt haben, reichen Sie einen Fehlerbericht ein.
Muru
1
Wissen Sie, diese skurrilen Verhaltensweisen bei Hintergrundbildern sind schon so lange vorhanden, dass ich sie als Teil des Funktionsumfangs betrachtet habe. Aber ich werde dafür sorgen, dass es gemeldet wird, es sei denn, es wurde bereits gemeldet.
Samir
1
Ich persönlich habe alle meine benutzerdefinierten Hintergrundbilder direkt dort, ~/Pictureswo die Darstellungseinstellungen sie standardmäßig finden, wenn ich im Dropdown-Menü "Bildordner" ausgewählt habe.
Byte Commander
1
Kein Bug, sondern ein Nautilus "Feature". Siehe meine Antwort
Sergiy Kolodyazhnyy

Antworten:

3

Es spielen verschiedene Kräfte eine Rolle. Die kanonische Methode zum Ändern von Hintergrundbildern ist die Verwendung von org.gnome.desktop.background picture-uriSchema und Schlüssel. Der wichtige Teil ist, dass das Bild eine lokale Datei sein muss .

Im Fall von Problem Nr. 4 wird das Schema direkt geändert. Beachten Sie, dass alle verfügbaren Optionen in den Darstellungseinstellungen aus lokalen Ordnern stammen.

Bei anderen von Ihnen angegebenen Problemen wird dies über nautilus durchgeführt, und nautilus hat die Möglichkeit, auf gemeinsam genutzte Netzwerklaufwerke zuzugreifen. Dies bedeutet, dass der Benutzer möglicherweise versucht, von dort aus ein Hintergrundbild festzulegen. Erinnern Sie sich, was ich gesagt habe - das Bild muss lokal sein? Aus diesem Grund kopiert Nautilus die Datei.

Der genaue Code dafür ist in der nautilus-view.cDatei festgelegt

static void
action_set_as_wallpaper_callback (GtkAction    *action,
                                  NautilusView *view)
{
        GList *selection;

        /* Copy the item to Pictures/Wallpaper since it may be
           remote. Then set it as the current wallpaper. */

Wie kann man das umgehen? Es gibt wirklich keine Möglichkeit, da es fest in Nautilus codiert ist. Möglicherweise möchten Sie eine Funktionsanforderung bei den Entwicklern einreichen oder die Quelle selbst ändern.

Sergiy Kolodyazhnyy
quelle
Interessant, obwohl ich denke, sie hätten das Hintergrundbild irgendwo in kopieren sollen~/.cache
Dan
@Dan wird es dort auch kopiert, aber das wird die ganze Zeit mit gemacht gsettings. So haben Sie Hintergrundbilder für verschiedene Benutzer. Das von Nautilus kopierte Hintergrundbild stellt sicher, dass die Datei lokal ist. Wahrscheinlich könnte dies den Entwicklern vorgeschlagen werden
Sergiy Kolodyazhnyy