Não saia da tela cheia ao pressionar escape em aplicativos como o Safari no Lion

45

No OS X Lion, pressionar a ESCtecla sai do modo de tela cheia. Infelizmente, e especialmente ao usar o Safari, ESCé usado para outras funções, como na manipulação de eventos de pressionamento de tecla Javascript. Não quero que o Lion saia do modo de tela cheia ao pressionar escape, mas não consigo encontrar um lugar para desativar essa funcionalidade.

Eu já conheço o atalho do teclado para entrar / sair do modo de tela cheia ( Cmd- Ctrl- F). Eu quero desativar o ESCatalho. Estive pesquisando no Google, mas não consigo encontrar respostas.

Fadi
fonte
2
Pressionar Esconde houver um efeito diferente (por exemplo, abortar o carregamento da página) não sai da tela cheia.
Daniel Beck
@ Daniel: Mas isso não se aplica necessariamente a outras funções. Este é realmente um problema generalizado do OS X Lion? Por que existem tão poucas pessoas que realmente estão passando por isso?
Tamara Wijsman
1
@ Tom como? O usuário não diz, e você também não. Eu poderia imaginar todas essas funções substituindo o atalho do modo de tela cheia quando usado, por exemplo, consumindo o evento, mas sem mais exemplos, não posso dizer com certeza.
Daniel Beck
10
Pressione Enter acidentalmente Existem muitas páginas da Web nas quais o ESC é usado para fechar uma janela modal, por exemplo: ericmmartin.com/projects/simplemodal-demos Clique em Demo na página para exibir uma janela modal. Pressione ESC para fechar o modal. O Safari está ciente de que existe uma janela modal e não sai da tela cheia. Pressione ESC novamente e o Safari sai do modo de tela cheia. Freqüentemente pressiono ESC várias vezes para garantir que algo seja fechado. Não quero que o Safari saia do modo de tela cheia quando isso acontecer. Já existe um comando de tecla para sair da tela cheia. ESC não deve ser usado.
Fadi
1
@dpk Link para uma página de demonstração, por favor. Como nenhum dos exemplos mencionados até agora tem esse problema quando os testei, não acredito nisso sem as etapas para reproduzir o problema. De fato, o exemplo de Fadi acima contradiz o seu comentário.
Daniel Beck

Respostas:

6

Para navegadores da Web, e especificamente para o uso de sites com comportamento que habilita ou requer o uso da Escapechave, sem impedir o fechamento da tela inteira (como sites do Stack Exchange ), você pode usar o seguinte script do usuário:

// ==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 executar isso nos navegadores, use qualquer mecanismo de script do usuário para o seu navegador.

  • Para o Safari 5, você pode usar a extensão NinjaKit do Safari (no GitHub ). É isso que eu uso.
  • Para o Chrome, você pode usar sua variante NinjaKit .
  • Para qualquer outro Safari no OS X, você pode usar o plug-in SIMBL GreaseKit . Não sei ao certo como está atualizado.
Daniel Beck
fonte
por conveniência, eu enviei isto a userscripts: userscripts.org/scripts/review/178642
coffeejunk
Alguma experiência ao instalar isso no Safari for Mavericks?
Holene
2
Sim, isso não funciona para mim, estou no Yosemite Beta 5 com o Safari 8.0 (10600.1.25) no momento em que escrevo e usando o NinjaKit no Safari como o mecanismo de scripts do usuário. A tecla Escape continua quebrando a tela cheia e, para mim, está acontecendo quando estou na barra de endereços e pressione Esc enquanto estiver nela. (ele tem algumas funções úteis ao editar o texto ...) Presumo que o GreaseKit não funcione mais, já que foi datado de 2009 e um rápido google parece indicar que não funciona mais. Alguma ideia? Tão frustrante, não admira que o Chrome é o go-to navegador principal, mesmo no próprio sistema operacional da Apple ...
@foregon Espero que a manipulação de eventos da página não tenha absolutamente nenhum efeito enquanto você estiver na barra de endereços.
Daniel Beck
trabalha com tampermonkey, editou o script / resposta para suportar https: // também.
Toni
3

A maioria das situações nativas do OS X aceita ambos Escapee Cmd-.aborta, por exemplo, diálogos de arquivos, carregamento do Safari, arrastando elementos, etc.

Notavelmente ausente dessa lista está, é claro, saindo do modo de tela cheia .


Então você pode aprender a pressionar em Cmd-.vez de Escapeevitar essa situação completamente. Ou você pode ensinar seu computador para fazer isso por você: Uma solução, pelo menos um pouco sensato é usar por exemplo Butler 's Teclas item para mapear Escapea Cmd-.:

  • Abra a página de configuração do Butler
  • Selecione qualquer contêiner, por exemplo, Oculto , clique em + »Item Inteligente» Teclas.
  • Na guia Teclas , pressione Cmd-.para usar isso como o pressionamento de tecla resultante ao ativar este item
  • Na guia Triggers , selecione o campo de entrada Hot Key e pressione Escape. Ignore o aviso que basicamente indica que você é louco.
  • Lembre-se de adicionar, por exemplo, o Terminal à lista de exceções - ele ignora totalmente Escapepara sair da tela cheia, mas pressionar Ctrl-.traduz para Ctrl-C!

Em algumas situações, as coisas se comportam mal. Remapear a tecla para o que normalmente é um atalho de teclado equivalente é uma solução para marretas. O Quick Look , por exemplo, não funciona Cmd-.(e, portanto, o remapeado Escapepara fechar as visualizações de arquivos); renomear arquivos no Finder não pode mais ser abortado usando Escape, nem seleções, por exemplo, no Finder podem ser limpas.

Em testes limitados, não encontrei nenhuma situação em que pressionar Cmd-.levasse a ações indesejáveis ​​sendo executadas, mas esteja ciente de que elas provavelmente também existem.

Daniel Beck
fonte
Claro, você pode ignorar completamente todas as teclas pressionadas escape como este, mas que vai perder um bom bocado de funcionalidade ...
Daniel Beck
⌘ +. sai do modo de tela cheia para mim no Opera, então não é possível :(
Andy E
2

Suas opções possíveis incluem:

  1. Defina atalhos alternativos para as outras funções, porque ESCé reservado pelo sistema operacional e pelo navegador.

  2. Ajuste o código da máquina de origem / montagem para religar a ESCchave do sistema operacional e do navegador.

  3. Arquive a solicitação de bug / recurso no desenvolvedor do aplicativo (ou seja, planilhas do Google) para consumir o evento ESC em vez de deixá-lo passar.

  4. Registre um bug na Apple, porque os aplicativos chegaram aqui primeiro, e a Apple propôs novamente a chave sem justa causa.

Tamara Wijsman
fonte
3
# 1 eu posso ficar para trás. O número 2 é quase direto ao ponto do riso.
peelman 7/09/11
Bem, sua milhagem pode variar.
Tamara Wijsman
As funções utilizadas Escapenão costumam estar disponíveis na barra de menus e Escapenão acionam itens de menu, como é óbvio no "flash" ausente, destacando o item da barra de menus que contém o item acionado.
Daniel Beck
# 4 Registre um bug na Apple, porque os aplicativos chegaram aqui primeiro, e a Apple redefiniu a chave sem motivo.
Dpk 5/11
2

Não encontrei uma resposta para o macOs Sierra e superior. Então foi assim que resolvi esse problema.

Como já foi sugerido, remapeei o ESC para ⌥ + ESC. Ele faz o trabalho e até algumas outras funções atribuídas à tecla funcionam. Você poderá sair de vídeos em tela cheia em alguns sites, mas isso não interromperá o carregamento da página.

Primeiro você precisa instalar o Karabiner-elements para poder remapear as chaves

  1. Instalar cerveja /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Instalar barril brew tap caskroom/cask
  3. Instale os elementos do mosquetão brew cask install karabiner-elements

Eu criei a "modificação complexa" personalizada especificamente para esse problema. Para instalar esta modificação, você deve:

  1. Abra os elementos do mosquetão e vá para a guia "Modificações complexas"
  2. Clique no botão "Adicionar regra" e depois em "Importar mais regras da Internet"
  3. Modificação de importação "Não saia da tela cheia ao pressionar ESC no Safari"
S3RK
fonte
1

Apenas para detalhar um pouco mais a descrição.

ESC é usado para cancelar um arrasto, esc é usado para cancelar uma caixa de diálogo, esc é usado durante um arrasto para cancelar um movimento / cópia, esc é usado no terminal no VI para cancelar um comando de edição

Portanto, existem inúmeros usos. É uma estranheza estranha que a Apple tenha esse modo de cancelamento em tela cheia quando isso é possível com ctrl-cmd-F e o ícone superior direito.

Parece que, em um aplicativo por aplicativo, o Mail, o Safari e outros itens do iLife sairão da tela cheia. O iTunes permanece em tela cheia.

Reeder ignora o esc para fins de controle de janela completa e faz outras coisas apropriadas para o programa. O Evernote nem sequer possui um cmd-F ou ctrl-cmd-F para controle de janela, é o ícone e a tecla esc.

Parece que você não consegue mapear esc sozinho para alguma ação sem sentido não prejudicial no painel de controle do teclado.

AJACs
fonte
1
No Safari, mapear a tecla Escape para uma função benigna não parece ser uma solução. Independentemente da ação, ela ainda será excluída da tela cheia.
peelman 7/09/11
E, novamente, pressionar Escapepara cancelar as caixas de diálogo não sai da tela cheia .
Daniel Beck
Pressionar o EscapeTerminal não sai da tela cheia .
Daniel Beck
Usar Escapepara cancelar um arrasto não sai da tela cheia . Você já tentou isso antes de postar essas reivindicações?
Daniel Beck
Usar Escapeno Reeder para, por exemplo, retornar de uma página da Web de artigo para o item RSS não sai da tela cheia . Se Escapenão for usado para tal ação, ele sai da tela cheia. Como em TODOS OS OUTROS PROGRAMAS .
Daniel Beck
1

Parece que você está usando JQuery. Nesse caso:

Ouça keydown eventos (keypress e keyup não funcionará) sobre o documento com keyCode 27 , e quando o evento é acionado chamar e.preventDefault () .

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

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

});
Evan Sharp
fonte
Solicitação relacionada no MSO , funciona sem jQuery.
Daniel Beck
1

Tente OptionEsc, o que funcionou para mim.

Michael
fonte
1
Também não aciona ações associadas à tecla Escape, por exemplo, abortando o carregamento da página da web do Safari.
Daniel Beck
1

É o mesmo que a resposta @ aditya-srinivasan direcionada ao 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>

Veja as respostas @ aditya-srinivasan no download https://pqrs.org/osx/karabiner/index.html.en

ctrl-alt-dileep
fonte
0

Eu decidi ter escroteado para alt/option+ esc. Na maioria das vezes, isso me permite sair dos vídeos do YouTube e, se você tiver uma conta do Squarespace, permite que você faça o login sem sair da tela cheia.

  • Baixe e instale o Karabiner .
  • Vá para a guia mais à direita "Misc e desinstalar".
  • Clique no botão que diz "Abrir private.xml".
  • Faça o download do arquivo private.xml aqui
  • Substitua o arquivo "private.xml" original no Finder pelo arquivo baixado. Voila!
Aditya Srinivasan
fonte
0

Use BetterTouchTool ou KeyboardMaestro ou algo semelhante para remapear Escpara ⌥ + Esc.

user2664470
fonte
0

Depois de alguma pesquisa desesperada pela solução, envio o Safari para um desktop virtual separado com controle de missão. Isso atenua o problema do ESC e é de longe a melhor aproximação para uma janela do Safari em tela cheia.

Espaço bônus se você esconder o Dock.

Fish Monitor
fonte
0

FÁCIL, achei! KeyboardMaestro com 2 ações

Ao pressionar " ESC" Simule pressionar (em vez disso): - " CMD+." - ENTÃO também " ALT+ ESC"

Você precisa de ambos, porque algum aplicativo reage apenas a um pedido ou a outro (às vezes a nenhum, e nada é possível) -> dessa maneira, a maioria dos aplicativos funciona como um " ESC" em seu contexto, mas você nunca será excluído por completo. modo de tela

user2755736
fonte