46

В OS X Lion нажатие клавиши ESC выходит из полноэкранного режима. К сожалению, и особенно при использовании Safari, ESC используется для других функций, таких как обработка событий нажатия клавиш Javascript. Я не хочу, чтобы Lion выходил из полноэкранного режима при нажатии клавиши escape, но я не могу найти место, чтобы отключить эту функцию.

Я уже знаю сочетание клавиш для входа / выхода из полноэкранного режима (Cmd - Ctrl - F). Я хочу отключить ярлык ESC . Я гуглил, но не могу найти ответы.

12 ответов12

6

Для веб-браузеров и, в частности, для использования сайтов с поведением, которое включает или требует использования клавиши Escape , не препятствуя закрытию полноэкранного режима (например, сайты Stack Exchange), вы можете использовать следующий пользовательский сценарий:

// ==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 вы можете использовать расширение NinjaKit для Safari (на GitHub). Это то, что я использую.
  • Для Chrome вы можете использовать его вариант NinjaKit.
  • Для любого другого Safari в OS X вы можете использовать плагин SIMBL GreaseKit. Не уверен, насколько он актуален.
3

Большинство ситуаций, родных для OS X, принимают Escape и Cmd-. прервать, например, диалоги файлов, загрузку Safari, перетаскивание элементов и т. д.

Примечательно, что в этом списке отсутствует, конечно, выход из полноэкранного режима.


Так что вы можете просто научиться нажимать Cmd-. вместо Escape чтобы избежать этой ситуации вообще. Или вы можете научить свой компьютер делать это за вас: по крайней мере, несколько вменяемое решение - использовать, например, пункт « Нажатие клавиш Батлера », чтобы отобразить Escape на Cmd-.:

  • Откройте страницу конфигурации Батлера
  • Выберите любой контейнер, например, Скрытый, нажмите + »Смарт-элемент» Клавиши
  • На вкладке « Ключи » нажмите Cmd-. использовать это как результирующее нажатие клавиши при активации этого элемента
  • На вкладке Triggers выберите поле ввода Hot Key и нажмите Escape . Не обращайте внимания на предупреждение, в котором говорится, что вы безумны.
  • Не забудьте добавить, например, Terminal в список исключений - он полностью игнорирует Escape для выхода из полноэкранного режима, но нажимает Ctrl-. переводит в Ctrl-C !

В некоторых ситуациях все будет плохо себя вести. Переназначение клавиши на то, что обычно является эквивалентным сочетанием клавиш, является решением кувалды. Quick Look, например, не обрабатывает Cmd-. (и, следовательно, переназначенный Escape для закрытия предварительного просмотра файла); переименование файлов в Finder больше не может быть прервано с помощью Escape , а выбор, например, в Finder, не может быть очищен.

В ограниченном тестировании я не нашел ситуации, когда Cmd-. фактически приводит к нежелательным действиям, но имейте в виду, что они, вероятно, также существуют.

2

Я не нашел ответа для macOs Sierra и выше. Вот так я решил эту проблему.

Как уже было предложено, я переназначил ESC на ⌥ + ESC. Это делает работу и даже некоторые другие функции, назначенные на клавишу работает. Вы сможете выйти из полноэкранного видео на некоторых сайтах, но это не прервет загрузку страницы.

Для начала нужно установить элементы Karabiner, чтобы можно было переназначить ключи.

  1. Установите brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Установите бочковый brew tap caskroom/cask
  3. Устанавливаем карабин-элементы в brew cask install karabiner-elements Устанавливаем карабинер-элементы

Я специально создал "Сложную модификацию" специально для этой проблемы. Для установки этой модификации вам необходимо:

  1. Откройте карабин-элементы и перейдите на вкладку "Сложные модификации"
  2. Нажмите кнопку "Добавить правило", затем "Импортировать дополнительные правила из Интернета".
  3. Импортируйте модификацию "Не выходить из полноэкранного режима при нажатии ESC в Safari"
2

Ваши возможные варианты включают в себя:

  1. Установите альтернативные сочетания клавиш для других функций, потому что ESC зарезервированы ОС и браузером.

  2. Настройте машинный код источника / ассемблера для повторного связывания ключа ESC ОС и браузера.

  3. Подайте запрос об ошибке / функции против разработчика приложения (т.е. электронных таблиц Google), чтобы использовать событие ESC вместо того, чтобы пропустить его.

  4. Отправьте сообщение об ошибке в Apple, потому что приложения были здесь первыми, и Apple изменила назначение ключа без причины.

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    
    }

});
1

Это то же самое, что и ответ @ aditya-srinivasan, нацеленный на 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>

Смотрите @ aditya-srinivasan ответы на загрузку https://pqrs.org/osx/karabiner/index.html.en

1

Просто, чтобы конкретизировать описание немного больше.

ESC используется для отмены перетаскивания, esc используется для отмены диалогового окна, esc используется во время перетаскивания для отмены перемещения / копирования, esc используется в терминале в VI для отмены команды редактирования

Итак, есть множество применений. Странно странно, что у Apple есть режим отмены полноэкранного режима, когда это возможно с помощью ctrl-cmd-F и правого верхнего значка.

Похоже, что это происходит в зависимости от приложения Mail, Safari и другие элементы iLife выходят из полноэкранного режима. iTunes остается на весь экран.

Ридер игнорирует esc с целью полного управления окнами и выполняет другие соответствующие действия для программы. Evernote даже не имеет cmd-F или ctrl-cmd-F для управления окном, его значок и клавишу esc.

Похоже, вы не можете сопоставить esc самому себе с каким-либо безобидным бессмысленным действием на панели управления клавиатуры.

1

Попробуйте вариант Esc, который работал для меня.

0

После некоторого отчаянного поиска решения я отправляю Safari на отдельный виртуальный рабочий стол с контролем миссии. Это смягчает проблему ESC и является наилучшим приближением к полноэкранному окну Safari.

Дополнительное пространство, если вы прячете док.

0

Используйте BetterTouchTool или KeyboardMaestro или что-то похожее на переназначение Esc на ⌥ + Esc.

0

ЛЕГКО, нашел это! Клавиатура Маэстро с 2 действиями

При нажатии « ESC » имитировать нажатие (вместо):- « CMD+». - ТОГДА также " ALT+ESC "

Вам нужно и то и другое, потому что некоторые приложения реагируют только на один или другой заказ (иногда ни на один, тогда ничего не получается) -> таким образом, большинство приложений будут работать как « ESC » в своем контексте, но вы никогда не выйдете из полноэкранный режим

0

Я решил перевести esc на alt/option + esc. По большей части это позволяет мне выходить из видео YouTube, а если у вас есть учетная запись Squarespace, она позволяет вам входить в систему без выхода из полноэкранного режима.

  • Скачайте и установите Карабинер.
  • Перейдите на самую правую вкладку «Разное и удаление».
  • Нажмите на кнопку с надписью «Открыть private.xml».
  • Загрузите файл private.xml отсюда
  • Замените оригинальный файл "private.xml" в Finder на загруженный файл. Вуаля!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .