Jangan keluar dari layar penuh ketika menekan escape di aplikasi seperti Safari on Lion


45

Di OS X Lion, menekan ESCtombol keluar dari mode layar penuh. Sayangnya, dan terutama ketika menggunakan Safari, ESCdigunakan untuk fungsi lain, seperti dalam penanganan acara Javascript keystroke. Saya tidak ingin Lion keluar dari mode layar penuh ketika menekan escape, tetapi saya tidak dapat menemukan tempat untuk menonaktifkan fungsionalitas itu.

Saya sudah tahu pintasan keyboard untuk masuk / keluar dari mode layar penuh ( Cmd- Ctrl- F). Saya ingin menonaktifkan ESCpintas. Saya telah Googling, tetapi tidak dapat menemukan jawaban.


2
Menekan di Esctempat yang memiliki efek berbeda (mis. Membatalkan pemuatan halaman) tidak keluar dari layar penuh.
Daniel Beck

@Aniel: Tapi itu tidak selalu berlaku untuk fungsi lain. Apakah ini sebenarnya masalah OS X Lion yang tersebar luas? Mengapa ada begitu sedikit orang yang benar-benar mengalami ini?
Tamara Wijsman

1
@ Tom Seperti? Pengguna tidak mengatakan, dan Anda juga tidak. Saya bisa membayangkan semua fungsi yang menggantikan cara pintas mode layar penuh ketika digunakan dengan misalnya mengkonsumsi acara, tetapi tanpa lebih banyak contoh, saya tidak bisa mengatakan dengan pasti.
Daniel Beck

10
Secara tidak sengaja tekan enter. Ada banyak halaman web di mana ESC digunakan untuk menutup jendela modal, misalnya: ericmmartin.com/projects/simplemodal-demos Klik Demo pada halaman untuk menampilkan jendela modal. Tekan ESC untuk menutup modal. Safari sadar bahwa ada jendela modal, dan tidak keluar dari layar penuh. Tekan ESC lagi dan Safari keluar dari mode layar penuh. Seringkali saya menekan ESC beberapa kali untuk memastikan sesuatu ditutup. Saya tidak ingin Safari keluar dari mode layar penuh ketika itu terjadi. Sudah ada perintah kunci untuk keluar dari layar penuh. ESC seharusnya tidak digunakan.
Fadi

1
@dpk Tautan ke halaman web demo, silakan. Karena tidak ada contoh yang disebutkan sejauh ini memiliki masalah ini ketika saya mengujinya, saya tidak percaya bahwa tanpa langkah untuk mereproduksi masalah. Faktanya, contoh Fadi di atas bertentangan dengan komentar Anda.
Daniel Beck

Jawaban:


6

Untuk peramban web, dan khusus untuk penggunaan situs dengan perilaku yang memungkinkan atau membutuhkan penggunaan Escapekunci sambil tidak mencegah penutupan layar penuh (seperti situs Stack Exchange ), Anda dapat menggunakan skrip pengguna berikut:

// ==UserScript==
// @name           Keep Full Screen
// @namespace     http://superuser.com/q/315949
// @description    Prevents Escape key from leaving full screen.
// @include      http://*
// ==/UserScript==
document.onkeydown = function (evt) {
    if (evt.keyCode == 27) evt.preventDefault();
}

Untuk menjalankan ini di browser, gunakan mesin skrip pengguna apa pun untuk browser Anda.

  • Untuk Safari 5, Anda dapat menggunakan ekstensi Safari NinjaKit (di GitHub ). Inilah yang saya gunakan.
  • Untuk Chrome, Anda dapat menggunakan varian NinjaKit -nya .
  • Untuk Safari lain di OS X, Anda dapat menggunakan plug-in SIMBL GreaseKit . Tidak yakin seberapa up to date itu.

Demi kenyamanan, saya mengunggah ini ke userscripts: userscripts.org/scripts/review/178642
coffeejunk

Adakah pengalaman menginstal ini di Safari untuk Mavericks?
Holene

2
Ya ini tidak bekerja untuk saya, saya di Yosemite Beta 5 dengan Safari 8.0 (10600.1.25) pada saat penulisan, dan menggunakan NinjaKit di Safari sebagai mesin skrip pengguna. Tombol melarikan diri terus melanggar layar penuh dan bagi saya itu terjadi ketika saya di address bar dan tekan Esc saat di dalamnya. (Ini memiliki beberapa fungsi yang berguna saat mengedit teks di dalamnya ...) Saya berasumsi GreaseKit tidak lagi berfungsi mengingat tanggalnya ke 2009 dan google cepat tampaknya menunjukkan itu tidak berfungsi lagi. Ada ide? Sangat menyebalkan, tak heran Chrome adalah peramban utama yang masuk, bahkan pada sistem operasi Apple sendiri ...

@ foregon Saya berharap penanganan acara halaman sama sekali tidak berpengaruh saat Anda berada di bilah alamat.
Daniel Beck

bekerja dengan tampermonkey, mengedit skrip / respons untuk mendukung https: // juga.
Toni

3

Sebagian besar situasi bawaan OS X menerima Escapedan Cmd-.membatalkan, misalnya dialog file, pemuatan Safari, menyeret elemen ke sekitar, dll.

Terutama absen dari daftar itu, tentu saja, meninggalkan mode layar penuh .


Jadi, Anda bisa belajar menekan Cmd-.bukannya Escapemenghindari situasi ini sama sekali. Atau Anda dapat mengajarkan komputer Anda untuk melakukannya untuk Anda: Solusi paling tidak waras adalah menggunakan item Butler 's Keystrokes untuk dipetakan Escapeke Cmd-.:

  • Buka halaman konfigurasi Butler
  • Pilih wadah apa pun, mis. Tersembunyi , klik + »Item Cerdas» penekanan tombol
  • Pada tab Tombol , tekan Cmd-.untuk menggunakan ini sebagai keystroke yang dihasilkan saat mengaktifkan item ini
  • Pada tab Pemicu , pilih bidang input Hot Key dan tekan Escape. Abaikan peringatan yang pada dasarnya menyatakan Anda gila.
  • Ingatlah untuk menambahkan misalnya Terminal ke daftar pengecualian - ia benar-benar mengabaikan Escapemeninggalkan layar penuh, tetapi menekan Ctrl-.terjemahkan ke Ctrl-C!

Dalam beberapa situasi, hal-hal buruk akan terjadi. Memetakan kembali kunci yang biasanya merupakan pintasan keyboard yang setara adalah solusi palu godam. Lihat Cepat , misalnya, tidak menangani Cmd-.(dan karenanya dipetakan ulang Escapeuntuk menutup file preview); mengganti nama file dalam Finder tidak dapat dibatalkan lagi menggunakan Escape, atau pilihan misalnya dalam Finder dibersihkan.

Dalam pengujian terbatas, saya tidak menemukan situasi di mana menekan Cmd-.benar-benar mengarah pada tindakan yang tidak diinginkan dilakukan, tetapi perlu diketahui bahwa ini mungkin juga ada.


Tentu saja, Anda dapat sepenuhnya mengabaikan semua penekanan tombol Escape seperti ini, tetapi itu akan kehilangan sedikit fungsi ...
Daniel Beck

⌘ +. keluar dari mode layar penuh untuk saya di Opera, jadi ini adalah no go :(
Andy E

2

Opsi yang memungkinkan Anda meliputi:

  1. Atur pintasan alternatif untuk fungsi lain, karena ESCdicadangkan oleh OS dan Browser.

  2. Sesuaikan kode mesin sumber / assembler untuk memutar kembali ESCkunci OS dan Browser.

  3. Ajukan permintaan bug / fitur terhadap pengembang aplikasi (yaitu Google spreadsheet) untuk menggunakan acara ESC alih-alih membiarkannya lewat.

  4. Ajukan bug ke Apple, karena aplikasi ada di sini lebih dulu, dan Apple membidik ulang kunci tanpa sebab.


3
# 1 Aku bisa ketinggalan. # 2 hampir membuat lidah tertawa.
peelman

Nah, jarak tempuh Anda mungkin berbeda.
Tamara Wijsman

Fungsi menggunakan Escapebiasanya tidak tersedia dari bilah menu, dan Escapetidak memicu item menu seperti yang jelas dari "flash" yang hilang menyoroti item menu bar yang berisi item yang dipicu.
Daniel Beck

# 4 Ajukan bug ke Apple, karena aplikasi ada di sini lebih dulu, dan Apple membidik ulang kunci tanpa sebab.
dpk

2

Saya tidak menemukan jawaban untuk macOs Sierra dan lebih tinggi. Jadi itulah cara saya mengatasi masalah ini.

Seperti yang telah disarankan saya telah memetakan kembali ESC ke ⌥ + ESC. Itu melakukan pekerjaan dan bahkan beberapa fungsi lain yang ditugaskan untuk pekerjaan utama. Anda dapat keluar dari video layar penuh di beberapa situs, tetapi itu tidak akan membatalkan pemuatan halaman.

Pertama, Anda perlu menginstal elemen Karabiner untuk dapat memetakan kembali kunci

  1. Pasang brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Pasang tong brew tap caskroom/cask
  3. Instal elemen-karabiner brew cask install karabiner-elements

Saya telah membuat "modifikasi Kompleks" khusus untuk masalah ini. Untuk menginstal modifikasi ini, Anda harus:

  1. Buka elemen-karabiner dan buka tab "Kompleks modifikasi"
  2. Klik tombol "Tambahkan aturan", lalu "Impor lebih banyak aturan dari Internet"
  3. Impor modifikasi "Jangan keluar layar penuh ketika menekan ESC di Safari"

1

Hanya untuk menyempurnakan deskripsi sedikit lagi.

ESC digunakan untuk membatalkan drag, esc digunakan untuk membatalkan kotak dialog, esc digunakan selama drag untuk membatalkan perpindahan / salin, esc digunakan di terminal di VI untuk membatalkan perintah pengeditan

Jadi, ada banyak kegunaan. Ini adalah keanehan aneh bahwa Apple membatalkan mode layar penuh ini ketika itu dimungkinkan oleh ctrl-cmd-F dan ikon kanan atas.

Ini sepertinya ada pada aplikasi berdasarkan aplikasi Mail dan Safari dan item iLife lainnya akan keluar dari layar penuh. iTunes tetap layar penuh.

Reeder mengabaikan esc untuk tujuan Kendali jendela penuh, dan melakukan hal-hal lain yang sesuai untuk program tersebut. Evernote bahkan tidak memiliki cmd-F atau ctrl-cmd-F untuk kontrol jendela, dengan ikon dan tombol esc.

Tampaknya Anda tidak dapat memetakan esc dengan sendirinya ke beberapa tindakan omong kosong yang tidak berbahaya di panel kontrol keyboard.


1
Di Safari, memetakan kunci Escape ke fungsi yang tidak berbahaya sepertinya bukan solusi. Apa pun tindakannya, masih akan keluar dari Layar Penuh.
peelman

Dan lagi, menekan Escapeuntuk membatalkan dialog tidak keluar dari layar penuh .
Daniel Beck

Menekan Escapedi Terminal tidak keluar dari layar penuh .
Daniel Beck

Menggunakan Escapeuntuk membatalkan tarik tidak keluar dari layar penuh . Pernahkah Anda mencobanya sebelum memposting klaim ini?
Daniel Beck

Menggunakan Escapedi Reeder untuk misalnya kembali dari halaman web artikel ke item RSS tidak keluar dari layar penuh . Jika Escapetidak digunakan untuk tindakan seperti itu, ia keluar layar penuh. Seperti dalam SEMUA PROGRAM LAINNYA .
Daniel Beck

1

Sepertinya Anda menggunakan JQuery. Dalam hal itu:

Dengarkan peristiwa keydown (penekanan tombol dan keyup tidak akan berfungsi) pada dokumen dengan keyCode 27 , dan ketika acara diaktifkan, panggil e.preventDefault () .

$(document).bind('keydown', function(e) {

    if (e.keyCode === 27) { // Escape key
        e.preventDefault();
        // Other code goes here    
    }

});

Permintaan terkait pada MSO , berfungsi tanpa jQuery.
Daniel Beck

1

Coba OptionEsc, yang berhasil untuk saya.


1
Itu juga tidak memicu tindakan yang terkait dengan tombol Escape, misalnya membatalkan pemuatan halaman web Safari.
Daniel Beck

1

Ini sama dengan jawaban @ aditya-srinivasan yang menargetkan Opera

<?xml version="1.0"?>
<root>
    <item>
  <!-- ============================================================ -->
  <appdef>
    <appname>OPERA</appname>
    <equal>com.operasoftware.Opera</equal>
  </appdef>

    <name>Escape to Option + Escape on Opera</name>
    <identifier>private.Opera_escape</identifier> 
    <only>OPERA</only>
    <autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::ESCAPE, ModifierFlag::OPTION_L</autogen>
  </item>
  <!-- ============================================================ -->
</root>

Lihat @ aditya-srinivasan jawaban pada unduhan https://pqrs.org/osx/karabiner/index.html.en


0

Saya memutuskan untuk escdialihkan ke alt/option+ esc. Sebagian besar, ini memungkinkan saya keluar dari video YouTube, dan jika Anda memiliki akun Squarespace, itu memungkinkan Anda masuk tanpa keluar dari layar penuh.

  • Unduh dan pasang Karabiner .
  • Buka tab "Misc & Uninstall" paling kanan.
  • Klik pada tombol yang mengatakan "Buka private.xml".
  • Unduh file private.xml dari sini
  • Ganti file "private.xml" asli di Finder dengan file yang diunduh. Voila!

0

Gunakan BetterTouchTool atau KeyboardMaestro atau yang serupa dengan remap Escke ⌥ + Esc.


0

Setelah beberapa pencarian solusi, saya mengirimkan Safari ke desktop virtual terpisah dengan kontrol Misi. Ini mengurangi masalah ESC dan sejauh ini merupakan perkiraan terbaik untuk jendela Safari layar penuh.

Ruang bonus jika Anda menyembunyikan Dock.


0

MUDAH, menemukannya! KeyboardMaestro dengan 2 tindakan

Saat menekan " ESC" Simulasikan menekan (sebagai gantinya): - " CMD+." - KEMUDIAN juga " ALT+ ESC"

Anda perlu kedua, karena beberapa aplikasi bereaksi hanya untuk satu pesanan atau yang lain (kadang-kadang tak, maka tidak ada mungkin) -> cara ini aplikasi yang paling akan melakukan seperti " ESC" dalam konteks mereka, tapi Anda tidak akan pernah mendapatkan keluar dari penuh Mode layar

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.