題 有沒有辦法將某些URL重定向到Linux中的特定Web瀏覽器?


我在Ubuntu 12.10中使用Chrome作為我的默認瀏覽器。我需要將Firefox用於商業目的(某些與我的工作相關的網站僅適用於Firefox)。有沒有辦法迫使Ubuntu將Firefox用於某些類型的URL(可能由正則表達式定義),同時將Chrome保留為我所有其他任務的默認瀏覽器?也許作為在後台運行的shell腳本?我希望這可以在整個系統範圍內工作,涵蓋Chrome本身以及PDF / ODT等鏈接。

我已經搜索了解決方案,但除了OpenWith之外我找不到任何東西,這是一個Firefox擴展,它添加了一個按鈕來打開其他瀏覽器中的某些鏈接,這將再次要求我事先打開Firefox,這對我沒有任何幫助。

有沒有人有任何想法?就像是 挑三揀四 對於Linux?


3
2017-12-13 18:04


起源


有關: superuser.com/questions/198179/... - Ƭᴇcʜιᴇ007
好吧,我正在使用Linux,所以它不是那麼相關...... - jraxxo


答案:


Linux中用於打開具有“收藏”程序的資源的可執行文件被調用 xdg-open。它有點複雜,但您可以使用添加其他規則 xdg-mime install。但是,我不知道您是否可以為特定URL之類的內容執行此操作。

這變得更加複雜,因為特定的桌面環境使用不同的可執行文件和方法來打開它們的默認程序。例如KDE有 kde-open,但不是每個KDE應用程序似乎都使用它。

無論如何,我只是使用shell腳本和文件中的域/ URL列表來部分工作。你可以根據自己的喜好調整它。

注意: 您 可以 需要根據您的桌面環境為其他可執行文件重複此過程。例如,Gnome有 gvfs-open,KDE有 kde-open,和XFCE有 exo-open。 (即便如此,它可能不適用於每個應用程序。)

注意: shell腳本依賴於 pcregrep 正在您的系統上安裝。

  1. 找出 xdg-open 可執行

    which xdg-open
    
  2. 在主文件夾中創建一個新目錄

    mkdir -p ~/.local/bin
    
  3. 將以下內容添加到您的 ~/.bashrc 文件

    在〜/ .bashrc

    export PATH="${HOME}/.local/bin:${PATH}"
    
  4. 在新創建的文件夾中創建shell腳本。 (務必編輯前四個變量,以使它們適合您的系統!)

    〜/。當地/斌/ XDG-開放

    #!/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. 在主文件夾中創建域列表

    〜/ domains.txt

    stackexchange.com
    stackoverflow.com
    superuser.com
    
  6. 註銷並重新登錄以使設置生效


5
2017-12-13 19:07



更改 pcregrep -q '^https?://' 至 grep -q '^http\?:\/\/' 如果你沒有pcregrep(無論是什麼:)) - Boris Churzin