Firefox 57以降、無効にする方法はありません Ctrl+Q Linux上のプラグインによるショートカット( このバグ を参照)。私が見つけたすべての回避策はグローバルの設定に基づいています Ctrl+Q Firefoxからそれを「盗む」ためのショートカット。しかし、これはすべてのアプリケーションでこのショートカットを無効にするので、他のアプリには影響を与えずにFirefoxでのみこのショートカットを無効にします。
1つのアプリケーションに対してのみショートカットを無効にしたりキャッチしたりする方法はありますか?私はUnityでUbuntuを使っています。
tl/dr:Ctrl-Qにグローバルショートカットを割り当てます
Firefox Quantumでは、誤ってCtrl-Qキーを押してFirefoxのクロージャを警告していた about:config
設定 が機能しなくなりました。
回避策:Arch Linuxでは XFCEデスクトップ環境(他のLinuxディストリビューションやデスクトップでも同様のアプローチが可能です):
ウィスカメニュー>>すべての設定>>キーボード>>アプリケーションのショートカット>>追加
新しい "アプリケーション" null
を追加します。それをCtrl-Q
キーに割り当てます
呼び出し:ここで、Firefox Quantum v。60.0.1(64-bit)でCtrl-Q
を押しました。 Firefoxを終了する代わりに、このポップアップを表示します。
警告:これはもちろん、すべてのCtrl-Qキープレスにグローバルに影響します。しかし - 私自身の好みでは - これらの偶然のFirefox Ctrl-Qクロージャを無効にすることでこの欠点を上回る(その後、私はウェブサイトに再ログインしなければならない:GitHub; reddit; ...)。
更新
Firefoxをやめようとすると、@ crazypyroの答えも私には有効です(x86_64 Linux上のFF Quantum 63.0)。私の解決策はより一般的な回避策として、それはおそらく具体的な答えと見なされるべきです。
about:config
(以下の両方ともtrue
に設定):
browser.showQuitWarning
browser.warnOnQuit
これは、あなたの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によってアプリケーションが終了することはなくなります。
完全を期すために、以下は変更されたクロムファイルの全内容です。 userChrome JavaScriptを有効にするには、Firefoxプロファイル内のchrome
ディレクトリ内にこれら2つのファイルを作成します。
about:support
を入力します。chrome
という新しいディレクトリを作成します。chrome
ディレクトリ内に、以下の内容で新しいファイルuserChrome.css
とuserChrome.xml
を作成します。/* 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");
}
<?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>
AutoKey で必要なものを手に入れることができました。インストール後、私は割り当てられた空のスクリプトを作成しました Ctrl+Q "Hotkey"として、そして.*Firefox
として "Window filter"として。
それからAutoKeyの設定で、私はそれをautostartとdisabled通知アイコンに追加したので、それは私にとって透明になります。
私はそれを数時間使用しました、そしてそれは有望に見えます - これまでのところ誤検出や見逃したキャッチはありません。たった今 Ctrl+Q Firefoxでは動作しませんが、たとえばPhpStormでは完全に機能します。
さらに bug 1215061 これが将来もっと簡単になり、Firefoxがついにまともなキーボードショートカット設定を得るようになるという希望を与えてくれます。
醜くて単純で効果的な回避策は常にアクティブなonbeforeunload
ハンドラを持つページを開いたままにしておくことです。閉じようとするとダイアログが表示されます。
そのため、誤ってCtrl + Qを押しようとすると、そのダイアログが表示されますので、[このページに留まる]を選択して終了をキャンセルできます。