web-dev-qa-db-ja.com

xdg-openは、URLを渡しても、新しいChromiumウィンドウで新しいタブのみを開きます

xdg-openを使用してChromiumでリンクを開くと、新しいタブページのみが表示され、他に何も表示されない新しいChromiumウィンドウが表示されます。

たとえば、xdg-open 'https://askubuntu.com'は新しいChromiumウィンドウを開くだけで、AskUbuntuは開きません。

Chromiumを直接呼び出すため、URLはChromiumに渡されていないようですdoes動作し、目的のページを開きます:chromium-browser 'https://askubuntu.com'works

明らかに、Chromiumはデフォルトのブラウザです。

問題はどこにあり、どのように修正できますか?一部のプログラムがxdg-openを使用してリンクを開き、目的のページにアクセスできない、または開かれたものを見ることさえできない場合、特に面倒です。

10
Léo Lam

問題は、xdg-openが要求されたURLをChromiumに渡さないためです。したがって、chromium-browser url-hereを実行する代わりに、chromium-browserを実行して新しいウィンドウを開きます。

インターネットで検索した後、xdg-open/usr/share/applicationsにあるいくつかの「構成」ファイルを使用することがわかりました。

/usr/share/applications/chromium-browser.desktopは、URLをChromiumに正しく渡すように設定されているため、正しいようです。

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

それで何が間違っていたのでしょうか? xdg-openが使用する別の場所があり、/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

なぜ別のchrome-browser.desktopがあるのか​​はわかりませんが、このExec行はURLを渡さないことに注意してください。 %Uがありません。したがって、この行に%Uを追加しました。これにより、xdg-openおよびChromiumに関するすべての問題が即座に修正されました。

16
Léo Lam