web-dev-qa-db-ja.com

Linux上のFirefoxでCtrl + Qショートカットを無効にする方法

Firefox 57以降、無効にする方法はありません Ctrl+Q Linux上のプラグインによるショートカット( このバグ を参照)。私が見つけたすべての回避策はグローバルの設定に基づいています Ctrl+Q Firefoxからそれを「盗む」ためのショートカット。しかし、これはすべてのアプリケーションでこのショートカットを無効にするので、他のアプリには影響を与えずにFirefoxでのみこのショートカットを無効にします。

1つのアプリケーションに対してのみショートカットを無効にしたりキャッチしたりする方法はありますか?私はUnityでUbuntuを使っています。

37
rob006

about:configで設定を行います。

Firefox> = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

enter image description here

出典

古いFirefox

browser.showQuitWarning true
browser.warnOnQuit true

私は64ビットのLinux(そしてWin10の60esrチャンネル)で61.0.2-64.0.2に遭遇したすべてのバージョンでテストされています。 screenshot

28
CrazyPyro

tl/dr:Ctrl-Qにグローバルショートカットを割り当てます

Firefox Quantumでは、誤ってCtrl-Qキーを押してFirefoxのクロージャを警告していた about:config設定 が機能しなくなりました。

回避策:Arch Linuxでは XFCEデスクトップ環境(他のLinuxディストリビューションやデスクトップでも同様のアプローチが可能です):

  • ウィスカメニュー>>すべての設定>>キーボード>>アプリケーションのショートカット>>追加

  • 新しい "アプリケーション" nullを追加します。それをCtrl-Qキーに割り当てます

    • 更新(@justderbによるコメント): "エラーウィンドウをポップアップさせたくない場合は、 'null'の代わりに 'true'を使うのがいいです。"

Firefox - 'disable' Ctrl-Q

呼び出し:ここで、Firefox Quantum v。60.0.1(64-bit)でCtrl-Qを押しました。 Firefoxを終了する代わりに、このポップアップを表示します。

Firefox - Ctrl-Q 'disabled'

警告:これはもちろん、すべてのCtrl-Qキープレスにグローバルに影響します。しかし - 私自身の好みでは - これらの偶然のFirefox Ctrl-Qクロージャを無効にすることでこの欠点を上回る(その後、私はウェブサイトに再ログインしなければならない:GitHub; reddit; ...)。

更新

Firefoxをやめようとすると、@ crazypyroの答えも私には有効です(x86_64 Linux上のFF Quantum 63.0)。私の解決策はより一般的な回避策として、それはおそらく具体的な答えと見なされるべきです。

about:config(以下の両方ともtrueに設定):

  • browser.showQuitWarning
  • browser.warnOnQuit
13
Victoria Stuart

Firefox QuantumのuserChrome.jsでCtrl + qを無効にする

これは、あなたのFirefoxプロファイルの中のちょっとしたjavascriptによって外部アプリケーションなしで達成することができます。

前提条件として、userChrome.jsを有効にする必要があります(以下を参照するか、 オリジナルのGitHubリポジトリから入手してください )。

Chromeディレクトリとその内容をユーザープロファイルにコピーしたら、次の内容のファイル<profile-dir>/chrome/disable_ctrl_q.uc.jsを作成します。

var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();

最後に、Firefoxを再起動すれば、ctrl + qによってアプリケーションが終了することはなくなります。


Firefox QuantumでuserChrome.jsを有効にする

完全を期すために、以下は変更されたクロムファイルの全内容です。 userChrome JavaScriptを有効にするには、Firefoxプロファイル内のchromeディレクトリ内にこれら2つのファイルを作成します。

  1. アドレスバーにabout:supportを入力します。
  2. アプリケーションの基本>プロファイルディレクトリで、ディレクトリを開くボタンをクリックしてFirefoxのプロファイルディレクトリを開きます。
  3. プロファイルディレクトリ内に、chromeという新しいディレクトリを作成します。
  4. chromeディレクトリ内に、以下の内容で新しいファイルuserChrome.cssuserChrome.xmlを作成します。
  5. Firefoxを再起動します(ctrl + qを無効にするために次の手順を実行している場合は、おそらく上記の.uc.jsファイルも作成します)。

userChrome.css

/* Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
*/
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
toolbarbutton#alltabs-button {
    -moz-binding: url("userChrome.xml#js");
}

userChrome.xml

<?xml version="1.0"?>
<!-- Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
 -->

<bindings id="generalBindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
   xmlns:xbl="http://www.mozilla.org/xbl">

  <binding id="js" extends="chrome://global/content/bindings/toolbarbutton.xml#menu">
    <implementation>
        <constructor><![CDATA[
            function makeRelativePathURI(name) {
              let absolutePath = Components.stack.filename;
              return absolutePath.substring(0, absolutePath.lastIndexOf("/") + 1) + name;
            }
            // The following code executes in the browser context,
            // i.e. chrome://browser/content/browser.xul
            Services.scriptloader.loadSubScript(makeRelativePathURI("userChrome.js"), window);
        ]]></constructor>
    </implementation>
  </binding>
</bindings>
5
thinkmassive

AutoKey で必要なものを手に入れることができました。インストール後、私は割り当てられた空のスクリプトを作成しました Ctrl+Q "Hotkey"として、そして.*Firefoxとして "Window filter"として。

enter image description here

それからAutoKeyの設定で、私はそれをautostartとdisabled通知アイコンに追加したので、それは私にとって透明になります。

enter image description here

私はそれを数時間使用しました、そしてそれは有望に見えます - これまでのところ誤検出や見逃したキャッチはありません。たった今 Ctrl+Q Firefoxでは動作しませんが、たとえばPhpStormでは完全に機能します。


さらに bug 1215061 これが将来もっと簡単になり、Firefoxがついにまともなキーボードショートカット設定を得るようになるという希望を与えてくれます。

2
rob006

醜くて単純で効果的な回避策は常にアクティブなonbeforeunloadハンドラを持つページを開いたままにしておくことです。閉じようとするとダイアログが表示されます。

そのため、誤ってCtrl + Qを押しようとすると、そのダイアログが表示されますので、[このページに留まる]を選択して終了をキャンセルできます。

編集: この目的のために作成したカスタムページ

2
Jan Schejbal