xdg-open только открывает новую вкладку в новом окне Chromium, несмотря на передачу ему URL

Когда я использую xdg-open чтобы открыть ссылку в Chromium, просто откроется новое окно Chromium, содержащее только новую вкладку, и больше ничего.

Например, xdg-open 'https://Ask-ubuntu.ru' просто откроет новое окно Chromium и не откроет AskUbuntu.

Просто кажется, что URL не передается в Chromium, так как прямой вызов Chromium работает и открывает нужную страницу: chromium-browser 'https://Ask-ubuntu.ru' работает.

Очевидно, что Chromium является браузером по умолчанию.

Где может быть проблема, и как я могу это исправить? Это особенно раздражает, когда некоторые программы используют xdg-open чтобы открыть ссылку, и вы не можете перейти на страницу, которую вы хотите, или даже посмотреть, что было открыто.

1 ответ

Решение

Дело в том, что xdg-open не передает запрошенный URL в Chromium, поэтому вместо запуска chromium-browser url-hereисполняет chromium-browser который просто открывает новое окно.

После поиска в интернете я обнаружил, что xdg-open использует некоторые файлы "config", расположенные в /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

Я понятия не имею, почему существует другой chromium-browser.desktop, но учтите, что эта строка Exec не передает URL; это не хватает %U, Поэтому я просто добавил %U на эту линию. Это сразу исправило все проблемы с xdg-open и хром.

Другие вопросы по тегам