xdg-open otwiera tylko nową kartę w nowym oknie Chromium, pomimo przekazania jej adresu URL

10

Kiedy używam xdg-opendo otwarcia linku w Chromium, powoduje to po prostu nowe okno Chromium z tylko nową stroną z kartami, bez niczego innego.

Na przykład, xdg-open 'https://askubuntu.com'po prostu otworzy nowe okno Chromium i nie otworzy AskUbuntu.

Po prostu wydaje się, że adres URL nie jest przekazywana do chromu, jak wywoływanie Chromium bezpośrednio robi pracę i otwiera żądane strony: chromium-browser 'https://askubuntu.com' dzieła .

Oczywiście Chromium jest domyślną przeglądarką.

Gdzie może być problem i jak to naprawić? Jest to szczególnie denerwujące, gdy niektóre programy używają xdg-opendo otwierania łącza i nie można przejść do żądanej strony, a nawet zobaczyć, co zostało otwarte.

Léo Lam
źródło
Chociaż to pytanie dotyczy Chromium, może to działać w przeglądarce Firefox, jeśli dotyczy tego samego problemu.
Léo Lam

Odpowiedzi:

17

Problem polega na tym, xdg-openże nie przekazuje żądanego adresu URL do Chromium, więc zamiast uruchamiać się chromium-browser url-here, uruchamia się , chromium-browserco otwiera nowe okno.

Po przeszukaniu Internetu dowiedziałem się, że xdg-openużywa niektórych plików „config” znajdujących się w /usr/share/applications.

/usr/share/applications/chromium-browser.desktop wydawało się poprawne, ponieważ jest skonfigurowane do prawidłowego przekazywania adresu URL do Chromium:

$ grep Exec /usr/share/applications/chromium-browser.desktop
Exec=chromium-browser %U
...

Co więc było nie tak? Okazuje się, że jest inna lokalizacja, która xdg-openkorzysta i ma pierwszeństwo /usr/share/applications.

$ grep Exec ~/.local/share/applications/chromium-browser.desktop
Exec=/usr/lib/chromium-browser/chromium-browser --use-system-title-bar --ppapi-flash-path=/usr/lib/pepflashplugin-installer/libpepflashplayer.so --ppapi-flash-version=14.0.0.125

Nie mam pojęcia, dlaczego istnieje inna chromium-browser.desktop, ale zauważ, że ten wiersz Exec nie przekazuje adresu URL; brakuje %U. Po prostu dołączyłem %Udo tej linii. To natychmiast naprawiło wszystkie problemy z xdg-openChromium.

Léo Lam
źródło
Niesamowite! Od tygodni uderzam głową o ścianę z cegły, ledwo znalazłem tę odpowiedź. To samo dzieje się z google-chromepakietem. Jak to wymyśliłeś?
Adaline Simonian
1
Miałem ten problem również przez długi czas i znalazłem przyczynę tylko wtedy, gdy zdarzyło mi się czytać o .desktopplikach aplikacji - przypomniałem sobie problemy z Chromium i postanowiłem sprawdzić pliki i tak to naprawiłem.
Léo Lam
1
Ostatecznie myślę, że problem został spowodowany uderzeniem pieprzu, chociaż nie jestem pewien. Aby się upewnić, musisz przejrzeć listę plików pakietu lub skrypt instalacyjny.
Léo Lam
Dzięki, pracowałem dla google-chrome, aktualizując ~ / .local / share / applications / google-chrome.desktop
Vlad
Przeniesiłem pliki związane z chrome z /.local/share/applications i zaczęło działać natychmiast! Dzięki!
Íhor Mé