No salgas de la pantalla completa al presionar escapar en aplicaciones como Safari en Lion

45

En OS X Lion, presionar la ESCtecla sale del modo de pantalla completa. Desafortunadamente, y especialmente cuando se usa Safari, ESCse usa para otras funciones, como en el manejo de eventos de pulsación de teclas Javascript. No quiero que Lion salga del modo de pantalla completa al presionar escape, pero no puedo encontrar un lugar para desactivar esa funcionalidad.

Ya conozco el atajo de teclado para entrar / salir del modo de pantalla completa ( Cmd- Ctrl- F). Quiero deshabilitar el ESCacceso directo. He estado buscando en Google, pero no puedo encontrar ninguna respuesta.

Fadi
fuente
2
Al presionar Escdonde tiene un efecto diferente (por ejemplo, cancelar la carga de la página) no sale de la pantalla completa.
Daniel Beck
@Daniel: Pero eso no se aplica necesariamente a ninguna otra función. ¿Es esto realmente un problema extendido de OS X Lion? ¿Por qué hay tan pocas personas que realmente están experimentando esto?
Tamara Wijsman
1
@Tom Tal como? El usuario no dice, y tú tampoco. Me imagino que todas esas funciones anulan el acceso directo del modo de pantalla completa cuando se usa, por ejemplo, consumiendo el evento, pero sin más ejemplos, no puedo decir con certeza.
Daniel Beck
10
Accidentalmente presione enter Hay muchas páginas web donde ESC se usa para cerrar una ventana modal, por ejemplo: ericmmartin.com/projects/simplemodal-demos Haga clic en Demo en la página para mostrar una ventana modal. Presione ESC para cerrar el modal. Safari es consciente de que hay una ventana modal y no sale de la pantalla completa. Presione ESC nuevamente y Safari saldrá del modo de pantalla completa. A menudo presiono ESC varias veces para asegurar que algo se cierre. No quiero que Safari salga del modo de pantalla completa cuando eso suceda. Ya hay un comando de teclado para salir de pantalla completa. ESC no debe usarse.
Fadi
1
@dpk Enlace a una página web de demostración, por favor. Como ninguno de los ejemplos mencionados hasta ahora tiene este problema cuando los probé, no lo creo sin los pasos para reproducirlo. De hecho, el ejemplo anterior de Fadi contradice su comentario.
Daniel Beck

Respuestas:

6

Para los navegadores web, y específicamente para el uso de sitios con comportamiento que permite o requiere el uso de la Escapeclave sin impedir el cierre de la pantalla completa (como los sitios de Stack Exchange ), puede usar el siguiente script de usuario:

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

Para ejecutar esto en los navegadores, use cualquier motor de script de usuario para su navegador.

  • Para Safari 5, puede usar la extensión Safari NinjaKit (en GitHub ). Esto es lo que yo uso.
  • Para Chrome, puede usar su variante NinjaKit .
  • Para cualquier otro Safari en OS X, puede usar el complemento SIMBL GreaseKit . Sin embargo, no estoy seguro de qué tan actualizado está.
Daniel Beck
fuente
Por conveniencia, he subido esto a userscripts: userscripts.org/scripts/review/178642
coffeejunk
¿Alguna experiencia instalando esto en Safari para Mavericks?
Holene
2
Sí, esto no funciona para mí, estoy en Yosemite Beta 5 con Safari 8.0 (10600.1.25) en el momento de escribir, y estoy usando NinjaKit en Safari como motor de script de usuario. La tecla Escape sigue rompiendo la pantalla completa y para mí sucede cuando estoy en la barra de direcciones y presiono Esc mientras está en ella. (tiene algunas funciones útiles al editar texto en él ...) Supongo que GreaseKit ya no funciona dado que está fechado en 2009 y un rápido google parece indicar que ya no funciona. ¿Algunas ideas? Tan frustrante, no es de extrañar que Chrome sea el navegador principal, incluso en el propio sistema operativo de Apple ...
@foregon Espero que el manejo de eventos de la página no tenga absolutamente ningún efecto mientras estés en la barra de direcciones.
Daniel Beck
funciona con tampermonkey, editó el script / respuesta para admitir https: // también.
Toni
3

La mayoría de las situaciones nativas de OS X aceptan ambas Escapey Cmd-.abortar, por ejemplo, cuadros de diálogo de archivos, carga de Safari, arrastrar elementos, etc.

Notablemente ausente de esa lista es, por supuesto, salir del modo de pantalla completa .


Así que podría aprender a presionar en Cmd-.lugar de Escapeevitar esta situación por completo. O bien, puede enseñar a su equipo que lo haga por usted: Una solución de al menos un poco cuerdo es utilizar por ejemplo Mayordomo 's Pulsaciones elemento para mapear Escapea Cmd-.:

  • Abrir la página de configuración de Butler
  • Seleccione cualquier contenedor, por ejemplo, Oculto , haga clic en + »Elemento inteligente» Pulsaciones de teclas
  • En la pestaña Teclas , presione Cmd-.para usar esto como la tecla resultante al activar este elemento
  • En la pestaña Disparadores , seleccione el campo de entrada Tecla de acceso rápido y presione Escape. Ignora la advertencia que básicamente dice que estás loco.
  • Recuerde agregar, por ejemplo, Terminal a la lista de excepciones: ignora totalmente Escapedejar la pantalla completa, ¡pero presionar se Ctrl-.traduce en Ctrl-C!

En algunas situaciones, las cosas se comportarán mal. Reasignar la tecla a lo que generalmente es un método abreviado de teclado equivalente es una solución de mazo. Quick Look , por ejemplo, no maneja Cmd-.(y, por lo tanto, se reasigna Escapepara cerrar vistas previas de archivos); el cambio de nombre de los archivos en Finder ya no se puede cancelar utilizando Escape, ni las selecciones, por ejemplo, en Finder se borrarán.

En pruebas limitadas, no encontré ninguna situación en la que presionar Cmd-.realmente conduzca a acciones indeseables, pero tenga en cuenta que probablemente también existan.

Daniel Beck
fuente
Por supuesto, podría ignorar por completo todas las pulsaciones de teclas de Escape como esta, pero eso perderá un poco de funcionalidad ...
Daniel Beck
⌘ +. sale del modo de pantalla completa para mí en Opera, así que esto es un no ir :(
Andy E
2

Sus posibles opciones incluyen:

  1. Establezca accesos directos alternativos para las otras funciones, ya que ESCestá reservado por el sistema operativo y el navegador.

  2. Ajuste el código de la máquina fuente / ensamblador para volver a vincular la ESCclave del sistema operativo y el navegador.

  3. Presente la solicitud de error / función contra el desarrollador de la aplicación (es decir, las hojas de cálculo de Google) para consumir el evento ESC en lugar de dejarlo pasar.

  4. Presente un error con Apple, porque las aplicaciones estuvieron aquí primero, y Apple volvió a utilizar la clave sin causa.

Tamara Wijsman
fuente
3
# 1 puedo quedarme atrás. # 2 es casi irónico hasta el punto de reír.
peelman
Bueno, su kilometraje puede variar.
Tamara Wijsman
Las funciones que se usan Escapegeneralmente no están disponibles en la barra de menú, y Escapeno activa elementos del menú como es obvio por el "flash" que falta al resaltar el elemento de la barra de menú que contiene el elemento activado.
Daniel Beck
# 4 Presente un error con Apple, porque las aplicaciones estuvieron aquí primero, y Apple volvió a utilizar la clave sin causa.
dpk
2

No encontré una respuesta para macOs Sierra y superior. Así es como resolví este problema.

Como ya se ha sugerido, he reasignado ESC a ⌥ + ESC. Hace el trabajo e incluso algunas otras funciones asignadas a la tecla funcionan. Podrá salir de videos de pantalla completa en algunos sitios, pero no abortará la carga de la página.

Primero debe instalar Karabiner-elements para poder reasignar claves

  1. Instalar cerveza /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Instalar barril brew tap caskroom/cask
  3. Instalar elementos de mosquetón brew cask install karabiner-elements

He creado "Modificación compleja" personalizada específicamente para este problema. Para instalar esta modificación tienes que:

  1. Abra karabiner-elements y vaya a la pestaña "Modificaciones complejas"
  2. Haga clic en el botón "Agregar regla", luego "Importar más reglas de Internet"
  3. Modificación de importación "No salga de la pantalla completa al presionar ESC en Safari"
S3RK
fuente
1

Solo para desarrollar la descripción un poco más.

ESC se usa para cancelar un arrastre, esc se usa para cancelar un cuadro de diálogo, esc se usa durante un arrastre para cancelar un movimiento / copia, esc se usa en el terminal en VI para cancelar un comando de edición

Entonces, hay numerosos usos. Es una rareza extraña que Apple tenga este modo de pantalla completa de cancelación cuando sea posible mediante ctrl-cmd-F y el ícono superior derecho.

Esto parece ser aplicación por aplicación. Mail y Safari y otros elementos de iLife saldrán de la pantalla completa. iTunes permanece en pantalla completa.

Reeder ignora el esc para el control de la ventana completa y hace otras cosas apropiadas para el programa. Evernote ni siquiera tiene un cmd-F o ctrl-cmd-F para el control de ventanas, es el ícono y la tecla esc.

Parece que no puede asignar esc por sí solo a alguna acción sin sentido no dañina en el panel de control del teclado.

AJAC
fuente
1
En Safari, asignar la tecla Escape a una función benigna no parece ser una solución. Independientemente de la acción, seguirá saliendo de la pantalla completa.
peelman
Y nuevamente, presionar Escapepara cancelar los cuadros de diálogo no sale de la pantalla completa .
Daniel Beck
Al presionar Escapeen la Terminal no sale la pantalla completa .
Daniel Beck
El uso Escapepara cancelar un arrastre no sale de la pantalla completa . ¿Lo has probado antes de publicar estas afirmaciones?
Daniel Beck
El uso Escapede Reeder para, por ejemplo, regresar de una página web de artículos al elemento RSS no sale de la pantalla completa . Si Escapeno se usa para tal acción, sale de la pantalla completa. Como en TODOS LOS OTROS PROGRAMAS .
Daniel Beck
1

Parece que estás usando JQuery. En ese caso:

Escuche los eventos de keydown (la pulsación de teclas y el keyup no funcionarán) en el documento con keyCode 27 , y cuando se active el evento, llame a e.preventDefault () .

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

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

});
Evan Sharp
fuente
Solicitud relacionada en MSO , funciona sin jQuery.
Daniel Beck
1

Intenta OptionEsc, lo que funcionó para mí.

Miguel
fuente
1
Tampoco desencadena acciones asociadas con la tecla Escape, por ejemplo, abortar la carga de la página web de Safari.
Daniel Beck
1

Esto es lo mismo que la respuesta @ aditya-srinivasan dirigida 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>

Vea las respuestas de @ aditya-srinivasan en la descarga https://pqrs.org/osx/karabiner/index.html.en

ctrl-alt-dileep
fuente
0

Decidí han escencaminado a alt/option+ esc. En su mayor parte, esto me permite salir de los videos de YouTube, y si tiene una cuenta de Squarespace, le permite iniciar sesión sin salir de la pantalla completa.

  • Descargar e instalar Mosquetón .
  • Vaya a la pestaña "Misc & Uninstall" más a la derecha.
  • Haga clic en el botón que dice "Abrir private.xml".
  • Descargue el archivo private.xml desde aquí
  • Reemplace el archivo original "private.xml" en Finder con el archivo descargado. Voila!
Aditya Srinivasan
fuente
0

Use BetterTouchTool o KeyboardMaestro o algo similar para reasignar Esca ⌥ + Esc.

usuario2664470
fuente
0

Después de una búsqueda desesperada de la solución, consigno Safari a un escritorio virtual separado con control Mission. Esto mitiga el problema de ESC y es, con mucho, la mejor aproximación a una ventana de Safari a pantalla completa.

Espacio extra si ocultas el Dock.

Monitor de pescado
fuente
0

¡FÁCIL, lo encontré! KeyboardMaestro con 2 acciones

Al presionar " ESC" Simular presionar (en su lugar): - " CMD+". - ENTONCES también " ALT+ ESC"

Necesita ambos, porque algunas aplicaciones reaccionan solo a un pedido u otro (a veces a ninguno, luego nada posible) -> de esta manera la mayoría de las aplicaciones harán un " ESC" en su contexto, pero nunca saldrá del completo modo de pantalla

usuario2755736
fuente