使用 Firefox 配置文件管理器而不更改默认配置文件

使用 Firefox 配置文件管理器而不更改默认配置文件

我会针对不同的用途使用不同的 Firefox 配置文件。(这是 Firefox 16.0.2)我有一个用于常规网页浏览的通用配置文件,还有一些用于其他用途(例如,javascript 黑客攻击)的配置文件。我想要两个快捷方式:一个用于打开通用配置文件,另一个用于打开配置文件管理器,这样我就可以在其他配置文件中进行选择。但是,我希望将通用配置文件设置为默认配置文件,这样如果其他程序尝试打开链接并且我没有打开任何 Firefox 窗口,它总是会打开通用配置文件。

我不知道该怎么做。似乎如果你打开配置文件管理器,你就无法避免更改“默认配置文件”的当前设置。

例如,假设我有两个配置文件,“常规”和“其他”。查看profiles.ini,我发现“常规”被设置为默认配置文件。一切都很好。我使用配置文件管理器快捷方式并打开配置文件管理器。我想选择“其他”配置文件。但是有一个“启动时不询问”的复选框,这限制了我的风格。如果我选​​中它,它会打开“其他”并将其设置为默认配置文件。如果我不选中它,它会删除“常规”配置文件上的默认设置,让我没有默认设置,所以如果程序试图打开链接,它会带我到配置文件管理器。这两个都不是我所想要的。我想要的是打开“其他”配置文件同时保留“常规”作为默认设置

基本上,“启动时不询问”复选框似乎强制在两个选项之间做出选择:打开一个配置文件并将其设置为默认配置文件,或者打开一个配置文件并将其设置为没有默认配置文件。但我想要第三个选项:打开一个配置文件,同时将默认配置文件设置为已经设置的值。有什么方法可以实现这一点吗?

编辑:根据一些答案,我想澄清一下我不想每个配置文件一个快捷方式. 无论我有多少个人资料,我都想要正好两个快捷方式:一个始终打开默认配置文件,另一个允许我以交互方式选择全部配置文件,但不会改变标记为默认的配置文件。

答案1

实现目标的唯一方法是写保护profiles.ini初始设置后,Firefox 将无法更新文件,而保留您设置的所有设置。

  1. 设置您的个人资料。
  2. 通过在配置文件管理器中选择一个配置文件并选中“启动时不询问”来选择您的默认配置文件。
  3. 将您的标记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 配置文件。请确保在执行此操作时使用您自己的配置文件名。

  1. 打开配置文件管理器并确保“常规”设置为默认配置文件。
  2. 复制您的 Firefox 快捷方式。(现在您有两个相同的 Firefox 快捷方式)。
  3. 将其中一个快捷方式重命名为“常规”,右键单击 - >“属性”,然后添加以下字符串结尾目标:
    -P "General"
  4. 按“确定”。
  5. 将另一个快捷方式重命名为“其他”,右键单击 - > 属性,然后添加以下字符串结尾目标:
    -P "Other" -no-remote
  6. 按“确定”。

现在您已经完成了。每个配置文件都有两个不同的快捷方式。您的默认配置文件将是“常规”,因此程序将打开该配置文件中的快捷方式。现在主要优势:您可以同时使用这两个配置文件!它们将在不同的实例和窗口中打开。

相关内容