Lion의 Safari와 같은 앱에서 이스케이프를 누를 때 전체 화면을 종료하지 마십시오


45

OS X Lion에서 ESC키를 누르면 전체 화면 모드가 종료됩니다. 불행히도, 특히 Safari ESC를 사용하는 경우 Javascript 키 입력 이벤트 처리와 같은 다른 기능에 사용됩니다. 이스케이프를 누를 때 Lion이 전체 화면 모드를 종료하고 싶지 않지만 해당 기능을 비활성화 할 수있는 곳을 찾을 수 없습니다.

(난 이미 / 종료를 전체 화면 모드를 입력하는 키보드 단축키를 알고 Cmd- Ctrl- F). ESC바로 가기 를 비활성화하고 싶습니다 . 인터넷 검색을 해왔지만 답변을 찾을 수 없습니다.


2
누르면 Esc이 전체 화면을 종료하지 않는 다른 효과 (예를 중단합니다 페이지 로딩)을 가지고 곳.
다니엘 벡

@Daniel : 그러나 그것은 반드시 다른 기능에는 적용되지 않습니다. 이것은 실제로 광범위한 OS X Lion 문제입니까? 실제로이 문제를 경험하는 사람이 왜 그렇게 적습니까?
Tamara Wijsman

1
@Tom 같은? 사용자는 말하지 않으며 당신도 마찬가지입니다. 예를 들어 이벤트 소비에 의해 사용되는 경우 전체 화면 모드 바로 가기를 재정의하는 모든 기능을 상상할 수 있지만 더 많은 예제가 없으면 확실하게 말할 수 없습니다.
Daniel Beck

10
실수로 Enter 키를 누르 십시오. ESC를 사용하여 모달 창을 닫는 웹 페이지가 많이 있습니다. 예 : ericmmartin.com/projects/simplemodal-demos 페이지에서 데모를 클릭하여 모달 창을 표시하십시오. ESC를 눌러 모달을 닫습니다. Safari는 모달 창이 있다는 것을 알고 있으며 전체 화면을 종료하지 않습니다. ESC를 다시 누르면 Safari가 전체 화면 모드를 종료합니다. 종종 ESC를 여러 번 눌러 무언가가 닫히도록합니다. 그럴 때 Safari가 전체 화면 모드를 종료하고 싶지 않습니다. 전체 화면을 종료하는 주요 명령이 이미 있습니다. ESC를 사용해서는 안됩니다.
Fadi

1
@dpk 데모 웹 페이지로 연결하십시오. 지금까지 언급 한 예제 중 어느 것도 테스트 할 때이 문제가 발생하지 않았으므로 문제를 재현하기위한 단계가 없다면 믿지 않습니다. 사실, 위의 Fadi의 예는 귀하의 의견과 모순됩니다.
Daniel Beck

답변:


6

웹 브라우저의 경우 특히 스택 교환 사이트Escape 와 같이 전체 화면을 닫지 않고 키를 사용해야하는 동작이있는 사이트 를 사용하는 경우 다음 사용자 스크립트를 사용할 수 있습니다.

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

브라우저에서이를 실행하려면 브라우저에 사용자 스크립트 엔진을 사용하십시오.

  • Safari 5의 경우 Safari 확장 프로그램 NinjaKit ( GitHub )를 사용할 수 있습니다 . 이것이 내가 사용하는 것입니다.
  • Chrome의 경우 NinjaKit 변형을 사용할 수 있습니다 .
  • OS X의 다른 Safari의 경우 SIMBL 플러그인 GreaseKit을 사용할 수 있습니다 . 그래도 최신 상태인지 확실하지 않습니다.

편의상, 나는 이것을 userscripts에 업로드했다 : userscripts.org/scripts/review/178642
coffeejunk

Mavericks 용 Safari에 설치 한 경험이 있습니까?
Holene

2
예, 이것은 작동하지 않습니다. 저는 요세미티 베타 5에서 Safari 8.0 (10600.1.25)을 사용하고 Safari에서 NinjaKit을 사용자 스크립트 엔진으로 사용하고 있습니다. 이스케이프 키는 전체 화면을 계속 깨고 주소 표시 줄에있을 때 Esc 키를 누를 때 발생합니다. (텍스트를 편집 할 때 유용한 기능이 몇 가지 있습니다 ...) GreaseKit이 2009 년으로 거슬러 올라가 더 이상 작동하지 않는다고 가정하고 빠른 Google은 더 이상 작동하지 않는다고 표시합니다. 어떤 아이디어? 좌절 그래서, 당연 크롬은 이동 - 1 차, 심지어 애플의 운영 체제에서 브라우저, ... 없습니다

@foregon 주소 표시 줄에있는 동안 페이지 이벤트 처리가 전혀 효과가 없을 것으로 기대합니다.
Daniel Beck

tampermonkey와 함께 작동하며 https : //를 지원하도록 스크립트 / 응답을 편집했습니다.
Toni

3

OS X 네이티브 대부분의 상황이 모두 동의 Escape하고 Cmd-.등 주변 요소를 드래그, 예를 들면, 파일 대화 상자, 사파리 로딩을 중단

물론이 목록에없는 것은 전체 화면 모드를 종료하는 것 입니다.


따라서이 상황을 완전히 피하기 위해 Cmd-.대신 프레스 를 배울 수 있습니다 Escape. 또는 당신은 당신을 위해 그것을 할 컴퓨터를 가르 칠 수 :는 적어도 다소 온건 한 해결책은 예를 들어, 사용하는 것입니다 버틀러키 입력 매핑 항목 EscapeCmd-.:

  • 버틀러 구성 페이지 열기
  • 숨겨진 컨테이너를 선택하고 +»스마트 아이템»키 입력을 클릭하십시오.
  • 탭 키를 눌러 Cmd-.이 항목을 활성화 할 때 생성 된 키 스트로크로 사용하기
  • 트리거 탭을 선택 핫 키 입력 필드 Enter 키를 누릅니다 Escape. 기본적으로 미쳤다는 경고는 무시하십시오.
  • 예를 들어 추가해야합니다 터미널을 예외 목록에 - 그것은 완전히 무시 Escape전체 화면을 떠나 있지만 누를 경우 Ctrl-.로 변환을 Ctrl-C!

어떤 상황에서는 상황이 잘못 될 수 있습니다. 일반적 으로 동등한 키보드 단축키에 해당 하는 키를 다시 매핑하는 것은 슬레지 해머 솔루션입니다. 예를 들어, Quick Look 은 처리하지 않으므로 파일 미리보기를 닫기 Cmd-.위해 다시 매핑 Escape됩니다. 을 사용하여 Finder에서 파일 이름 바꾸기를 더 이상 중단 할 수 없으며 Finder에서 Escape선택한 항목을 지울 수 없습니다.

제한된 테스트에서 나는 누르는 것이 Cmd-.실제로 바람직하지 않은 동작이 수행되는 상황을 발견하지 못했지만 이러한 동작도 존재한다는 것을 알고 있습니다.


물론, 당신은 이와 같은 모든 이스케이프 키 누르기를 완전히 무시할 수 있지만, 그것은 약간의 기능을 잃게 될 것입니다 ...
Daniel Beck

⌘ +. Opera에서 나를 위해 전체 화면 모드를 종료하므로 아무 문제가 없습니다 :(
Andy E

2

가능한 옵션은 다음과 같습니다.

  1. ESCOS 및 브라우저에서 예약되어 있으므로 다른 기능에 대한 대체 바로 가기를 설정하십시오 .

  2. 소스 및 어셈블러 기계 코드를 조정하여 ESCOS 및 브라우저 의 키 를 리 바인드하십시오 .

  3. ESC 이벤트가 발생하지 않도록 애플리케이션 개발자 (예 : Google 스프레드 시트)에 대해 버그 / 기능 요청을 제출하십시오.

  4. 애플이 처음 여기에 있었기 때문에 애플에 버그를 제기하고 애플은 이유없이 키를 용도 변경했다.


3
# 1 내가 뒤를 수있다. # 2는 웃음의 시점까지 거의 뺨에 혀입니다.
peelman

마일리지가 다를 수 있습니다.
Tamara Wijsman

사용 Escape하는 기능 은 일반적으로 메뉴 표시 줄에서 사용할 수 Escape없으며 트리거 된 항목이 포함 된 메뉴 표시 줄 항목을 강조 표시하는 누락 된 "플래시"에서 명백한 것처럼 메뉴 항목을 트리거하지 않습니다.
Daniel Beck

# 4 응용 프로그램이 여기에 있었고 Apple은 이유없이 키를 용도 변경했기 때문에 Apple에 버그를 신고하십시오.
dpk

2

macOs Sierra 이상에 대한 답변을 찾지 못했습니다. 이것이 내가이 문제를 해결 한 방법입니다.

이미 제안했듯이 ESC를 ⌥ + ESC로 다시 매핑했습니다. 그것은 일을하고 키에 할당 된 다른 기능조차도 작동합니다. 일부 사이트에서는 전체 화면 비디오를 종료 할 수 있지만 페이지로드가 중단되지는 않습니다.

먼저 키를 다시 매핑 하려면 Karabiner 요소 를 설치해야 합니다.

  1. 추출 설치 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. 통 설치 brew tap caskroom/cask
  3. karabiner- 요소 설치 brew cask install karabiner-elements

이 문제에 대한 사용자 지정 "복잡한 수정"을 만들었습니다. 이 수정을 설치하려면 다음을 수행해야합니다.

  1. karabiner 요소를 열고 "복잡한 수정"탭으로 이동
  2. "규칙 추가"버튼을 클릭 한 다음 "인터넷에서 더 많은 규칙 가져 오기"를 클릭하십시오.
  3. 가져 오기 수정 "Safari에서 ESC를 누를 때 전체 화면을 종료하지 마십시오"

1

설명을 조금 더 구체화하십시오.

ESC는 드래그를 취소하는 데, esc는 대화 상자를 취소하는 데, esc는 드래그 / 이동 / 복사를 취소하는 데 사용되며 esc는 VI의 터미널에서 편집 명령을 취소하는 데 사용됩니다

따라서 수많은 용도가 있습니다. ctrl-cmd-F와 오른쪽 상단 아이콘으로 가능할 때 Apple이 전체 화면 취소 모드를 사용하는 것은 이상한 일입니다.

앱별로 Mail 및 Safari 및 기타 iLife 항목이 전체 화면에서 종료됩니다. iTunes는 전체 화면으로 유지됩니다.

Reeder는 전체 창 제어를 위해 esc를 무시하고 프로그램에 다른 적절한 작업을 수행합니다. Evernote에는 창 제어를위한 cmd-F 또는 ctrl-cmd-F, 아이콘 및 esc 키도 없습니다.

키보드 제어판에서 esc 자체를 유해하지 않은 넌센스 액션에 매핑하는 것처럼 보이지 않습니다.


1
Safari에서 Esc 키를 양성 기능에 매핑하는 것은 해결책이 아닌 것 같습니다. 작업에 관계없이 여전히 전체 화면에서 제거됩니다.
peelman

다시 Escape대화 상자를 취소하려면을 누르면 전체 화면이 종료되지 않습니다 .
Daniel Beck

Escape터미널 에서을 눌러도 전체 화면이 종료되지 않습니다 .
Daniel Beck

Escape드래그를 취소하는 데 사용하면 전체 화면이 종료되지 않습니다 . 이러한 소유권 주장을 게시하기 전에 시도해 보셨습니까 ?
Daniel Beck

Escape예를 들어 Reeder에서 기사 웹 페이지에서 RSS 항목으로 돌아 가기를 사용하면 전체 화면이 종료되지 않습니다 . 경우 Escape이러한 조치를 사용하지 않는, 그것은 전체 화면을 종료합니다. 다른 모든 프로그램 에서와 같이 .
Daniel Beck

1

JQuery를 사용하고있는 것 같습니다. 이 경우 :

를 수신 를 keyDown 온 이벤트 (키 누름과의 keyup하지 않습니다 작업) 문서keyCode가 (27) , 및 이벤트가 발생이 호출 할 때 e.preventDefault을 () .

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

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

});

MSO에 대한 관련 요청은 jQuery없이 작동합니다.
Daniel Beck

1

OptionEsc나를 위해 일한 시도하십시오 .


1
이스케이프 키와 관련된 동작을 트리거하지 않습니다 (예 : Safari 웹 페이지 로딩 중단).
Daniel Beck

1

이것은 오페라를 타겟팅하는 @ aditya-srinivasan 답변과 동일합니다.

<?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>

다운로드 https://pqrs.org/osx/karabiner/index.html.en 에서 @ aditya-srinivasan 답변을 참조하십시오


0

나는 +로 esc라우팅 하기로 결정했습니다 . 대부분의 경우 YouTube 동영상에서 벗어날 수 있으며 Squarespace 계정이있는 경우 전체 화면을 벗어나지 않고 로그인 할 수 있습니다.alt/optionesc

  • Karabiner를 다운로드하여 설치하십시오 .
  • 가장 오른쪽의 "기타 및 제거"탭으로 이동하십시오.
  • "Open private.xml"이라는 버튼을 클릭하십시오.
  • 여기 에서 private.xml 파일을 다운로드 하십시오
  • Finder의 원래 "private.xml"파일을 다운로드 한 파일로 바꾸십시오. 짜잔!

0

BetterTouchTool 또는 KeyboardMaestro 또는 이와 유사한 것을 사용 Esc하여 ⌥ + 로 다시 매핑하십시오 Esc.


0

솔루션을 필사적으로 검색 한 후 Safari를 Mission 제어 기능이있는 별도의 가상 데스크탑으로 위탁했습니다. 이것은 ESC 문제를 완화 시키며 전체 화면 Safari 윈도우에 대한 가장 근사치입니다.

Dock을 숨기면 보너스 공간이됩니다.


0

쉽게 찾았습니다! 2 개의 액션이있는 KeyboardMaestro

" ESC"를 누를 때 누르는 것을 시뮬레이션합니다 (대신) :- " CMD+." -그런 다음 " ALT+ ESC"

어떤 앱은 하나의 순서에만 반응하기 때문에 (때로는 아무 것도, 아무 것도 가능하지 않음) 둘 다 필요합니다.>>이 방법으로 대부분의 앱은 ESC문맥에서 " " 처럼 되지만, 전체에서 빠져 나오지 는 않습니다. 스크린 모드

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.