Definir o navegador padrão para o navegador OPEN

4

Estou mudando constantemente entre navegadores (três diferentes no momento). Então eu também estava mudando navegadores padrão para abrir meu e-mail / novos links, etc ...

Eu também vi que, com o comando sudo update-alternatives --config x-www-browser , os navegadores têm prioridades diferentes.

Então eu tive a idéia de que poderia ser possível que o navegador padrão fosse o navegador / s que está / estão realmente aberto e funcionando! E se dois estão em execução, aquele com maior prioridade é escolhido. Infelizmente eu não encontrei nada .. Isso é possível? Seria ótimo!

felicidades dmeu

    
por dmeu 08.01.2011 / 12:43

2 respostas

5

Aqui está algo que funciona:

#!/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:]))
  • Basta reordenar a lista na parte superior do arquivo da maneira que desejar, adicionar e remover navegadores. O comando que você digitar será o que você digitar na linha de comando para iniciar este navegador.

  • salve este script em algum lugar, clique com o botão direito nele, vá para propriedades → permissões e defina executável . Eu recomendo salvá-lo em /home/<username>/.browser .

  • Encontre o arquivo (pressione Ctrl + H para mostrar os arquivos ocultos), clique com o botão direito e selecione Propriedades e vá para Permissões e defina Permitir a execução do arquivo como programa .

  • Vá para Sistema → Preferências → Aplicativos preferidos , selecione Personalizado e digite /home/<username>/.browser no campo Comando .

O primeiro navegador que aparece na lista e está em execução será escolhido para abrir o site. Se nenhum deles estiver em execução, o primeiro será aberto.

Eu testei isso e parece funcionar muito bem, no entanto, deixe-me saber se há algum erro nele. E seria legal se houvesse um método para fazer isso que não envolvesse programação, essa é apenas minha solução peculiar.

    
por Stefano Palazzo 08.01.2011 / 14:11
3

Que ótima ideia!

Eu imediatamente configuro isso e funciona muito bem no meu sistema. Adapte o seguinte script às suas necessidades (você precisará de direitos de superusuário para instalar o script!):

#!/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 ""
    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 "" False
    exit
fi

# no browser instances found, so open default browser
echo
echo -n "  No open browser found.  "

if [ -z "" ]; then
    echo "Opening new Firefox instance..."
    echo
    /usr/bin/firefox &
    exit
else
    echo "Opening link in new Firefox instance..."
    echo
    /usr/bin/firefox "" &
    exit
fi

O script não modificado tentará abrir um link (especificado em $ 1) usando o Firefox . Se nenhuma instância do Firefox for encontrada, ele tentará reutilizar o Konqueror . Finalmente, se nenhuma instância do Konqueror for encontrada, o script abrirá uma nova instância do Firefox .

Quando terminar, salve o script em /usr/local/bin/reuse_open_browser e execute os seguintes comandos:

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

Em seguida, selecione o script como padrão executando

sudo update-alternatives --config x-www-browser

Aproveite! :)

    
por mzuther 08.01.2011 / 14:10