Відповіді:
sensible-browser
це команда, яку ви шукаєте.
sensible-browser
відкривається Opera, а не Chrome за замовчуванням. xdg-open
працює як очікувалося.
sensible-browser
не дотримується налаштувань користувача, налаштованих у єдино-контрольному центрі. xdg-open
робить.
Шукаючи в Google, я знайшов відповідь.
xdg-open відкриває файл або URL-адресу в бажаному додатку користувача. Якщо вказано URL-адресу, URL-адреса буде відкрита у бажаному веб-переглядачі користувача. Якщо файл надано, файл буде відкрито в кращому додатку для файлів цього типу. xdg-open підтримує URL-адреси файлів, ftp, http та https.
xdg-open є частиною пакету xdg-utils і він уже встановлений на Ubuntu 10.10.
Ви також можете використовувати:
x-www-browser http://some-url.org
І це відкриє URL-адресу в браузері за замовчуванням.
При налаштуванні Ubuntu за замовчуванням на розум приходить лише команда, відкрита gnome.
gnome-open http://askubuntu.com
gnome-open
майже для всіх типів файлів, URI та каталогів. Це одна команда навчитися, а не намагатися згадати про незрозумілі команди, такі якsensible-browser
xdg-open
слід зробити те ж саме - насправді він зателефонує gnome-open
або kde-open
, або що завгодно, залежно від середовища вашого робочого столу. Таким чином, він більш портативний.
Я трохи пограв у цьому. Виникла проблема gnome-open
- він не викличе веб-браузер за замовчуванням, якщо не вказати URL-адресу. Це проблема, якщо ви хочете встановити піктограму або ярлик, який завжди запустить браузер, який встановлений за замовчуванням. В іншому випадку вам може знадобитися встановити його як параметр для деяких програм, які потребують посилання на веб-браузер і не працюють добре gnome-open
(наприклад:) acroread
. Ви можете вирішити це за допомогою будь-яких x-www-browser
або gnome-www-browser
системних посилань, через які ви можете налаштувати update-alternatives
, але це загальносистемні налаштування, а не конкретні для користувача (і вони не синхронізовані зі значеннями, встановленими через gnome-default-applications-properties
. Все це можна вирішити, відкривши sensible-browser
виконуваний файл (який насправді сценарій):
sudo gedit $(which sensible-browser)
і додавши це на початку:
#!/bin/bash
BROWSER=$(gconftool -g /desktop/gnome/url-handlers/http/command)
export BROWSER="${BROWSER//"\"%s\""/}"
Це дозволить sensible-browser
завжди запускати визначений користувачем веб-браузер за замовчуванням. (Я з’ясував, що gnome-default-applications-properties
змінює деякі ключі gconf відповідно до встановленого на даний момент браузера. Значення браузера за замовчуванням можна отримати з будь-якого з цих ключів, тому я пішов /desktop/gnome/url-handlers/http/command
і використав його для заповнення $BROWSER
змінної (значення позбавлене "%s"
частини) .)
/usr/bin/sensible-browser
як рекомендує ця відповідь. Ця зміна буде замінена під час оновлення системи.
Просто те, що вам може бути корисним. Резервний підхід та один лайнер.
URL="https://www.url.com/some"; xdg-open $URL || sensible-browser $URL || x-www-browser $URL || gnome-open $URL
Гарне читання для не знайомих з логічними операторами https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/ .
; => запустити у всіх випадках,
|| => запустити, якщо попередня команда не вдалася (або)
&& => запустити лише у випадку успіху попередньої команди
і
var = someval -> встановити змінну
$ var -> викликати змінну
sensible-utils
пакетом та системою альтернатив, знайдених/etc/alternatives
та модифікованихupdate-alternatives
?