Rejestracja rozszerzeń plików / typów mime w Linuksie
Rozwijam aplikację na Linuksa, która ma swój własny format plików. Chcę, aby moja aplikacja otworzyła się po dwukrotnym kliknięciu tych plików.
Jak mogę zarejestrować rozszerzenie pliku i skojarzyć je z moją aplikacją na Linuksie? Szukam sposobu, który jest standardowy (działa z systemami GNOME i KDE) i może być wykonany automatycznie, gdy mój program jest zainstalowany lub uruchomiony po raz pierwszy.
4 answers
Użyj xdg-utils
z freedesktop.org Portland .
Zarejestruj ikonę dla typu MIME:
xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype
Tworzenie pliku konfiguracyjnego (freedesktop współdzielona dokumentacja MIME):
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-mytype">
<comment>A witty comment</comment>
<comment xml:lang="it">Uno Commento</comment>
<glob pattern="*.myapp"/>
</mime-type>
</mime-info>
Zainstaluj plik konfiguracyjny:
xdg-mime install mytype-mime.xml
Dzięki temu Twoje pliki zostaną rozpoznane i powiązane z ikoną. xdg-mime default
może być używany do kojarzenia aplikacji z typem MIME po uzyskaniu .desktop
plik zainstalowany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-28 08:18:00
Są dwie części. Musisz zarejestrować nowy typ pliku, a następnie utworzyć wpis pulpitu dla Twojej aplikacji. Wpis pulpitu kojarzy aplikację z nowym typem mime.
Myślałem, że zarówno Gnome jak i KDE (może tylko 4+?) użyłem freedesktop shared MIME info spec , ale mogę się mylić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-28 08:03:04
1) w Linuksie jest to funkcja Twojego środowiska graficznego, a nie samego systemu operacyjnego.
2) GNOME i KDE mają różne metody, aby to osiągnąć.
3) nic cię nie powstrzymuje przed robieniem tego w obie strony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-27 19:14:01
Wypróbuj ten skrypt: needs:
1. your application icon -> $APP = FIREFOX.png
2. your mimetype icon -> application-x-$APP = HTML.png
W bieżącym katalogu:
#BASH SCRIPT: Register_my_new_app_and_its_extension.sh
APP="FOO"
EXT="BAR"
COMMENT="$APP's data file"
# Create directories if missing
mkdir -p ~/.local/share/mime/packages
mkdir -p ~/.local/share/applications
# Create mime xml
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">
<mime-type type=\"application/x-$APP\">
<comment>$COMMENT</comment>
<icon name=\"application-x-$APP\"/>
<glob pattern=\"*.$EXT\"/>
</mime-type>
</mime-info>" > ~/.local/share/mime/packages/application-x-$APP.xml
# Create application desktop
echo "[Desktop Entry]
Name=$APP
Exec=/usr/bin/$APP %U
MimeType=application/x-$APP
Icon=$APP
Terminal=false
Type=Application
Categories=
Comment=
"> ~/.local/share/applications/$APP.desktop
# update databases for both application and mime
update-desktop-database ~/.local/share/applications
update-mime-database ~/.local/share/mime
# copy associated icons to pixmaps
cp $APP.png ~/.local/share/pixmaps
cp application-x-$APP.png ~/.local/share/pixmaps
Upewnij się: FOO binary znajduje się w /usr / bin (lub w $PATH)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-13 08:19:49