【问题标题】:Disable/Change Firefox Safe Mode Hotkey (Shift)禁用/更改 Firefox 安全模式热键 (Shift)
【发布时间】:2012-04-11 17:33:56
【问题描述】:

有什么方法可以改变 Firefox 的 shift 热键,让 Firefox 在安全模式下启动?我已经使用 Selenium 和 PHPUnit 设置了一些单元测试,但是如果我在测试运行时在机器上工作,那么我经常发现我在键入时按了 shift(在我选择代码块时按住 shift 是另一个大罪犯)。即使您点击弹出的安全模式提示,这也会导致测试失败(并超时)。

有没有办法禁用此热键,或将键更改为我不常使用的键?

【问题讨论】:

  • 这太可怕了。尝试将 Firefox 置于 Windows 快速启动位置 1。WindowsKey+1 将启动 Firefox。 WindowsKey+Shift+1 是用于启动另一个进程实例的 Windows 标准。好吧,对于 Firefox,它只是以安全模式启动。他们是在自取其辱,因为现在它会中断标准流程,而我将只使用 Opera。

标签: firefox selenium keyboard-shortcuts safe-mode


【解决方案1】:

我也遇到过这个问题,没有找到解决办法。似乎它仍然是一个悬而未决的问题:Mozilla Forums threadBug 653410Bug 644175 等等。作为一种解决方法,您可以安装 firefox 3.6,因为该功能是从 firefox 4 开始实施的,但可能不适合您。

【讨论】:

  • 谢谢。如果其他人在遇到相同问题时发现此问题,您可以在上面的“Mozilla 论坛线程”上注册您的问题吗?
【解决方案2】:

Mozilla 终于添加了一个环境变量来控制这种行为。不幸的是,以适用于整个图形系统的方式配置这个环境变量,而不仅仅是一个 bash 会话,有点困难。这曾经是通过 /etc/launchd.conf 完成的,但 macOS 在 v10.10 中放弃了对此的支持。幸运的是,systemctl 提供了一个 .plist 文件系统,它可以在启动时定义运行程序并定义系统范围的环境变量,所以我发布了这个工作 .plist 文件,并附有安装和删除说明:

https://github.com/mcandre/dotfiles/blob/master/setenv.MOZ_DISABLE_SAFE_MODE_KEY.plist

这对我来说太棒了,因为我喜欢通过 QuickSilver 使用 Control+Alt+G 从 GUI 中的任何位置启动我的网络浏览器,其中当然包括 Firefox 倾向于将其解释为信号安全模式的 Alt 修饰符。

【讨论】:

  • 谢谢,这是一个非常好的答案(而且是一个有效的答案!)。我还习惯通过包含 alt 修饰符的键盘快捷键启动 Firefox。
【解决方案3】:

在修复Bug 653410 之前,我能想到的最佳解决方法是检测何时启动安全模式并以适合您特定目的的最佳方式处理它。这可能意味着终止 Firefox 进程并重新启动,或者可能意味着警告用户,或两者兼而有之。

当 Firefox 以安全模式启动时,它会将“LastVersion=Safe Mode”写入其配置文件目录中的 compatibility.ini 文件。下面给出了一个示例 C# 函数来监视这一点。

    FileSystemWatcher safeModeWatcher;

    private void watchSafeMode()
    {
        string profiles = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mozilla", "Firefox", "Profiles");
        string defaultProfile = Directory.GetDirectories(profiles, "*default*")[0];
        safeModeWatcher = new FileSystemWatcher(defaultProfile, "compatibility.ini");
        safeModeWatcher.NotifyFilter = NotifyFilters.LastWrite;
        safeModeWatcher.Changed += delegate(object s, FileSystemEventArgs e)
        {
            if (File.ReadAllText(e.FullPath).Contains("LastVersion=Safe Mode"))
            {
                // safe mode!
                System.Diagnostics.Trace.WriteLine("safe mode detected!");
                // TODO kill Firefox and launch again, or whatever makes sense for you
            }
        };
        safeModeWatcher.EnableRaisingEvents = true;
        // ...
        // TODO Dispose safeModeWatcher when done
    }

【讨论】:

  • 请注意,您现在可以添加一个环境变量来禁用 Shift 功能的安全模式。设置 MOZ_DISABLE_SAFE_MODE_KEY=1
猜你喜欢
  • 1970-01-01
  • 2011-03-15
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多