xdg-open ouvre uniquement un nouvel onglet dans une nouvelle fenêtre Chromium malgré le passage d'une URL

10

Lorsque j'utilise xdg-openpour ouvrir un lien dans Chromium, il en résulte simplement une nouvelle fenêtre Chromium avec uniquement la nouvelle page d'onglet, sans rien d'autre.

Par exemple, xdg-open '/ubuntu/'ouvrira simplement une nouvelle fenêtre Chromium et n'ouvrira pas AskUbuntu.

Il semble juste que l'URL n'est pas passé à Chrome, comme l' invocation de chrome directement fait le travail et ouvre la page souhaitée: chromium-browser '/ubuntu/' œuvres .

De toute évidence, Chromium est le navigateur par défaut.

Où pourrait être le problème et comment le résoudre? C'est particulièrement ennuyeux lorsque certains programmes utilisent xdg-openpour ouvrir un lien et que vous ne pouvez pas accéder à la page souhaitée, ni même voir ce qui a été ouvert.

Léo Lam
la source
Bien que cette question s'adresse à Chromium, cela pourrait fonctionner pour Firefox s'il s'agit du même problème.
Léo Lam

Réponses:

17

Le problème est en effet que xdg-openne transmet pas l'URL demandée à Chromium, donc au lieu de s'exécuter chromium-browser url-here, il s'exécute , ce chromium-browserqui ouvre simplement une nouvelle fenêtre.

Après avoir recherché sur Internet, j'ai découvert qu'il xdg-openutilise certains fichiers "config" situés dans /usr/share/applications.

/usr/share/applications/chromium-browser.desktop semblait correct, car il est configuré pour transmettre correctement l'URL à Chromium:

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

Alors qu'est-ce qui n'allait pas? Il s'avère qu'il y a un autre emplacement qui xdg-openutilise et qui est prioritaire /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

Je n'ai aucune idée de pourquoi il y a un autre chrome-browser.desktop, mais notez que cette ligne Exec ne passe pas l'URL; il manque le %U. J'ai donc simplement ajouté %Uà cette ligne. Cela a résolu instantanément tous les problèmes avec xdg-openet Chrome.

Léo Lam
la source
Incroyable! Je me suis cogné la tête contre un mur de briques pendant des semaines sur celui-ci, à peine trouvé cette réponse. La même chose se produit avec le google-chromepackage. Comment avez-vous compris cela?
Adaline Simonian
1
J'ai aussi eu ce problème pendant longtemps, et je n'ai trouvé la cause que lorsque j'ai lu .desktoples fichiers d'application - je me suis souvenu des problèmes avec Chromium et j'ai décidé de vérifier les fichiers, et c'est ainsi que je l'ai résolu.
Léo Lam
1
En fin de compte, je pense que le problème a été causé par le pepperflash, bien que je ne sois pas sûr. Besoin de consulter la liste des fichiers du package ou le script d'installation pour en être sûr.
Léo Lam
Merci, travaillé pour google-chrome en mettant à jour ~ / .local / share / applications / google-chrome.desktop
Vlad
Les fichiers liés à Chrome ont été déplacés de /.local/share/applications et cela a commencé à fonctionner instantanément! Merci!
Íhor Mé