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
и хром.