Установите браузер по умолчанию на ОТКРЫТЫЙ браузер

Я постоянно переключаюсь между браузерами (три разных на данный момент). Так что я также переключал браузеры по умолчанию, чтобы открывать мою почту / новые ссылки и т.д...

Я также видел это с командой 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

Наслаждайтесь!:)

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