Odpowiedzi:
Menedżer plików (domyślnie Nautilus) używa typu MIME pliku, aby określić, za pomocą którego programu go otworzyć. Gdy aplikacja jest zainstalowana, może określić, jakie typy MIME może otworzyć, oraz polecenie, które należy użyć, aby otworzyć pliki w pliku .desktop, który jest umieszczony /usr/share/applications
. Jest to plik używany do menu, skrótów pulpitu itp.
Na przykład GIMP ma następujący plik .desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
Zobacz MimeType
pole - zawiera listę obsługiwanych typów MIME. Exec
Pole informuje system o użyciu polecenia gimp-2.7 %U
, zastępując „% U” plikami do otwarcia. (Uwaga: GIMP 2.7 to wersja, którą zainstalowałem z PPA, więc jest wyższa niż bieżąca wersja w repozytoriach Ubuntu).
Po zainstalowaniu pakietu aplikacji system wyodrębnia dane typu MIME do łatwiej dostępnej bazy danych, ponieważ przeglądanie każdego pliku .desktop zajęłoby zbyt dużo czasu, gdyby robiono to przy każdym otwarciu pliku.
Informuje to system, jakie aplikacje mogą być używane dla tego typu MIME, i podaje aplikacje z listy „Otwórz za pomocą”. Wartość domyślna jest zdefiniowana w innym miejscu. Plik /usr/share/applications/defaults.list
zawiera informacje o ustawieniach domyślnych systemu. O ile nie zdecydujesz inaczej, są to aplikacje używane podczas „otwierania” pliku.
sudo update-desktop-database
Zobacz jarrpa.net/2011/10/28/…
/usr/local/share/applications
. Myślę, że gtk też tam domyślnie szuka. Działa w moim systemie, ale został zaktualizowany (nie przeinstalowany) od wersji Ubuntu 7.04.
Aby uzupełnić doskonałą odpowiedź dv3500ea, chciałbym dodać trochę informacji o tym, co stanie się, gdy zmienisz swoje skojarzenia.
Chociaż defaults.list (którą można znaleźć, wpisując „locate defaults.list”) udostępnia listę aplikacji powiązanych z każdym typem MIME, wszelkie dokonane dostosowania są przechowywane w katalogu domowym, w ~ / .local / udostępnij / aplikacje / mimeapps.list. Więc jeśli dodasz lub usuniesz powiązania lub zmienisz domyślne powiązanie, ten plik zostanie zaktualizowany.
Przewodnik administracji systemem GNOME Desktop pod adresem http://library.gnome.org/admin/system-admin-guide/stable/ nie wydaje się omawiać mimeapps.list, ale znalazłem następujący opis na http: //live.gnome .org / SysAdminGuideUpdate :
mimeapps.list znajduje się w $ XDG_DATA_DIRS / applications. Jego celem jest dodawanie lub usuwanie powiązań MIME z aplikacji. nautilus zapisuje ~ / .local / share / applications / mimeapps.list, gdy użytkownik wprowadza zmiany w oknie dialogowym „Otwórz za pomocą”.
mimeapps.list
jest to nadpisywane przez wpisy w defaults.list
.
~/.local/share/applications/mimeapps.list
, a działające procesy takie jak pcmanfm pobierały zmiany bez ponownego uruchamiania. (mplayer.desktop to po prostu działa mplayer. Miałem jednego leżącego ze starej instalacji mplayera w / usr / local, chyba. IDK, jeśli posiadanie MimeType=list;
było potrzebne czy nie.
mimeapps.list
może znajdować się w dowolnym miejscu w następującej ścieżce wyszukiwania: Specyfikacje.freedesktop.org/mime-apps-spec/...
Odkryłem, że w moim systemie (Debian Jessie) jest też takie ~/.config/mimeapps.list
, które przypadkowo utworzyłem skojarzenie, aby otworzyć określony typ pliku za pomocą gedit. Żaden ze standardowych sposobów na poprawienie tego (domyślne ustawienia aplikacji, Thunar jest otwarty z właściwością) nie odzwierciedlał tego, ale gedit była aplikacją domyślną.
Byłem w stanie usunąć linię ~/.config/mimeapps.list
i teraz właściwa aplikacja otwiera plik.
~/.config/mimeapps.list
.
mimeapps.list
może znajdować się w dowolnym miejscu w następującej ścieżce wyszukiwania: Specyfikacje.freedesktop.org/mime-apps-spec/...
Znalazłem ten link dotyczący domyślnego skojarzenia, może być pomocny.
https://wiki.archlinux.org/index.php/Default_Applications
dla globalnego stowarzyszenia:
/usr/share/applications/mimeapps.list
na powiązanie użytkownika:
~/.local/share/applications/mimeapps.list
Składnia jest następująca:
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
Sekcja [Dodane powiązania] służy do określania preferowanych (domyślnych) aplikacji w malejących preferencjach. co oznacza, że desktopfile1 jest najbardziej preferowany, a desktopfileN jest najmniej preferowany. Sekcja
[Usunięte powiązania] służy do jawnego usuwania wszelkich odziedziczonych wcześniej powiązań.
/usr/share/applications/mimeapps.list
nie istnieje.
mimeapps.desktop
siędefaults.desktop
Utwórz plik truecrypt.desktop
na ~/.local/share/applications
następujące linie:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
następnie edytuj plik ~/.local/share/applications/mimeapps.list
i dodaj następujący wiersz:
application/octet-stream=truecrypt.desktop
Znalazłem typ MIME Truecrypt, uruchamiając to polecenie:
file --mime-type -b <any truecrypt filename>
mimeapps.list
ścieżka wyszukiwania
Inni wspomnieli o tym pliku, ale nikt nie wyjaśnił dokładnie jego lokalizacji.
Standard freedesktop.org mówi na https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :
Kolejność wyszukiwania dla tego pliku jest następująca:
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
a następnie wartości domyślne tych zmiennych środowiskowych podano na stronie https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html :
$XDG_DATA_HOME
: $HOME/.local/share
$XDG_CONFIG_HOME
: $HOME/.config
$XDG_DATA_DIRS
: brak, dołączono do XDG_DATA_HOME
$XDG_CONFIG_DIRS
: brak, dołączono do XDG_CONFIG_HOME
Starsze wersje Ubuntu mogą nie sprawdzać ~/.config
, więc spróbuj ~/.local/share
również.
Polecenia takie jak:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
automatycznie edytuje te pliki.
Dla wszystkich użytkowników:
/usr/share/applications/defaults.list
Każdy użytkownik ma plik konfiguracyjny do zastąpienia tych wartości domyślnych:
~ / .config / mimeapps.list
zobacz także https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html, aby znaleźć miejsca, które mogą zostać użyte do zastąpienia defauts.
Musisz znać typ MIME pliku, który chcesz zmienić, to powiązanie.
Również wszystkie skojarzenia można zmienić w wierszu poleceń, używając:
xdg-mime
Freedesktop.org (wcześniej nazywany X Desktop Group, stąd skrót „XDG”) to grupa, która obecnie kieruje się takimi standardami X ( więcej na Wikipedii ).
Odpowiedź warvariuc wspomina już o użyciu xdg-mime, takim jak:
xdg-mime default xnview.desktop image/jpeg
Po wielu zabawach z edytorami obrazów i przeglądarkami skończyłem z różnymi przeglądarkami dla różnych typów obrazów, prawie bez konsekwencji, szczególnie wśród rzadszych typów obrazów.
Wziąłem powyższe polecenie i przypisałem je do każdego z typów MIME kontrolowanych przez przeglądarki zdjęć, a następnie utworzyłem nowy image-viewer.desktop
, klonując jeden z nich (jest to opcjonalne, możesz jedynie ponownie użyć swojego ulubionego). Następnie ręcznie zweryfikowałem, że żaden z typów MIME nie będzie niezgodny z moją nową preferowaną aplikacją. Na koniec ustawiłem tę aplikację jako domyślną dla wszystkich typów MIME innych aplikacji:
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
To bada .desktop
pliki dla każdego z przeglądarek ( w moim przypadku Ristretto , Geeqie i GThumb ), wypakowuje definicję MIME (która jest poprzedzona przez, MimeType=
a następnie zawiera listę rozdzielaną średnikami), usuwa (wcześniej dopasowaną) etykietę przedmowy i dzieli listę na jeden wpis w wierszu. sort -u
następnie usuwa zbędne linie, a następnie są one xdg-mime
ustawione, aby ustawić nowe wartości domyślne.
(Jeśli chcesz to przetestować przed uruchomieniem na żywo, zmień xargs
na xargs echo
i wyświetli wynikowe polecenie zamiast go uruchomić).
Ta technika powinna działać na wszystko, co chcesz odzyskać dla aplikacji docelowej. Nie musisz nawet tworzyć nowego .desktop
pliku (możesz użyć istniejącego). Zrobiłem ten dodatkowy krok, więc gdy nieuchronnie zmieniam swoją lojalność między podglądami obrazów, muszę tylko zmienić ten jeden plik.
W Ubuntu 18.04 kolejność pierwszeństwa jest następująca, od najsilniejszej do najsłabszej:
~/.local/share/applications/defaults.list
/usr/share/applications/defaults.list
~/.config/mimeapps.list
(„Otwórz za pomocą innej aplikacji” zaktualizuje to)~/.local/share/applications/mimeapps.list
mimeinfo.cache
rejestrze kompatybilnych aplikacji, które są generowane z .desktop
plików obecnych w /usr/share/applications
i /usr/local/share/applications
i można je zregenerować za pomocą update-desktop-database
./etc/gnome/defaults.list
/usr/share/applications
.desktop
plikach istnieje polecenie ponownego utworzenia tej bazy danych MIME, aby zobaczyć nowe powiązania w akcji?