Установите браузер по умолчанию на ОТКРЫТЫЙ браузер
Я постоянно переключаюсь между браузерами (три разных на данный момент). Так что я также переключал браузеры по умолчанию, чтобы открывать мою почту / новые ссылки и т.д...
Я также видел это с командой sudo update-alternatives --config x-www-browser
браузеры имеют разные приоритеты.
Таким образом, у меня была идея, что возможно, что браузером по умолчанию может быть браузер, который действительно открыт и работает! И если два работают, выбирается тот, который имеет более высокий приоритет. К сожалению, я не нашел ничего.. Это возможно? Было бы действительно здорово!
ура dmeu
2 ответа
Вот то, что работает:
#!/usr/bin/env python
import sys, commands
browsers = [
"firefox",
"google-chrome",
"chromium-browser",
"epiphany-browser",
]
done = False
ps = list(i.split()[10] for i in commands.getoutput("ps aux").split("\n")[1:])
for i in browsers:
if any(j.endswith(i) or j.endswith(i+"-bin") for j in ps) and not done:
commands.getoutput(i + " " + (" ".join(sys.argv[1:]
if len(sys.argv) - 1 else "")))
done = True
if not done:
commands.getoutput(browsers[0]["cmd"] + " " + " ".join(sys.argv[1:]))
Просто измените порядок расположения списка в верхней части файла, добавьте и удалите браузеры. Команда, которую вы введете, будет той, которую вы введете в командной строке, чтобы запустить этот браузер.
сохраните этот скрипт где-нибудь, щелкните по нему правой кнопкой мыши, перейдите в свойства → разрешения и установите исполняемый файл. Я рекомендую сохранить его в
/home/<username>/.browser
,Найдите файл (нажмите Ctrl+H, чтобы отобразить скрытые файлы), щелкните правой кнопкой мыши и выберите " Свойства", затем перейдите в " Разрешения" и установите " Разрешить выполнение файла как программы".
Перейдите в Система → Настройки → Предпочтительные приложения, выберите Пользовательский и введите
/home/<username>/.browser
в поле Command.
Первый браузер, который появляется в списке и работает, будет выбран для открытия веб-сайта. Если ни один из них не запущен, будет открыт первый.
Я проверил это, и это, кажется, работает довольно хорошо, тем не менее, дайте мне знать, если есть какие-либо ошибки в этом. И было бы здорово, если бы был метод для этого, который не включал бы программирование, это просто мое особое решение.
Какая прекрасная идея!
Я немедленно настроил это, и это прекрасно работает в моей системе. Адаптируйте следующий скрипт под свои нужды (для установки скрипта вам понадобятся права суперпользователя!):
#!/bin/bash
# looking for Firefox instances
pgrep -l '^firefox-bin$' > /dev/null
if [ $? -eq 0 ]; then
echo
echo " Opening link in Firefox..."
echo
/usr/bin/firefox "$1"
exit
fi
# looking for Konqueror instances
pgrep -l '^konqueror$' > /dev/null
if [ $? -eq 0 ]; then
echo
echo " Opening link in Konqueror..."
qdbus `qdbus | grep -m1 konqueror` /konqueror/MainWindow_1 org.kde.Konqueror.MainWindow.newTab "$1" False
exit
fi
# no browser instances found, so open default browser
echo
echo -n " No open browser found. "
if [ -z "$1" ]; then
echo "Opening new Firefox instance..."
echo
/usr/bin/firefox &
exit
else
echo "Opening link in new Firefox instance..."
echo
/usr/bin/firefox "$1" &
exit
fi
Немодифицированный скрипт попытается открыть ссылку (указанную в $1) с помощью Firefox. Если экземпляр Firefox не найден, он попытается повторно использовать Konqueror. Наконец, если экземпляр Konqueror не найден, скрипт откроет новый экземпляр Firefox.
Когда вы закончите, сохраните скрипт в /usr/local/bin/reuse_open_browser
и выполните следующие команды:
sudo chmod +x /usr/local/bin/reuse_open_browser
sudo chown root:root /usr/local/bin/reuse_open_browser
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/reuse_open_browser 100
Затем выберите скрипт по умолчанию, запустив
sudo update-alternatives --config x-www-browser
Наслаждайтесь!:)