PyGTK-Anwendungssymbol in Unity unscharf

PyGTK-Anwendungssymbol in Unity unscharf

Ich habe ein 128x128-Symbol, auf das in der Glade-Hauptfensterdatei verwiesen wird, wie etwa <property name="icon">../media/my-icon.svg</property>:

Ich habe es sowohl mit SVG als auch mit PNG versucht, aber im Ubuntu-App-Umschalter (Alt + Tab) ist es immer sehr verschwommen.

Dasselbe ist mir beim schnellen Erstellen einer Anwendung aus einer Vorlage aufgefallen, das Ubuntu-Logo ist auch sehr verschwommen.

Irgendeine Idee, warum das passieren könnte?

Antwort1

Was ist los

Die <property name="icon">Einstellungen beziehen sich auf das Fenstersymbol, nicht auf das Anwendungssymbol. So wie ich es verstehe, komprimiert der Ubuntu-Fensterserver (X.org) diese nach dem Laden auf eine winzige Größe. Falls Sie sich nicht an das Jahr 2009 erinnern, wurden sie früher in dieser Funktion verwendet:

Bild des Fenstersymbols

Verwenden Sie stattdessen Anwendungssymbole

Ubuntu Unity verwendet dieses Format mit niedriger Auflösung, wenn nötig. Normalerweise werden jedoch die Anwendungssymbole entsprechend dem Icon=Wert vonder Anwendungsstarter eines bestimmten Fensters, genannt "Desktopeintrag".

Wenn Sie ein normaler Anwendungsentwickler sind, der nur plant, sein Programm zu veröffentlichen mitdas App Developer Portal, können Sie hier wahrscheinlich aufhören zu lesen. Der kostenlose Verpackungsdienst kümmert sich um das Schreiben des Desktopeintrags Ihrer App und das Platzieren der installierten Symbole im richtigen Teil des Dateisystems. Wenn nicht...

Das Wesentliche

So erstellen Sie einen Desktop-Eintrag und bringen Ubuntu dazu, Ihrem PyGTK-Fenster das richtige Anwendungssymbol und den richtigen Namen zuzuordnenist bereits in dieser Frage dokumentiert. Aber wo findet man eigentlichOrtSymbole, um das richtige anzuzeigen?

Die Antwort ist jedoch ziemlich kompliziert. Gemäß den Spezifikationen von freedesktop.org werden Icons nach Größe, Icon-Design und (falls erforderlich) Lokalisierung gesucht und geladen. Icons können sogar in mehreren verschiedenen Präfixen installiert werden, je nachdem, aus welcher Quelle sie installiert wurden. Ubuntu „fragt“ Icons nach Kontext ab.

Die einfachen Regeln: Verwenden Sie einen eindeutigen Symbolnamen für Ihre Anwendung, um falsche Übereinstimmungen mit anderen Symbolen zu vermeiden. Platzieren Sie die Symbole für Ihre Anwendung in einem der folgenden Verzeichnisse (oder einem Unterverzeichnis davon):

<user prefix>/share/icons/<icon width>x<icon height>/apps/
<user prefix>/share/icons/scalable/apps/

<user_prefix>ist der Installationspfad Ihrer Anwendung (dies gilt /usrfür Pakete, die vom Paketmanager installiert werden, /usr/local/für andere Software, die für alle Benutzer installiert wird, und $HOME/.localfür Einzelbenutzerinstallationen). <icon width>und <icon height>(oder „skalierbar“ für SVGs) bezieht sich auf die Abmessungen des Symbols. Wenn Sie viele verschiedene Symbolauflösungen erstellen, findet und wählt Ubuntu immer die richtige für jeden Kontext.

So sorgen Sie dafür, dass während der Entwicklung das richtige App-Symbol angezeigt wird

  1. Erstellen Sie ein skalierbares oder hochauflösendes Symbol und platzieren Sie es im richtigen Unterverzeichnis Ihres Benutzerverzeichnisses share/. Zum Beispiel myapp.svgwürde es in$HOME/.local/share/icons/scalable/

  2. Schreiben Sie einen Desktop-Eintrag, der den nicht erweiterten Namen Ihres Symbols enthält. Zum Beispiel

    [Desktop Entry]
    
    Name=My Application
    Exec=my_binary
    Icon=myapp
    

    Platzieren Sie dies in $HOME/.local/share/applications/. Beachten Sie, dass my_binarymusseine ausführbare Datei, die in einem Ihrer $PATHVerzeichnisse durchsuchbar ist.

  3. Führen Sie Ihre Anwendung entweder (a) vom Unity Dash aus, (b) von der Kommandozeile aus mit demGenauer NameIhrer $PATHausführbaren Datei [z. B. „my_binary“].

Wenn sich das alles wie Kauderwelsch liest …

Öffnen Sie Ihren Dateibrowser und erkunden Sie die Verzeichnisse /usr/share/applications/und /usr/share/icons/. Sehen Sie sich um und Sie werden verstehen, wie Anwendungsmetadaten und Symbole in Ubuntu funktionieren.

verwandte Informationen