jra*_*xxo 7 linux browser firefox url internet-filter
我在 Ubuntu 12.10 中使用 Chrome 作为我的默认浏览器。我需要将 Firefox 用于商业目的(与我的工作有关的某些网站仅适用于 Firefox)。有没有办法强制 Ubuntu 将 Firefox 用于某些类型的 URL(可能由正则表达式定义),同时将 Chrome 作为我所有其他任务的默认浏览器?也许作为在后台运行的 shell 脚本?我希望它在系统范围内工作,涵盖来自 Chrome 本身以及 PDF/ODT 等的链接。
我已经搜索了解决方案,但除了 OpenWith 之外我找不到任何东西,这是一个 Firefox 扩展,它添加了一个按钮来打开其他浏览器中的某些链接,这将再次要求我事先打开 Firefox,这对我没有任何帮助。
有没有人有任何想法?像Choosy for Linux 之类的东西?
Linux 中使用“最喜欢的”程序打开资源的可执行文件称为xdg-open. 这有点复杂,但您可以使用xdg-mime install. 但是,我不知道您是否可以针对特定 URL 之类的内容执行此操作。
这变得更加复杂,因为特定的桌面环境使用不同的可执行文件和方法来打开它们的默认程序。例如 KDE 有kde-open,但不是每个 KDE 应用程序似乎都使用它。
无论如何,我仅使用 shell 脚本和文件中的域/URL 列表就可以部分工作。您可以根据自己的喜好调整它。
注意:根据您的桌面环境,您可能需要对其他可执行文件重复此过程。例如,Gnome 有gvfs-open,KDE 有kde-open,XFCE 有exo-open。(即便如此,它也可能不适用于每个应用程序。)
注意: shell 脚本取决于pcregrep是否安装在您的系统上。
找到xdg-open可执行文件
which xdg-open
Run Code Online (Sandbox Code Playgroud)在您的主文件夹中创建一个新目录
mkdir -p ~/.local/bin
Run Code Online (Sandbox Code Playgroud)将以下内容添加到您的~/.bashrc文件中
~/.bashrc
export PATH="${HOME}/.local/bin:${PATH}"
Run Code Online (Sandbox Code Playgroud)在新创建的文件夹中创建 shell 脚本。(请务必编辑前四个变量,以便它们适合您的系统!)
~/.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" ${*}
Run Code Online (Sandbox Code Playgroud)在您的主文件夹中创建域列表
〜/域.txt
stackexchange.com
stackoverflow.com
superuser.com
Run Code Online (Sandbox Code Playgroud)注销并重新登录以使设置生效
| 归档时间: |
|
| 查看次数: |
2182 次 |
| 最近记录: |