Lorsque j'utilise xdg-open
pour ouvrir un lien dans Chromium, il en résulte une nouvelle fenêtre Chromium avec uniquement la nouvelle page à onglet, sans rien d'autre.
Par exemple, xdg-open 'https://askubuntu.com'
ouvrira simplement une nouvelle fenêtre Chromium et n'ouvrira pas AskUbuntu.
Il semble tout simplement que l'URL ne soit pas transmise à Chromium, car l'appel direct de Chromium fonctionne et ouvre la page souhaitée: chromium-browser 'https://askubuntu.com'
fonctionne.
De toute évidence, Chrome est le navigateur par défaut.
Où pourrait le problème être, et comment puis-je résoudre ce problème? Il est particulièrement ennuyeux lorsque certains programmes utilisent xdg-open
pour ouvrir un lien et que vous ne pouvez pas aller à la page que vous voulez, ni même voir ce qui a été ouvert.
Le problème est en effet que xdg-open
ne transmet pas l’URL demandée à Chromium. Ainsi, au lieu d’exécuter chromium-browser url-here
, il exécute chromium-browser
qui ouvre simplement une nouvelle fenêtre.
Après une recherche sur Internet, j'ai découvert que xdg-open
utilise des fichiers "config" situés dans /usr/share/applications
.
/usr/share/applications/chromium-browser.desktop
semblait être 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 existe un autre emplacement que xdg-open
utilise et qui a la priorité sur /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 la raison pour laquelle il existe un autre navigateur chrome.desktop, mais notez que cette ligne Exec ne transmet 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-open
et Chromium.