Non uscire dallo schermo intero quando si preme Esc in app come Safari su Lion


45

In OS X Lion, premendo il ESCtasto si esce dalla modalità a schermo intero. Sfortunatamente, e specialmente quando si utilizza Safari, ESCviene utilizzato per altre funzioni, come nella gestione degli eventi della sequenza di tasti Javascript. Non voglio che Lion esca dalla modalità a schermo intero quando si preme Esc, ma non riesco a trovare un posto per disabilitare quella funzionalità.

Conosco già la scorciatoia da tastiera per accedere / uscire dalla modalità a schermo intero ( Cmd- Ctrl- F). Voglio disabilitare il ESCcollegamento. Sono stato su Google, ma non riesco a trovare alcuna risposta.


2
Premendo Escdove ha un effetto diverso (es. Interruzione del caricamento della pagina) non si esce dallo schermo intero.
Daniel Beck

@Daniel: Ma ciò non si applica necessariamente ad altre funzioni. Si tratta effettivamente di un problema diffuso con OS X Lion? Perché ci sono così poche persone che stanno vivendo questo?
Tamara Wijsman,

1
@ Tom Come? L'utente non dice, e nemmeno tu. Potrei immaginare tutte quelle funzioni che sovrascrivono il collegamento alla modalità a schermo intero quando vengono utilizzate, ad esempio, consumando l'evento, ma senza altri esempi, non posso dirlo con certezza.
Daniel Beck

10
Premi accidentalmente invio Esistono molte pagine Web in cui ESC viene utilizzato per chiudere una finestra modale, ad esempio: ericmmartin.com/projects/simplemodal-demos Fai clic su Demo sulla pagina per visualizzare una finestra modale. Premere ESC per chiudere il modale. Safari è consapevole che esiste una finestra modale e non esce dallo schermo intero. Premi di nuovo ESC e Safari esce dalla modalità a schermo intero. Spesso premo ESC più volte per assicurarmi che qualcosa venga chiuso. Non voglio che Safari esca dalla modalità a schermo intero quando ciò accade. Esiste già un comando da tastiera per uscire dallo schermo intero. ESC non dovrebbe essere usato.
Fadi,

1
@dpk Collegamento a una pagina Web demo, per favore. Poiché nessuno degli esempi citati finora presenta questo problema quando li ho testati, non ci credo senza passaggi per riprodurre il problema. In effetti, l'esempio di Fadi sopra contraddice il tuo commento.
Daniel Beck

Risposte:


6

Per i browser Web e in particolare per l'uso di siti con comportamenti che abilitano o richiedono l'uso della Escapechiave senza impedire la chiusura dello schermo intero (come i siti Stack Exchange ), è possibile utilizzare il seguente script utente:

// ==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();
}

Per eseguirlo nei browser, utilizzare qualsiasi motore di script utente per il browser.

  • Per Safari 5, puoi utilizzare l'estensione NinjaKit di Safari (su GitHub ). Questo è quello che uso.
  • Per Chrome, puoi utilizzare la sua variante NinjaKit .
  • Per qualsiasi altro Safari su OS X, è possibile utilizzare il plug-in SIMBL GreaseKit . Non sono sicuro di quanto sia aggiornato.

per comodità, l'ho caricato su userscripts: userscripts.org/scripts/review/178642
coffeejunk

Qualche esperienza con l'installazione di questo su Safari per Mavericks?
Holene,

2
Sì, questo non funziona per me, sono in Yosemite Beta 5 con Safari 8.0 (10600.1.25) al momento in cui scrivo e utilizzo NinjaKit in Safari come motore di script utente. Il tasto Esc continua a rompersi a schermo intero e per me succede quando sono nella barra degli indirizzi e premo Esc mentre ci sono dentro. (ha alcune funzioni utili quando si modifica il testo in esso ...) Suppongo che GreaseKit non funzioni più dato che è datato al 2009 e un veloce google sembra indicare che non funziona più. Qualche idea? Così frustrante, non c'è da stupirsi che Chrome sia il browser principale

@foregon Mi aspetto che la gestione degli eventi di pagina non abbia alcun effetto mentre sei nella barra degli indirizzi.
Daniel Beck

funziona con tampermonkey, ha modificato lo script / response per supportare anche https: //.
Toni,

3

La maggior parte delle situazioni native di OS X accetta entrambe Escapee si Cmd-.interrompe, ad esempio dialoghi di file, caricamento di Safari, trascinamento di elementi in giro, ecc.

Particolarmente assente da tale elenco è, ovviamente, uscire dalla modalità a schermo intero .


Quindi potresti semplicemente imparare a premere Cmd-.invece di Escapeevitare del tutto questa situazione. Oppure puoi insegnare al tuo computer a farlo per te: una soluzione almeno in qualche modo sensata consiste nell'utilizzare, ad esempio , l' elemento dei tasti di Butler per mappare a :EscapeCmd-.

  • Apri la pagina di configurazione di Butler
  • Seleziona qualsiasi contenitore, ad esempio Nascosto , fai clic su + »Elemento intelligente» Tasti
  • Nella scheda Tasti , premere Cmd-.per utilizzare questo come la sequenza di tasti risultante quando si attiva questo elemento
  • Nella scheda Trigger , selezionare il campo di input Tasto di scelta rapida e premere Escape. Ignora l'avvertimento che sostanzialmente afferma che sei pazzo.
  • Ricorda di aggiungere, ad esempio, Terminale all'elenco delle eccezioni: ignora totalmente Escapeper lasciare lo schermo intero, ma premendo si Ctrl-.traduce in Ctrl-C!

In alcune situazioni, le cose si comporteranno male. Rimappare la chiave su ciò che di solito è una scorciatoia da tastiera equivalente è una soluzione a mazza. Quick Look , ad esempio, non gestisce Cmd-.(e quindi il rimappato Escapeper chiudere le anteprime dei file); la ridenominazione dei file nel Finder non può più essere interrotta utilizzando Escape, né le selezioni ad es. nel Finder possono essere cancellate.

In test limitati, non ho trovato alcuna situazione in cui la pressione in Cmd-.realtà porta a compiere azioni indesiderate, ma sappi che probabilmente esistono anche queste.


Ovviamente, potresti ignorare completamente tutti i tasti premuti Escape in questo modo, ma questo perderà un bel po 'di funzionalità ...
Daniel Beck

⌘ +. esce dalla modalità a schermo intero per me in Opera, quindi non c'è niente da fare :(
Andy E

2

Le tue possibili opzioni includono:

  1. Imposta scorciatoie alternative per le altre funzioni, perché ESCè riservato dal sistema operativo e dal browser.

  2. Regola il codice macchina sorgente / assemblatore per ricollegare la ESCchiave del sistema operativo e del browser.

  3. Archivia la richiesta di bug / funzionalità contro lo sviluppatore dell'applicazione (ad esempio fogli di lavoro Google) per consumare l'evento ESC invece di lasciarlo passare.

  4. Invia un bug con Apple, perché le applicazioni erano qui per prime e Apple ha riutilizzato la chiave senza motivo.


3
# 1 Posso andare indietro. # 2 è quasi ironico al punto di ridere.
peelman,

Bene, il tuo chilometraggio può variare.
Tamara Wijsman,

Le funzioni che utilizzano di Escapesolito non sono disponibili dalla barra dei menu e Escapenon attivano le voci di menu, come è evidente dal "flash" mancante che evidenzia la voce della barra dei menu contenente la voce attivata.
Daniel Beck

# 4 Invia un bug con Apple, perché le applicazioni erano qui per prime, e Apple ha riproposto la chiave senza motivo.
dpk,

2

Non ho trovato una risposta per macOs Sierra e versioni successive. Ecco come ho risolto questo problema.

Come è già stato suggerito, ho rimappato ESC a ⌥ + ESC. Fa il lavoro e anche alcune altre funzioni assegnate al tasto funzionano. Sarai in grado di uscire dai video a schermo intero su alcuni siti, ma non interromperà il caricamento della pagina.

Per prima cosa devi installare Karabiner-elements per poter rimappare le chiavi

  1. Installa birra /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Installa botte brew tap caskroom/cask
  3. Installa elementi moschettone brew cask install karabiner-elements

Ho creato "Modifiche complesse" personalizzate appositamente per questo problema. Per installare questa modifica devi:

  1. Apri elementi moschettone e vai alla scheda "Modifiche complesse"
  2. Fai clic sul pulsante "Aggiungi regola", quindi su "Importa più regole da Internet"
  3. Modifica importazione "Non uscire dallo schermo intero quando si preme ESC in Safari"

1

Solo per approfondire un po 'di più la descrizione.

ESC viene utilizzato per annullare un trascinamento, esc viene utilizzato per annullare una finestra di dialogo, esc viene utilizzato durante un trascinamento per annullare uno spostamento / copia, esc viene utilizzato nel terminale in VI per annullare un comando di modifica

Quindi, ci sono numerosi usi. È una strana stranezza che Apple abbia questa modalità di annullamento a schermo intero quando ciò è possibile tramite ctrl-cmd-F e l'icona in alto a destra.

Questo sembra essere su un'app in base all'app. Mail e Safari e altri elementi di iLife usciranno a schermo intero. iTunes rimane a schermo intero.

Reeder ignora esc ai fini del controllo Full window e fa altre cose appropriate per il programma. Evernote non ha nemmeno un cmd-F o ctrl-cmd-F per il controllo della finestra, è l'icona e il tasto esc.

Non riesci a mappare esc da solo a qualche azione senza senso non dannosa nel pannello di controllo della tastiera.


1
In Safari, associare il tasto Esc a una funzione benigna non sembra essere una soluzione. Indipendentemente dall'azione, uscirà comunque dallo schermo intero.
peelman,

E ancora, premendo Escapeper annullare le finestre di dialogo non si esce dallo schermo intero .
Daniel Beck

Premendo Escapenel Terminale non si esce dallo schermo intero .
Daniel Beck

L'uso Escapeper annullare un trascinamento non esce dallo schermo intero . Hai mai provato prima di pubblicare queste affermazioni?
Daniel Beck

L'uso Escapein Reeder, ad es. Per tornare da una pagina Web dell'articolo all'elemento RSS , non esce dallo schermo intero . Se Escapenon viene utilizzato per tale azione, esce dallo schermo intero. Come in TUTTI GLI ALTRI PROGRAMMI .
Daniel Beck

1

Sembra che tu stia usando JQuery. In quel caso:

Ascolta gli eventi keydown (keypress e keyup non funzioneranno) sul documento con keyCode 27 e quando l'evento si attiva chiama e.preventDefault () .

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

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

});

Richiesta correlata su MSO , funziona senza jQuery.
Daniel Beck

1

Prova OptionEsc, che ha funzionato per me.


1
Non attiva neppure azioni associate al tasto Esc, ad esempio l'interruzione del caricamento della pagina Web Safari.
Daniel Beck

1

Questo è lo stesso della risposta @ aditya-srinivasan indirizzata a 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>

Vedi le risposte di @ aditya-srinivasan sul download https://pqrs.org/osx/karabiner/index.html.en


0

Ho deciso di essere escindirizzato a alt/option+ esc. Per la maggior parte, questo mi consente di uscire dai video di YouTube e, se si dispone di un account Squarespace, consente di accedere senza uscire dallo schermo intero.

  • Scarica e installa Karabiner .
  • Vai alla scheda "Misc & Uninstall" più a destra.
  • Fai clic sul pulsante "Apri private.xml".
  • Scarica il file private.xml da qui
  • Sostituisci il file "private.xml" originale nel Finder con il file scaricato. Ecco!

0

Usa BetterTouchTool o KeyboardMaestro o qualcosa di simile per rimappare Esca ⌥ + Esc.


0

Dopo una disperata ricerca della soluzione, invio Safari su un desktop virtuale separato con il controllo della missione. Ciò mitiga il problema ESC ed è di gran lunga la migliore approssimazione a una finestra Safari a schermo intero.

Spazio bonus se nascondi il Dock.


0

FACILE, l'ho trovato! KeyboardMaestro con 2 azioni

Quando si preme " ESC" Simulare premendo (invece): - " CMD+." - POI anche " ALT+ ESC"

Hai bisogno di entrambi, perché alcune app reagiscono solo a un ordine o all'altro (a volte a nessuno, quindi nulla di possibile) -> in questo modo la maggior parte delle app farà come un " ESC" nel loro contesto, ma non uscirai mai dal pieno Modalità schermo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.