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 MimeTypepole - zawiera listę obsługiwanych typów MIME. ExecPole 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.listzawiera informacje o ustawieniach domyślnych systemu. O ile nie zdecydujesz inaczej, są to aplikacje używane podczas „otwierania” pliku.
sudo update-desktop-databaseZobacz 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.listjest 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.listmoż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.listi teraz właściwa aplikacja otwiera plik.
~/.config/mimeapps.list.
mimeapps.listmoż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.listnie istnieje.
mimeapps.desktopsiędefaults.desktop
Utwórz plik truecrypt.desktopna ~/.local/share/applicationsnastę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.listi 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_HOMEStarsze wersje Ubuntu mogą nie sprawdzać ~/.config, więc spróbuj ~/.local/shareró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 .desktoppliki 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 -unastępnie usuwa zbędne linie, a następnie są one xdg-mimeustawione, aby ustawić nowe wartości domyślne.
(Jeśli chcesz to przetestować przed uruchomieniem na żywo, zmień xargsna xargs echoi 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 .desktoppliku (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.listmimeinfo.cacherejestrze kompatybilnych aplikacji, które są generowane z .desktopplików obecnych w /usr/share/applicationsi /usr/local/share/applicationsi można je zregenerować za pomocą update-desktop-database./etc/gnome/defaults.list
/usr/share/applications.desktopplikach istnieje polecenie ponownego utworzenia tej bazy danych MIME, aby zobaczyć nowe powiązania w akcji?