Existe uma maneira de redirecionar determinadas URLs para navegadores específicos no Linux?

3

Estou usando o Chrome como meu navegador padrão no Ubuntu 12.10. Eu preciso usar o Firefox para fins comerciais (alguns sites relacionados ao meu trabalho funcionam apenas com o Firefox). Existe uma maneira de forçar o Ubuntu a usar o Firefox para certos tipos de URLs (talvez como definido por uma expressão regular), mantendo o Chrome como meu navegador padrão para todas as minhas outras tarefas? Talvez como um script de shell rodando em segundo plano? Eu gostaria que isso funcionasse em todo o sistema, abrangendo links do próprio Chrome, bem como PDFs / ODTs, etc.

Eu procurei por soluções, mas não consegui encontrar nada além do OpenWith, uma extensão do Firefox que adiciona um botão para abrir certos links em outros navegadores que exigiriam que eu abrisse o Firefox antes, o que não me ajuda em nada .

Alguém tem alguma ideia? Algo como Choosy para Linux?

    
por jraxxo 13.12.2013 / 19:04

1 resposta

5

O executável no Linux que abre um recurso com o seu programa "favorito" é chamado xdg-open . É um pouco complicado, mas você pode adicionar regras adicionais usando xdg-mime install . No entanto, não sei se você pode fazer isso por algo como um URL específico.

Isso se torna ainda mais complicado porque ambientes de desktop específicos usam diferentes executáveis e métodos para abrir seus programas padrão. Por exemplo, o KDE tem kde-open , mas nem todas as aplicações do KDE parecem usar isto.

Independentemente disso, eu tenho este parcialmente trabalhando apenas usando um script de shell e uma lista de domínios / URLs em um arquivo. Você pode ajustá-lo ao seu gosto.

Observação: você pode precisar repetir esse processo para outros executáveis, dependendo do seu ambiente de área de trabalho. Por exemplo, o Gnome tem gvfs-open , o KDE tem kde-open e o XFCE exo-open . (Mesmo assim, pode não funcionar para todas as aplicações.)

Nota: O script de shell depende do pcregrep que está sendo instalado em seu sistema.

  1. Encontre o executável xdg-open

    which xdg-open
    
  2. Crie um novo diretório na sua pasta pessoal

    mkdir -p ~/.local/bin
    
  3. Adicione o seguinte ao seu arquivo ~/.bashrc

    ~ / .bashrc

    export PATH="${HOME}/.local/bin:${PATH}"
    
  4. Crie o script de shell na pasta recém-criada. (Certifique-se de editar as quatro principais variáveis para que elas estejam corretas para o seu sistema!)

    ~ / .local / bin / xdg-open

    #!/bin/bash
    
    DOMAIN_LIST_FILE=~/'domains.txt'
    OTHER_BROWSER='/path/to/other-browser' # For instance /usr/bin/firefox
    BROWSER_OPTIONS='' # Optional, for command line options passed to browser
    XDG_OPEN='/path/to/xdg-open'
    
    if echo "$1" | pcregrep -q '^https?://'; then
        matching=0
        while read domain; do
            if echo "$1" | pcregrep -q "^https?://${domain}"; then
                matching=1
                break
            fi
        done < "$DOMAIN_LIST_FILE"
    
        if [[ $matching -eq 1 ]]; then
            "$OTHER_BROWSER" $BROWSER_OPTIONS ${*}
            exit 0
        fi
    fi
    
    "$XDG_OPEN" ${*}
    
  5. Crie a lista de domínios na sua pasta pessoal

    ~ / domains.txt

    stackexchange.com
    stackoverflow.com
    superuser.com
    
  6. Efetue logout e login novamente para que as configurações entrem em vigor

por 13.12.2013 / 20:07