![使用 Firefox 配置文件管理器而不更改默认配置文件](https://linux22.com/image/1338309/%E4%BD%BF%E7%94%A8%20Firefox%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%99%A8%E8%80%8C%E4%B8%8D%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我会针对不同的用途使用不同的 Firefox 配置文件。(这是 Firefox 16.0.2)我有一个用于常规网页浏览的通用配置文件,还有一些用于其他用途(例如,javascript 黑客攻击)的配置文件。我想要两个快捷方式:一个用于打开通用配置文件,另一个用于打开配置文件管理器,这样我就可以在其他配置文件中进行选择。但是,我希望将通用配置文件设置为默认配置文件,这样如果其他程序尝试打开链接并且我没有打开任何 Firefox 窗口,它总是会打开通用配置文件。
我不知道该怎么做。似乎如果你打开配置文件管理器,你就无法避免更改“默认配置文件”的当前设置。
例如,假设我有两个配置文件,“常规”和“其他”。查看profiles.ini,我发现“常规”被设置为默认配置文件。一切都很好。我使用配置文件管理器快捷方式并打开配置文件管理器。我想选择“其他”配置文件。但是有一个“启动时不询问”的复选框,这限制了我的风格。如果我选中它,它会打开“其他”并将其设置为默认配置文件。如果我不选中它,它会删除“常规”配置文件上的默认设置,让我没有默认设置,所以如果程序试图打开链接,它会带我到配置文件管理器。这两个都不是我所想要的。我想要的是打开“其他”配置文件同时保留“常规”作为默认设置。
基本上,“启动时不询问”复选框似乎强制在两个选项之间做出选择:打开一个配置文件并将其设置为默认配置文件,或者打开一个配置文件并将其设置为没有默认配置文件。但我想要第三个选项:打开一个配置文件,同时将默认配置文件设置为已经设置的值。有什么方法可以实现这一点吗?
编辑:根据一些答案,我想澄清一下我不想每个配置文件一个快捷方式. 无论我有多少个人资料,我都想要正好两个快捷方式:一个始终打开默认配置文件,另一个允许我以交互方式选择全部配置文件,但不会改变标记为默认的配置文件。
答案1
实现目标的唯一方法是写保护profiles.ini
初始设置后,Firefox 将无法更新文件,而保留您设置的所有设置。
- 设置您的个人资料。
- 通过在配置文件管理器中选择一个配置文件并选中“启动时不询问”来选择您的默认配置文件。
- 将您的标记
profiles.ini
为只读。
从现在开始,启动 Firefox 时,如果没有-p
或-p "profile name"
或,-p "profile path"
将始终启动您的默认配置文件。通过配置文件管理器或开关打开配置文件-p
无法更改您的配置文件.ini。
显然,您必须再次使文件可写才能更改内容或创建新的配置文件。除此之外,您应该没问题。
答案2
您可以通过安装 Firefox 便携版 (http://portableapps.com),并将其安装到硬盘上的新位置,而不是 USB 驱动器。下面是我的做法(尽管您可以调整它以实现您想要的效果),将您的标准安装保留在原处。将便携式文件夹克隆到第二个位置。将您的第一个配置文件数据复制到便携式文件夹“DATA”子文件夹,如其网站上所述,并将您的第二个配置文件复制到第二个新的便携式“DATA”子文件夹(包含 FirefoxPortable.EXE 的文件夹下面的文件夹)。启动每个 FirefoxPortable.EXE 并检查它是否正确自定义(例如,以正常方式加载项、插件等)。如果您喜欢简短的名称,可以选择将 FirefoxPortable.EXE 重命名为 FFP.EXE :-) 并为每个便携式安装文件夹的 FFP.EXE 设置两个快捷方式。我以这种方式使用了 V6.0 和 V25.0.1,并且运行良好。
优点
- 您可以运行完全独立的配置(如果您愿意,它们甚至可以是不同版本的 Firefox)。是的,当您克隆 Firefox 应用程序时,它会占用更多磁盘空间,但我发现这更容易管理。
- 我运行了大约 30 个插件,便携版没有出现任何问题
- 如果您有一组活动和非活动插件,那么排除插件冲突的故障会更容易。只需复制文件夹并使用它测试一个打开的插件,而不会弄乱您的主配置文件。
问题(适用于 Firefox 为默认浏览器的情况)
- 保留标准安装并设置为默认浏览器
- 保留旧的标准安装,将配置文件管理器提示作为默认设置。(在您的情况下,您可以将其作为“常规”配置文件运行,无需提示。)有时,某些应用程序会在您不期望时尝试启动此默认浏览器(例如,打开 URL 的聊天客户端),每当您看到配置文件提示时,只需退出并通过快捷方式启动正确的便携版本
- 现在 Firefox 有 3 个版本 - 它应该使用哪个版本来处理文件?解决方案是在打开 *.url、*.htm[l] 或 *.mht 之前始终从快捷方式启动 Firefox,这样它们就会在活动的 Firefox 中正确打开。
- 如果您使用 Firefox 同步,我希望您将每个配置文件命名为不同的“设备名称”,以便其正常运行。例如,在所有配置文件之间同步您的书签。
- 我手动进行软件更新,我建议这样做。
答案3
我不知道你的操作系统是什么,但如果你使用的是 Unix 操作系统,我可能有一个脚本可以完全按照你的要求执行(如果我理解正确的话,这正是我需要的行为)。
这个想法是使用脚本启动“其他” Firefox。脚本通过查看文件来确定默认配置文件profiles.ini
,然后使用配置文件管理器启动新的 Firefox 实例,并最终在更改默认配置文件配置后立即恢复。有点老套,但我正在使用它,效果很好。
如果在 Windows 上,您可能能够重现等效的脚本,但在此事上我无法帮助您。
这是脚本,用于保存在文件中,并在终端或文件中firefox-other.sh
启动。您可能需要在开始时调整配置:./firefox-other.sh
.desktop
#!/bin/bash
# configuration
profiles=/home/jerome/.mozilla/firefox/profiles.ini
firefox=`which firefox`
# find current default profile
profile_regex="\[([^\[]+)\]"
name_regex="Name=([^$]+)"
default_regex="^Default=1"
while read line
do
[[ $line =~ $name_regex ]]
if [[ -n "${BASH_REMATCH[1]}" ]]
then
profile_name="${BASH_REMATCH[1]}"
fi
[[ $line =~ $profile_regex ]]
if [[ -n "${BASH_REMATCH[1]}" ]]
then
default_profile="${BASH_REMATCH[1]}"
fi
[[ $line =~ $default_regex ]]
if [ -n "${BASH_REMATCH[0]}" ]
then
break
fi
done < $profiles
echo "Default profile is \"$profile_name\" [$default_profile]"
last_update=`stat -c %Y $profiles`
# restore default profile
function restore {
on_default=0
tmp="${profiles}.new"
rm -f $tmp
while read line
do
[[ $line =~ $profile_regex ]]
if [[ "${BASH_REMATCH[1]}" = $default_profile ]]
then
on_default=1
fi
if [[ "$line$on_default" = 1 ]]
then
echo "Default=1" >> $tmp
on_default=0
fi
# echo existing line unless it is the default declaration
[[ $line =~ $default_regex ]]
if [ -z "${BASH_REMATCH[0]}" ]
then
echo $line >> $tmp
fi
done < $profiles
mv $tmp $profiles
echo "Default profile restored to \"$profile_name\" [$default_profile]"
}
# start firefox with profile manager
echo -n "Start Firefox..."
$firefox -no-remote -P 2> /dev/null 1> /dev/null &
pid=$!
echo -e "\rFirefox started with pid $pid"
# loop until $profiles is changed or firefox instance killed
while true
do
sleep 1
# watch profiles
update=`stat -c %Y $profiles`
if [ $update -gt $last_update ]
then
# profiles updated
break
fi
# watch instance
if [ -n "`kill -0 $pid 2>&1`" ]
then
# instance terminate
break
fi
done
# then restore
restore
答案4
我将为此使用两个配置文件名。“General”是您的正常使用配置文件。“Other”是 JavaScript hack 配置文件。请确保在执行此操作时使用您自己的配置文件名。
- 打开配置文件管理器并确保“常规”设置为默认配置文件。
- 复制您的 Firefox 快捷方式。(现在您有两个相同的 Firefox 快捷方式)。
- 将其中一个快捷方式重命名为“常规”,右键单击 - >“属性”,然后添加以下字符串结尾目标:
-P "General"
- 按“确定”。
- 将另一个快捷方式重命名为“其他”,右键单击 - > 属性,然后添加以下字符串结尾目标:
-P "Other" -no-remote
- 按“确定”。
现在您已经完成了。每个配置文件都有两个不同的快捷方式。您的默认配置文件将是“常规”,因此程序将打开该配置文件中的快捷方式。现在主要优势:您可以同时使用这两个配置文件!它们将在不同的实例和窗口中打开。