Cara menonaktifkan Ctrl + Q di Firefox di Linux

56

Sejak Firefox 57 tidak ada cara untuk menonaktifkan Ctrl+ Qpintasan dengan plugin di Linux (lihat bug ini ). Semua solusi yang saya temukan didasarkan pada pengaturan pintasan Ctrl+ global Quntuk "mencuri" dari Firefox. Tetapi ini akan menonaktifkan pintasan ini di setiap aplikasi, dan saya ingin menonaktifkan pintasan ini hanya di Firefox, tanpa memengaruhi aplikasi lain.

Apakah ada cara untuk menonaktifkan atau menangkap pintasan hanya untuk satu aplikasi? Saya menggunakan Ubuntu dengan Unity.

rob006
sumber
Pertanyaan yang menarik, tetapi jawabannya mungkin tergantung pada use case. Penekanan tombol yang tidak disengaja? Mode kios?
l0b0
4
@ l0b0 Menekan tombol tidak disengaja. Ini PC biasa, tidak ada yang mewah.
rob006
Dalam hal itu, apakah Anda memiliki lebih banyak detail? Saya hanya memeriksa apakah ada beberapa cara sistem dapat diatur untuk Melakukan Apa yang Anda Inginkan ™, seperti menyimpan tab ketika Anda berhenti, untuk menghindari sesuatu yang saya curigai akan menjadi retas yang rapuh.
l0b0
6
@ l0b0 Saya ingin mencegah menutup browser dengan penekanan tombol yang tidak disengaja. Ada terlalu banyak hal yang berubah setelah menutup browser (sesi penutupan, mengakhiri koneksi), saya lebih suka mencegah menutup browser daripada memperbaiki efeknya.
rob006

Jawaban:

46

Dalam about:configmenetapkan preferensi.

Firefox> = 65

browser.sessionstore.warnOnQuit true
browser.warnOnQuit true

masukkan deskripsi gambar di sini

Sumber

Firefox yang lebih lama

browser.showQuitWarning true
browser.warnOnQuit true

Diuji dalam semua versi, saya menemukan 61.0.2-64.0.2 di 64bit Linux (dan saluran 60esr di Win10). tangkapan layar

CrazyPyro
sumber
2
Adakah umpan balik yang konstruktif dengan downvote itu?
CrazyPyro
4
Dan sekarang, pada FF 63.0.3 (64-Bit Ubuntu), ctrl-Q sekali lagi berhenti secara instan untuk saya, meskipun kedua opsi tersebut diaktifkan. Sungguh mengherankan betapa berantakannya fitur sederhana (salah) ini. Ah, mungkin itu akan berfungsi lagi di v64 ...
Pont
3
Saya tidak melihat browser.showQuitWarningpada ff quantum 64.0 64bit di linux. browser.warnOnQuitdiaktifkan tetapi tidak melakukan apa-apa?
bool3max
4
Ini tidak berfungsi untuk saya di Firefox 66.0.5 di Manjaro Linux. Harus berurusan dengan browser.tabs.warnOnClose;truesekarang. Terkait: bugzilla.mozilla.org/show_bug.cgi?id=502908#c73
aguadopd
2
Jawaban yang dipilih tidak lagi menyelesaikan masalah.
Paul
15

tl / dr: tetapkan pintasan global ke Ctrl-Q

Di Firefox Quantum, about:configpengaturannya yang digunakan untuk memperingatkan terhadap penutupan Firefox melalui penekanan tombol Ctrl-Q yang tidak disengaja tidak lagi berfungsi.

Penanganan masalah: pada Arch Linux | Lingkungan desktop XFCE (distro Linux lain & / atau desktop mungkin memungkinkan pendekatan serupa):

  • Menu kumis >> Semua Pengaturan >> Keyboard >> Pintasan Aplikasi >> Tambah

  • Tambahkan baru "aplikasi", null; tetapkan ke Ctrl-Qpenekanan tombol

    • Perbarui (komentar oleh @justderb): "Menggunakan 'true', bukan 'null' itu bagus jika Anda tidak ingin jendela kesalahan muncul."

Firefox - 'nonaktifkan' Ctrl-Q

Doa pembuka: di sini, saya menekan Ctrl-QFirefox Quantum v. 60.0.1 (64-bit); bukannya berhenti Firefox, saya mendapatkan popup ini,

Firefox - Ctrl-Q 'dinonaktifkan'

Peringatan: ini, tentu saja, secara global memengaruhi semua penekanan tombol Ctrl-Q. Namun, - sesuai pilihan saya sendiri - kekurangan itu lebih besar daripada membatalkan penutupan Firefox-Ctrl-Q yang tidak disengaja (setelah itu saya harus masuk kembali ke situs web: GitHub; reddit; ...).

Memperbarui

Jawaban @crazypyro juga berfungsi untuk saya (FF Quantum 63.0 pada x86_64 Linux) memberikan peringatan popup jika Anda mencoba untuk Berhenti dari Firefox. Itu mungkin harus dianggap sebagai jawaban spesifik, dengan solusi saya sebagai solusi yang lebih umum.

about:config(keduanya diatur ke true):

  • browser.showQuitWarning
  • browser.warnOnQuit
Victoria Stuart
sumber
7
Menggunakannya truebukan hal nullyang baik jika Anda tidak ingin jendela kesalahan muncul.
justderb
@ justderb: bagus! :-D
Victoria Stuart
1
bagi saya di archlinux / Kde 5 plasma saya tidak bisa melakukan pintasan global tanpa memilih aplikasi pertama - tidak mungkin benar | null, tetapi berkat saran Anda saya dapat memetakannya kembali untuk beralih mikrofon - yang pada komputer kerja tidak ada gunanya bagi saya pokoknya .. terima kasih!
JTC
Memetakan CTRL + q di sxhkd juga membajak pintasan, mencegah Firefox untuk berhenti.
Simon Cedergren Malmqvist
Bekerja di Mint 19.
Paul
7

Nonaktifkan Ctrl + q dengan userChrome.js di Firefox Quantum

Ini dapat dilakukan tanpa aplikasi eksternal dengan sedikit javascript di profil Firefox Anda.

Sebagai prasyarat, Anda harus mengaktifkan userChrome.js (lihat di bawah, atau dapatkan dari repo GitHub yang asli )

Setelah menyalin direktori chrome dan isinya ke profil pengguna Anda, buat file <profile-dir>/chrome/disable_ctrl_q.uc.jsdengan konten berikut:

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

Terakhir, restart Firefox, dan ctrl + q tidak akan lagi menyebabkan aplikasi keluar.


Mengaktifkan userChrome.js di Firefox Quantum

Untuk kelengkapan, di bawah ini adalah konten lengkap dari file chrome yang dimodifikasi. Untuk mengaktifkan javascript userChrome, buat dua file ini di dalam chromedirektori di dalam profil Firefox Anda.

  1. Ketikkan about:supportbilah alamat.
  2. Di bawah Dasar-Dasar Aplikasi> Direktori Profil klik tombol Open Directory untuk membuka direktori profil Firefox Anda.
  3. Dalam direktori profil, buat direktori baru bernama chrome
  4. Dalam chromedirektori, buat file baru userChrome.cssdan userChrome.xmldengan konten yang tercantum di bawah ini.
  5. Mulai ulang Firefox (Anda mungkin juga ingin membuat file .uc.js di atas jika Anda mengikuti langkah-langkah ini untuk menonaktifkan ctrl + q)

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>
pemikir
sumber
1
Ini tidak berfungsi di Firefox 62
Duka
1
Ini bekerja dengan stabil terbaru, Firefox 61. Semoga 62 diperbaiki sebelum meninggalkan beta.
thinkmassive
Saya sekarang menggunakan solusi dari CrazyPyro superuser.com/a/1352295/308508
thinkmassive
Tidak berfungsi di 69.0.2 (bukan beta). Juga, document.getElementById('key_quitApplication')mengembalikan nol. Apakah nama elemen ini berubah?
tsbertalan
6

Solusi yang jelek, tetapi sederhana dan efektif selalu menjaga halaman terbuka yang memiliki onbeforeunloadpengendali aktif , yaitu akan memicu "Halaman ini meminta Anda untuk mengonfirmasi bahwa Anda ingin pergi - data yang Anda masukkan mungkin tidak disimpan." dialog ketika Anda mencoba untuk menutupnya.

Dengan begitu, jika Anda tidak sengaja mencoba CTRL + Q, Anda akan menerima dialog itu, dan dapat memilih "tetap di halaman ini" untuk membatalkan pintu keluar.

Sunting: Halaman khusus yang saya buat hanya untuk tujuan ini

Jan Schejbal
sumber
Semangat hacker yang bagus di sana!
Daniel Hitzel
Terima kasih! Menambahkan tautan ke implementasi saya.
Jan Schejbal
Terima kasih untuk ini. Berfungsi untuk saya, dan sangat menyenangkan. Saya menyukainya (: Sangat mengejutkan bagi saya bahwa FF telah mengacaukan hal sederhana ini.
jwd
4

Saya bisa mendapatkan yang saya butuhkan dengan AutoKey . Setelah instalasi saya membuat skrip kosong dengan Ctrl+ ditugaskan Qsebagai "Hotkey" dan .*Firefoxsebagai "Window filter".

masukkan deskripsi gambar di sini

Kemudian dalam preferensi AutoKey saya menambahkannya ke ikon autostart dan menonaktifkan pemberitahuan, sehingga menjadi transparan bagi saya.

masukkan deskripsi gambar di sini

Saya menggunakannya selama beberapa jam dan itu terlihat menjanjikan - tidak ada positif palsu atau tangkapan yang terlewatkan sejauh ini. Saat ini Ctrl+ Qtidak berfungsi untuk Firefox, tetapi berfungsi dengan baik di PhpStorm misalnya.


Selain itu bug 1215061 memberi harapan bahwa ini akan lebih mudah di masa depan dan Firefox akhirnya akan mendapatkan beberapa pengaturan pintasan keyboard yang layak.

rob006
sumber