xdg-open w zasadzie sprawdza, jakie masz środowisko pulpitu, a następnie uruchamia gnome-open, gvfs-open, xfce-open itp. Poniżej znajdują się instrukcje specyficzne dla środowiska pulpitu ...
Gnom
Gnome używa programu otwartego na gnome, który używa gconf do przechowywania wszystkiego. Na przykład na mojej maszynie z Ubuntu 10.10 z uruchomionym gnome-open irc: // blah otwiera xchat, ponieważ xchat zawiera łatkę ustawień gconf, aby dodać moduł obsługi irc: //.
To pokazuje, jak robi to gnome, z ustawieniami gconf w /desktop/gnome/url-handlers/. Zobacz xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemasjako przykład.
KDE
W przypadku KDE powinieneś przejrzeć pliki .protocol w / usr / share / kde4 / services /, utworzyć nowy dla swojego nowego protokołu i umieścić go w ~ / .kde / share / kde4 / services /, jeśli jest to bardzo przydatne rozważ dodanie go do pakietu jako poprawki dla innych użytkowników.
KDE używa kde-open lub kfmclient w zależności od tego, co jest dostępne i jaką wersję KDE posiadasz.
XFCE
XFCE używa programu o nazwie exo-open, ten program nie ma żadnego sposobu, aby go skonfigurować lub dodać programy obsługi URI. Przeglądając kod źródłowy pokazuje, że używa plików pulpitu, aby określić tylko trzy typy programów. TerminalEmulator, WebBrowser i EmailClient.
Za pomocą XFCE4 (i prawdopodobnie także innych) można skonfigurować xdg-open, aby zdefiniować niestandardową procedurę obsługi protokołu. W niektórych musisz utworzyć / edytować następujące pliki:
Czy możesz wspomnieć, jak to zrobić dla wszystkich oficjalnych DE?
Oxwivi
Nie do końca związane z pytaniem, ale czy możesz podać pełny katalog na dole zrzutu ekranu? Dziękuję Ci.
Oxwivi,
4
xdg-open w zasadzie sprawdza, jakie masz środowisko pulpitu, a następnie uruchamia gnome-open, gvfs-open, xfce-open itp. --- Nie sądzę. Po pierwsze, strona podręcznika tego nie mówi, a po drugie, xdg-open działa idealnie bez środowiska graficznego. Na przykład używam go z menedżerem okien i3.
Alois Mahdal
Czy istnieje ogólny sposób utworzenia nowego powiązania adresu URL / aplikacji podczas instalacji aplikacji?
jayarjo
14
Opiszę to magnet:typem URI i transmisją (tj. Przypadkiem bittorenta), ale tę samą metodę można zastosować do dowolnego schematu lub typu pliku.
Sprawdziłem to również w Debian Jessie i tak naprawdę nie mam maszyny Ubuntu, ale uważam, że powinna działać tak samo (przynajmniej w przypadku xdg-open , zauważ, że menedżerowie plików mogą wybrać inną logikę).
Znajdź ciąg typu MIME. W przypadku typów plików MIME możesz to sprawdzić za pomocą polecenia file :
W przypadku programów obsługi URI typ to x-scheme-handler/<scheme>, gdzie
<scheme>jest część URI przed dwukropkiem, np. „Http”, „mailto” „irc” lub „magnes”. Oto przykłady prawidłowych typów MIME:
Często nie jest to ta sama nazwa, co „oficjalna” nazwa, ale jej mała wersja lub zupełnie inna nazwa. Zainstalowane pliki .desktop są dostępne w katalogu / usr / share / applications. Ponieważ są to zwykłe pliki tekstowe i zawierają „oficjalną” nazwę, pomocne może być następujące polecenie:
Polecenie to oznacza „listę plików w tym katalogu, które zawierają słowo„ Transmisja ””. Niektóre aplikacje mogą być instalowane tylko dla użytkownika, w takim przypadku będzie to ścieżka
~/.local/share/applications.
Jeśli masz „dziwną” aplikację, która może w ogóle nie mieć pliku, zawsze możesz go utworzyć (i być może wysłać go twórcom aplikacji). Prostym sposobem byłoby skopiowanie istniejącego, przepisanie pól, które rozumiesz, i usunięcie tych, których nie znasz. Szczegółowe informacje można znaleźć w
specyfikacji .
Wykonaj przypisanie za pomocą polecenia xdg-mime :
Pamiętaj, że bez względu na to, gdzie faktycznie znajduje się plik (/ usr / share / applications, ~ / .local / share / applications ...), zawsze używasz
tylko nazwy , a nie pełnej ścieżki.
Zwykle polecenie nic nie wyświetli - to jest OK. Jeśli chcesz sprawdzić, co właśnie zrobiłeś, lub zobaczyć, co jest aktualnie przypisane do dowolnego typu MIME bez otwierania:
Uwaga 1: Jeśli chcesz sprawdzić inne typy MIME, możesz spojrzeć na /etc/mime.types. Nie zawiera wszystkich typów na świecie; na przykład programy obsługi identyfikatorów URI, ale można go użyć do „agresywnej” formy obsługi powiązań. Na przykład:
Uwaga 2: Pliki .desktop często zawierają listę typów MIME, które według nich są w stanie obsłużyć za pomocą MimeTypepola. Strona podręcznika xdg-mime
mówi, że plik .desktop musi zawierać typ MIME, zanim powyższe polecenie będzie działać, ale dla mnie wydaje się, że działa, nawet jeśli brakuje pola. (Mam na myśli, że skojarzenie zostanie zastosowane, a aplikacja uruchomi się - jeśli naprawdę może obsłużyć ten typ, to inne pytanie). Nie jestem pewien, co jest wadą (być może w przyszłości xdg-mime będzie bardziej restrykcyjny).
Ta odpowiedź jest najlepszym sposobem. Wskazówka: 1) xdg-mime query filetype FILEjest sposobem XDG znajdowania typów MIME. 2) Możesz również samodzielnie edytować ustawienia domyślne, aby lepiej zorganizować swoje rzeczy i utworzyć ich kopię zapasową później: .config/mimeapps.listto plik.
Ciro Santilli 事件 改造 中心 法轮功 六四 事件
wycofałem 2 zmiany: @frank, czy chcesz wyjaśnić, jak xdg-mime „działa lepiej”? Plik IMO jest autorytatywnym narzędziem dla typów MIME, xdg-mime query filetype xyz.wbemOTOH daje mniej informacji i jest o wiele więcej do pisania.
Alois Mahdal
1
Świetne wyjaśnienie i wskazówka dotycząca używania jedynej nazwy pliku na pulpicie było rozwiązaniem, którego szukałem dzięki!
Andrea Richiardi,
1
ta rada w końcu pomogła mi rozwiązać problem braku możliwości zalogowania się przy użyciu luźnej aplikacji na Linuksa. slack przekierowuje do przeglądarki, ale następnie przeglądarka używa schematu URI do przekierowania z powrotem do luzu. twoje wskazówki pomogły mi zobaczyć, że luźne mapowanie xdg-mime URI zniknęło. tak się cieszę, że znalazłem to po godzinie poszukiwań! Dziękuję Ci!
pestofagiczny
2
Chciałem powiązać postmanlinki z ręcznie zainstalowaną aplikacją Postman (nie z rozszerzeniem chrome), aby móc otwierać dokumenty listonosza w przeglądarce w następujący sposób:
Link, który chciałbym powiązać, wygląda następująco:
Odpowiedzi:
xdg-open w zasadzie sprawdza, jakie masz środowisko pulpitu, a następnie uruchamia gnome-open, gvfs-open, xfce-open itp. Poniżej znajdują się instrukcje specyficzne dla środowiska pulpitu ...
Gnom
Gnome używa programu otwartego na gnome, który używa gconf do przechowywania wszystkiego. Na przykład na mojej maszynie z Ubuntu 10.10 z uruchomionym gnome-open irc: // blah otwiera xchat, ponieważ xchat zawiera łatkę ustawień gconf, aby dodać moduł obsługi irc: //.
To pokazuje, jak robi to gnome, z ustawieniami gconf w
/desktop/gnome/url-handlers/
. Zobaczxchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
jako przykład.KDE
W przypadku KDE powinieneś przejrzeć pliki .protocol w / usr / share / kde4 / services /, utworzyć nowy dla swojego nowego protokołu i umieścić go w ~ / .kde / share / kde4 / services /, jeśli jest to bardzo przydatne rozważ dodanie go do pakietu jako poprawki dla innych użytkowników.
KDE używa kde-open lub kfmclient w zależności od tego, co jest dostępne i jaką wersję KDE posiadasz.
XFCE
XFCE używa programu o nazwie exo-open, ten program nie ma żadnego sposobu, aby go skonfigurować lub dodać programy obsługi URI. Przeglądając kod źródłowy pokazuje, że używa plików pulpitu, aby określić tylko trzy typy programów. TerminalEmulator, WebBrowser i EmailClient.
Za pomocą XFCE4 (i prawdopodobnie także innych) można skonfigurować xdg-open, aby zdefiniować niestandardową procedurę obsługi protokołu. W niektórych musisz utworzyć / edytować następujące pliki:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
Przykład dodania modułu obsługi protokołu ed2k znajduje się na stackexchange.com 2 .
źródło
Opiszę to
magnet:
typem URI i transmisją (tj. Przypadkiem bittorenta), ale tę samą metodę można zastosować do dowolnego schematu lub typu pliku.Sprawdziłem to również w Debian Jessie i tak naprawdę nie mam maszyny Ubuntu, ale uważam, że powinna działać tak samo (przynajmniej w przypadku xdg-open , zauważ, że menedżerowie plików mogą wybrać inną logikę).
Znajdź ciąg typu MIME. W przypadku typów plików MIME możesz to sprawdzić za pomocą polecenia file :
Dla powyższego pliku typ MIME to
video/webm
.W przypadku programów obsługi URI typ to
x-scheme-handler/<scheme>
, gdzie<scheme>
jest część URI przed dwukropkiem, np. „Http”, „mailto” „irc” lub „magnes”. Oto przykłady prawidłowych typów MIME:Znajdź nazwę pliku .desktop aplikacji.
Często nie jest to ta sama nazwa, co „oficjalna” nazwa, ale jej mała wersja lub zupełnie inna nazwa. Zainstalowane pliki .desktop są dostępne w katalogu / usr / share / applications. Ponieważ są to zwykłe pliki tekstowe i zawierają „oficjalną” nazwę, pomocne może być następujące polecenie:
Polecenie to oznacza „listę plików w tym katalogu, które zawierają słowo„ Transmisja ””. Niektóre aplikacje mogą być instalowane tylko dla użytkownika, w takim przypadku będzie to ścieżka
~/.local/share/applications
.Jeśli masz „dziwną” aplikację, która może w ogóle nie mieć pliku, zawsze możesz go utworzyć (i być może wysłać go twórcom aplikacji). Prostym sposobem byłoby skopiowanie istniejącego, przepisanie pól, które rozumiesz, i usunięcie tych, których nie znasz. Szczegółowe informacje można znaleźć w specyfikacji .
Wykonaj przypisanie za pomocą polecenia xdg-mime :
Pamiętaj, że bez względu na to, gdzie faktycznie znajduje się plik (/ usr / share / applications, ~ / .local / share / applications ...), zawsze używasz tylko nazwy , a nie pełnej ścieżki.
Zwykle polecenie nic nie wyświetli - to jest OK. Jeśli chcesz sprawdzić, co właśnie zrobiłeś, lub zobaczyć, co jest aktualnie przypisane do dowolnego typu MIME bez otwierania:
Uwaga 1: Jeśli chcesz sprawdzić inne typy MIME, możesz spojrzeć na /etc/mime.types. Nie zawiera wszystkich typów na świecie; na przykład programy obsługi identyfikatorów URI, ale można go użyć do „agresywnej” formy obsługi powiązań. Na przykład:
powiąże wszystkie znane formaty wideo z VLC.
Uwaga 2: Pliki .desktop często zawierają listę typów MIME, które według nich są w stanie obsłużyć za pomocą
MimeType
pola. Strona podręcznika xdg-mime mówi, że plik .desktop musi zawierać typ MIME, zanim powyższe polecenie będzie działać, ale dla mnie wydaje się, że działa, nawet jeśli brakuje pola. (Mam na myśli, że skojarzenie zostanie zastosowane, a aplikacja uruchomi się - jeśli naprawdę może obsłużyć ten typ, to inne pytanie). Nie jestem pewien, co jest wadą (być może w przyszłości xdg-mime będzie bardziej restrykcyjny).źródło
xdg-mime query filetype FILE
jest sposobem XDG znajdowania typów MIME. 2) Możesz również samodzielnie edytować ustawienia domyślne, aby lepiej zorganizować swoje rzeczy i utworzyć ich kopię zapasową później:.config/mimeapps.list
to plik.xdg-mime query filetype xyz.wbem
OTOH daje mniej informacji i jest o wiele więcej do pisania.Chciałem powiązać
postman
linki z ręcznie zainstalowaną aplikacją Postman (nie z rozszerzeniem chrome), aby móc otwierać dokumenty listonosza w przeglądarce w następujący sposób:Link, który chciałbym powiązać, wygląda następująco:
Aby wykonać skojarzenie, wykonałem następujące kroki:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
postman
odnośnik xdg z aplikacją za pomocą polecenia:xdg-mime default Postman.desktop x-scheme-handler/postman
Odpowiedziałem na tę konfigurację, jeśli ktoś jest zainteresowany: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml
źródło