Registrieren von Dateitypen und Default-Anwendung
Moin, wir haben eine Anwendung und möchten nun einen speziellen Dateityp damit verknüpfen, d.h. wenn eine Datei mit der Endung "fsp" rum liegt, soll diese das passende Icon haben und soll auch mit unserer Anwendung geöffnet werden. Das ganze systemweit. Ich hab eine Datei fsp.desktop erstellt, diese nach /usr/share/applications kopiert und mit "update-desktop-database" registriert. Ein Icon wurde nach /usr/share/icons/hicolor/128x128/apps und /usr/share/icons/hicolor/128x128/mimetypes kopiert und mit "xdg-icon-resource install --context mimetypes --size 128 /usr/share/icons/hicolor/128x128/mimetypes/marco-fsp.png application-x-fsp" installiert. Ebenfalls wurde ein XML erstellt, nach /usr/share/mime/packages/ kopiert und mit "xdg-mime install" ins Mime-System integriert. Das ganze hat dazu geführt, dass eine Datei mit der Endung "fsp" schon mal das richtige Icon hat. Es hat aber irgendwie keine Anwendung zugeordnet. Das ist der letzte Schritt, der mir noch fehlt. Die Anwendung ist eigentlich in der ".desktop" -Datei mit "Exec=" angegeben. Kennt sich hier jemand mit dem xdg-mime-system aus und kann mir weiter helfen? Gruß Daniel -- Daniel Spannbauer Systemadministration marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4-6, D 87727 Babenhausen Mobil +49 171 4033220 https://www.marco.de Email ds@marco.de Geschäftsführer Martin Reuter, Torsten Lukas HRB 171775 Amtsgericht München
On 11.01.24 10:38, Daniel Spannbauer wrote:
Ebenfalls wurde ein XML erstellt, nach /usr/share/mime/packages/ kopiert und mit "xdg-mime install" ins Mime-System integriert.
Das ganze hat dazu geführt, dass eine Datei mit der Endung "fsp" schon mal das richtige Icon hat. Es hat aber irgendwie keine Anwendung zugeordnet. Das ist der letzte Schritt, der mir noch fehlt. Die Anwendung ist eigentlich in der ".desktop" -Datei mit "Exec=" angegeben.
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen. Der sieht hier z.B. so aus: [Default Applications] application/vnd.jgraph.mxfile=drawio.desktop; Viele Grüße Ulf
Moin, gibts da nen Befehl, mit dem man das erledigen kann? WIll ungerne von nem RPM aus per Skript in den Dateien rumfummeln. Gruß Daniel
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen.
Der sieht hier z.B. so aus:
[Default Applications] application/vnd.jgraph.mxfile=drawio.desktop;
Viele Grüße
Ulf
On 13.01.24 10:14, Daniel Spannbauer wrote: [mimeapps.list]
gibts da nen Befehl, mit dem man das erledigen kann? WIll ungerne von nem RPM aus per Skript in den Dateien rumfummeln.
Es gibt xdg-mime, aber die man- Page liest sich so, als ob das da nur per User gesetzt wird. Viele GRüße Ulf
Halllo, Am Samstag, 13. Januar 2024, 11:00:40 CET schrieb Ulf Volmer:
On 13.01.24 10:14, Daniel Spannbauer wrote:
[mimeapps.list]
gibts da nen Befehl, mit dem man das erledigen kann? WIll ungerne von nem RPM aus per Skript in den Dateien rumfummeln.
Es gibt xdg-mime, aber die man- Page liest sich so, als ob das da nur per User gesetzt wird.
Viele GRüße
Ulf Ich lese da von der 'man page': --mode mode mode can be user or system. In user mode the file is (un)installed for the current user only. In system mode the file is (un)installed for all users on the system. Usually only root is allowed to install in system mode.
The default is to use system mode when called by root and to use user mode when called by a non-root user. klingt so als würde das für root systemweit gehen. Aber https://wiki.ubuntuusers.de/xdg-utils/ schreibt Für das systemweite Setzen der Standardanwendung ist xdg-mime dagegen nicht geeignet. Wie das zu verstehen ist, weiß ich nicht. Gruß Hugo Mahr
On 13.01.24 11:42, Hugo Mahr wrote:
Halllo, Am Samstag, 13. Januar 2024, 11:00:40 CET schrieb Ulf Volmer:
On 13.01.24 10:14, Daniel Spannbauer wrote:
[mimeapps.list]
gibts da nen Befehl, mit dem man das erledigen kann? WIll ungerne von nem RPM aus per Skript in den Dateien rumfummeln. Es gibt xdg-mime, aber die man- Page liest sich so, als ob das da nur per User gesetzt wird.
Ich lese da von der 'man page': --mode mode mode can be user or system. In user mode the file is (un)installed for the current user only. In system mode the file is (un)installed for all users on the system. Usually only root is allowed to install in system mode.
The default is to use system mode when called by root and to use user mode when called by a non-root user.
klingt so als würde das für root systemweit gehen.
Aber https://wiki.ubuntuusers.de/xdg-utils/ schreibt Für das systemweite Setzen der Standardanwendung ist xdg-mime dagegen nicht geeignet.
Wie das zu verstehen ist, weiß ich nicht.
Ich vermute, der '--mode' Teil, den Du oben zitiert hast, bezieht sich auf die install/uninstall Funktion des Tools. Daniel bräuchte aber die default Funktion und dazu steht in der man- Page u.a.: | The default option is for use inside a desktop session only. It is not recommended to use xdg-mime default as root. Viele Grüße Ulf
[mimeapps.list]
gibts da nen Befehl, mit dem man das erledigen kann? WIll ungerne von nem RPM aus per Skript in den Dateien rumfummeln. Es gibt xdg-mime, aber die man- Page liest sich so, als ob das da nur per User gesetzt wird.
Ich lese da von der 'man page': --mode mode mode can be user or system. In user mode the file is (un)installed for the current user only. In system mode the file is (un)installed for all users on the system. Usually only root is allowed to install in system mode.
The default is to use system mode when called by root and to use user mode when called by a non-root user.
klingt so als würde das für root systemweit gehen.
Aber https://wiki.ubuntuusers.de/xdg-utils/ schreibt Für das systemweite Setzen der Standardanwendung ist xdg-mime dagegen nicht geeignet.
Wie das zu verstehen ist, weiß ich nicht.
Ich vermute, der '--mode' Teil, den Du oben zitiert hast, bezieht sich auf die install/uninstall Funktion des Tools.
Daniel bräuchte aber die default Funktion und dazu steht in der man- Page u.a.:
| The default option is for use inside a desktop session only. It is not recommended to use xdg-mime default as root.
Viele Grüße
Ulf
Danke euch beiden. Ich will das halt aus nem RPM-Paket heraus machen. Dann muss ich wohl wirklih mit sed/gawk oder sonst was da durch und das per Script fda reinfummeln. Wundert mich,d ass da noch keiner was für geschrieben hat. Gruß Daniel
Am 14/01/2024 um 17.16 schrieb Daniel Spannbauer:
Danke euch beiden. Ich will das halt aus nem RPM-Paket heraus machen. Dann muss ich wohl wirklih mit sed/gawk oder sonst was da durch und das per Script fda reinfummeln. Wundert mich,d ass da noch keiner was für geschrieben hat.
vieleich hilft das https://wiki.archlinux.org/title/XDG_MIME_Applications Holger
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen.
Der sieht hier z.B. so aus:
[Default Applications] application/vnd.jgraph.mxfile=drawio.desktop;
Viele Grüße
Ulf
Gerade mal geschaut: auf meinem Tumbleweed gibts die Datei gar nicht. Gruß Daniel -- Daniel Spannbauer Systemadministration marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4-6, D 87727 Babenhausen Mobil +49 171 4033220 https://www.marco.de Email ds@marco.de Geschäftsführer Martin Reuter, Torsten Lukas HRB 171775 Amtsgericht München
On 15.01.24 07:39, Daniel Spannbauer wrote:
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen.
Der sieht hier z.B. so aus:
[Default Applications] application/vnd.jgraph.mxfile=drawio.desktop;
Viele Grüße
Ulf
Gerade mal geschaut: auf meinem Tumbleweed gibts die Datei gar nicht.
Das hat ja auch niemand behauptet. Viele Grüße Ulf
Hallo, Am Montag, 15. Januar 2024, 07:39:40 CET schrieb Daniel Spannbauer:
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen.
Der sieht hier z.B. so aus:
[Default Applications] application/vnd.jgraph.mxfile=drawio.desktop;
Viele Grüße
Ulf
Gerade mal geschaut: auf meinem Tumbleweed gibts die Datei gar nicht.
Gibt es: /usr/share/mime/x-content/*.xml ? Das gibt es bei Leap 15.5. Und wohl auch bei TUMBLEWEED. WEB-suche sagt: Siehe: https://www.freedesktop.org/wiki/Specifications/AddingMIMETutor/ 1) $XDG_DATA_DIRS/mime/packages soll xml Datei enthalten. und 'run the update-mime-database command ...' 2) 'When the Gimp is uninstalled, it should remove the gimp.xml file and run update-mime-database again to remove the information from the database.' für gimp als Beispiel. Siehe: https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/ Siehe: https://en.opensuse.org/Portal:KDE/Default_applications sagt: '. The way the MIME type of a file is identified is non trivial' Siehe: https://forums.opensuse.org/t/cant-change-default-file-manager-in-gnome-3/14... für einen Nutzer Viele Grüße an Dich und an Ulf, der den Hinweis auf mimeapps.list hatte. Hugo Mahr
Hallo Daniel, jetzt funktioniert es bei mir in Tumbleweed. Ergänzend zu meinem letzten Beitrag Montag, 15. Januar 2024, 12:41:21 CET schrieb Hugo Mahr:
Hallo,
Am Montag, 15. Januar 2024, 07:39:40 CET schrieb Daniel Spannbauer:
M.W. mußt Du noch einen Eintrag in die /etc/xdg/mimeapps.list machen.
Der sieht hier z.B. so aus:
[Default Applications] application/vnd.jgraph.mxfile=drawio.desktop;
Viele Grüße
Ulf
Gerade mal geschaut: auf meinem Tumbleweed gibts die Datei gar nicht.
Gibt es: /usr/share/mime/x-content/*.xml ? Das gibt es bei Leap 15.5. Und wohl auch bei TUMBLEWEED.
WEB-suche sagt: Siehe: https://www.freedesktop.org/wiki/Specifications/AddingMIMETutor/ 1) $XDG_DATA_DIRS/mime/packages soll xml Datei enthalten. und 'run the update-mime-database command ...' 2) 'When the Gimp is uninstalled, it should remove the gimp.xml file and run update-mime-database again to remove the information from the database.' für gimp als Beispiel.
Siehe: https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/
Siehe: https://en.opensuse.org/Portal:KDE/Default_applications sagt: '. The way the MIME type of a file is identified is non trivial'
Siehe: https://forums.opensuse.org/t/cant-change-default-file-manager-in-gnome-3/1 43058/4 für einen Nutzer
Für die Datei hallo.endung habe ich auf der Kommandozeile: % gio info hallo.endung |grep content-type;echo;gio info hallo.endung |grep ico;echo;xdg-mime query filetype hallo.endung;echo;xdg-mime query default application/x-anwendung standard::content-type: application/x-anwendung standard::fast-content-type: application/x-anwendung standard::icon: application-x-anwendung, application-x-generic, application- x-anwendung-symbolic, application-x-generic-symbolic standard::symbolic-icon: application-x-anwendung-symbolic, application-x- generic-symbolic, application-x-anwendung, application-x-generic application/x-anwendung myapplication.anwendung.desktop Ich nehme an, das wäre das Ziel. Zumindest habe ich das icon systemweit definiert. In dolphin im Kontext-menü steht die Anwendung als Erstes (falls der Benutzer nichts anderes vorgibt). Jetzt kommt ein langer Überblick. Ganz am Ende meine Lösung. Was habe ich gemacht? Ich wollte alles unter /usr/local/share haben. Doch erst hatte ich keinen Erfolg. Jetzt gibt es auch Einträge unter /usr/share. Relevante Dateien sind: /usr/local/share/applications/myapplication.anwendung.desktop /usr/local/share/mime/packages/application-x-anwendung.xml /usr/local/share/mime/application/x-anwendung.xml /usr/local/bin/anwendung /usr/share/mime/application/x-anwendung.xml /usr/share/icons/hicolor/16x16/apps/anwendung.png /usr/share/icons/hicolor/16x16/mimetypes/application-x-anwendung.png /usr/share/icons/hicolor/16x16/mimetypes/gnome-mime-application-x- anwendung.png Relevante Kommandos: gio mime application/x-anwendung /root/application-x-anwendung.xml xdg-mime install /root/application-x-anwendung.xml update-mime-database -V /usr/local/share/mime/;update-desktop-database /usr/ local/share/applications xdg-mime install --mode system /root/application-x-anwendung.xml update-mime-database /usr/share/mime update-mime-database /usr/local/share/mime cp application-x-anwendung.xml Overrides.xml update-mime-database /usr/local/share/mime update-mime-database -V /usr/share/mime xdg-icon-resource ---- mehr Ausgabe, beachte mimetypes, einmal für breeze Thema: XDG_UTILS_DEBUG_LEVEL=4 xdg-icon-resource install --context mimetypes -- novendor --size 48 ~user/mychoq-rsvg/48.blueoutput.png anwendung XDG_UTILS_DEBUG_LEVEL=4 xdg-icon-resource install --theme breeze --context mimetypes --novendor --size 48 ~user/mychoq-rsvg/48.blueoutput.png anwendung Konvertieren von einem Icon. Neuer Hintergrund (Option -b) ist blau: rsvg-convert --keep-aspect-ratio --dpi-x=48 --dpi-y=48 -b=blue mychoqok.svg > 48.blueoutput.png cd /usr/share/pixmaps/ Links: https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-inf... Überschrift 'The source XML files' "glob elements have a pattern attribute ... There is also an optional weight attribute which is used when resolving conflicts with other glob matches. The default weight value is 50, and the maximum is 100." https://help.gnome.org/admin//system-admin-guide/2.32/mimetypes-source-xml.h... z.B. mime Erkennung mit <magic priority="50"> Icon Lookup -- https://specifications.freedesktop.org/icon-theme-spec/latest/ ar01s05.html Einen benutzerdefinierten MIME-Typ für alle Benutzer hinzufügen - einmal deutsch, dann englisch. https://help.gnome.org/admin/system-admin-guide/stable/mime-types-custom.htm... oder https://help.gnome.org/admin/system-admin-guide/stable/mime-types-custom.htm... https://wiki.archlinux.org/title/Icons '1.2 Mime type icons' ist eine Alternative um den Mimetyp zu finden. '2. fstab / gvfs' um icons für 'custom locations, like NFS shares'. Spezifikation: https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/ Dolphin Kontext menü erweitern: Stichwort X-KDE-ServiceTypes=KonqPopupMenu/ Plugin Ich denke, der Parameter ** weight ** ist wichtig in mime, z.B: /usr/share/mime/packages/kpatience.xml: <glob pattern="*.kpatience" weight="75"/> Und die desktop Datei muß den richtigen 'Mime type icon' haben. Viele Grüße Hugo Mahr
participants (4)
-
Daniel Spannbauer
-
Holger Bruenjes
-
Hugo Mahr
-
Ulf Volmer