Не виходьте на весь екран, натискаючи клавішу Escape у додатках, таких як Safari on Lion


45

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

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


2
Якщо натиснути Escтам, де він має інший ефект (наприклад, переривання завантаження сторінки), не виходить з повного екрану.
Даніель Бек

@Daniel: Але це не обов'язково стосується будь-яких інших функцій. Це насправді широко розповсюджена проблема OS X Lion? Чому так мало людей, які насправді переживають це?
Тамара Війсман

1
@Tom Такі як? Користувач не каже, а також ви. Я міг би уявити всі ті функції, що перекривають ярлик у повноекранному режимі, коли він використовується, наприклад, споживаючи подію, але без додаткових прикладів я не можу сказати точно.
Даніель Бек

10
Випадково натисніть Enter. Існує багато веб-сторінок, на яких ESC використовується для закриття модального вікна, наприклад: ericmmartin.com/projects/simplemodal-demos Натисніть Демо на сторінці, щоб відобразити модальне вікно. Натисніть ESC, щоб закрити модальний режим. Safari знає, що є модальне вікно, і він не виходить на весь екран. Знову натисніть ESC, і Safari вийде з режиму в повноекранному режимі. Часто натискаю ESC кілька разів, щоб переконатися, що щось закривається. Я не хочу, щоб Safari виходив із повноекранного режиму, коли це станеться. Вже є ключова команда для виходу на весь екран. ESC не слід використовувати.
Фаді

1
@dpk Посилання на демонстраційну веб-сторінку, будь ласка. Оскільки жоден із згаданих прикладів до цих пір не має цього питання, коли я їх перевіряв, я не вірю, що без кроків щодо відтворення проблеми. Насправді приклад Фаді вище суперечить вашому коментарю.
Даніель Бек

Відповіді:


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

для зручності я завантажив це в сценарії користувачів: userscripts.org/scripts/review/178642
coffeejunk

Будь-який досвід встановлення цього на Safari для Mavericks?
Холен

2
Так, це не працює для мене, я перебуваю в Yosemite Beta 5 з Safari 8.0 (10600.1.25) на момент написання і використовую NinjaKit в Safari як двигун Usercripts. Клавіша Escape продовжує ламати повний екран, і для мене це відбувається, коли я в адресному рядку і натискаю клавішу Esc, перебуваючи в ньому. (У нього є кілька корисних функцій під час редагування тексту в ньому ...) Я припускаю, що GreaseKit більше не працює, оскільки датується 2009 роком, і швидкий google, схоже, вказує, що він більше не працює. Будь-які ідеї? Так неприємно, недарма Chrome - це головний браузер, навіть у власній операційній системі Apple ...

@foregon Я очікую, що обробка подій сторінки не матиме абсолютно ніякого ефекту, коли ви знаходитесь в адресному рядку.
Даніель Бек

працює з tampermonkey, редагував сценарій / відповідь для підтримки https: //.
Тоні

3

У більшості ситуацій, що є вродженими для OS X, приймають Escapeі Cmd-.припиняють, наприклад, діалоги файлів, завантаження Safari, перетягування елементів навколо тощо.

Помітно відсутній у цьому списку, звичайно, вихід у повноекранний режим .


Тож ви могли просто навчитися натискати Cmd-.замість того, Escapeщоб взагалі уникнути цієї ситуації. Або ви можете навчити свій комп'ютер , щоб зробити це для вас: по крайней мере , кількох розсудливої рішення використовувати , наприклад , Butler «s Кнопку пункт на карту , Escapeщоб Cmd-.:

  • Відкрийте сторінку конфігурації Батлера
  • Виберіть будь-який контейнер, наприклад прихований , натисніть + »Розумний елемент» натискання клавіш
  • На вкладці Клавіші натисніть, Cmd-.щоб використовувати це як результат натискання клавіші при активації цього елемента
  • На вкладці Тригери виберіть поле введення гарячої клавіші та натисніть Escape. Ігноруйте попередження, яке, в основному, стверджує, що ви божевільні.
  • Не забудьте додати, наприклад, термінал до списку винятків - він повністю ігнорує Escapeвихід із повного екрану, але натискання Ctrl-.перекладається на Ctrl-C!

У деяких ситуаціях речі погано поводяться. Залишити ключ до того, що зазвичай є еквівалентним ярликом клавіатури, - це рішення кувалди. Наприклад, Швидкий перегляд не обробляє Cmd-.(і тому перероблений Escapeдля закриття попереднього перегляду файлів); перейменування файлів у Finder більше не може бути скасовано за допомогою Escape, а також виділення, наприклад, у Finder, не слід видаляти.

В рамках обмеженого тестування я не виявив жодної ситуації, коли натискання Cmd-.насправді призводить до небажаних дій, але майте на увазі, що вони, ймовірно, також існують.


Звичайно, ви можете повністю проігнорувати всі клавіші Escape на кшталт цього, але це втратить непоганий функціонал ...
Даніель Бек

⌘ +. для мене виходить повноекранний режим в Опері, тому це не заход :(
Енді Е

2

Ваші можливі варіанти включають:

  1. Встановіть альтернативні ярлики для інших функцій, оскільки ESCце зарезервовано ОС та Браузер.

  2. Відрегулюйте вихідний / асемблерний машинний код, щоб відновити ESCключ ОС та браузера.

  3. Надішліть запит на помилку / функцію проти розробника програми (тобто електронних таблиць Google), щоб споживати події ESC, а не пропускати його.

  4. Подайте помилку в Apple, тому що додатки тут були першими, і Apple повторно призначила ключ без причини.


3
№1 Я можу відстати. №2 майже до язика до сміху.
peelman

Що ж, ваш пробіг може відрізнятися.
Тамара Війсман

Функції, які використовуються Escape, зазвичай не доступні на панелі меню, і Escapeне запускають пункти меню, як це очевидно з відсутнього "спалаху", що виділяє пункт рядка меню, що містить запусканий елемент.
Даніель Бек

№4 Надішліть помилку в Apple, тому що програми були тут першими, і Apple повторно призначила ключ без причини.
dpk

2

Я не знайшов відповіді для macOs Сьєрра та вище. Ось так я вирішив це питання.

Як уже було запропоновано, я перевстановив ESC на ⌥ + ESC. Це виконує роботу і навіть деякі інші функції, призначені ключу, працюють. Ви зможете вийти з відео на повноекранному екрані на деяких сайтах, але завантаження сторінки не буде перервано.

Спочатку вам потрібно встановити Karabiner-елементи, щоб мати можливість перевпорядкувати ключі

  1. Встановіть варити /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"

1

Просто, щоб детальніше описати опис.

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

Отже, є численні використання. Дивна дивність, що Apple має цей режим скасування в повноекранному режимі, коли це можливо за допомогою ctrl-cmd-F та верхнього правого значка.

Здається, це відбувається через додаток на основі програми Mail і Safari та інші елементи iLife вийдуть на весь екран. iTunes залишається на весь екран.

Ридер ігнорує esc з метою повного керування вікном та робить інші відповідні речі для програми. У Evernote немає навіть cmd-F або ctrl-cmd-F для керування вікном, його піктограмою та клавішею esc.

Ви не можете здати, що esc самостійно зіставляє esc з нешкідливими нісенітницями на панелі управління клавіатури.


1
У Safari відображення клавіші Escape на доброякісну функцію не здається рішенням. Незалежно від дії, він все одно випаде з повного екрану.
peelman

І знову: натискання Escapeдля скасування діалогових вікон не виходить із повного екрану .
Даніель Бек

Натискання Escapeв Терміналі не виходить з повного екрану .
Даніель Бек

Використання Escapeдля скасування перетягування не виходить із повного екрану . Ви навіть пробували це, перш ніж розміщувати ці претензії?
Даніель Бек

Використання Escapeв Reeder, наприклад, повернення з веб-сторінки статті до пункту RSS не закриває весь екран . Якщо Escapeне використовується для такої дії, вона закривається на весь екран. Як і у ВСІХ ІНШИХ ПРОГРАМ .
Даніель Бек

1

Схоже, ви використовуєте JQuery. В такому разі:

Слухайте події клавіатури (натискання клавіш і клавіатура не працюватимуть) в документі з keyCode 27 , і коли подія викликає виклик e.preventDefault () .

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

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

});


1

Спробуйте OptionEsc, що працювало на мене.


1
Він також не запускає дії, пов’язані з клавішею Escape, наприклад скасування завантаження веб-сторінки Safari.
Даніель Бек

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


0

Я вирішив escпереправитись до alt/option+ esc. Здебільшого це дозволяє мені виходити з YouTube, а якщо у вас є обліковий запис Squarespace, він дозволяє вам увійти, не виходячи з повного екрану.

  • Завантажте та встановіть Karabiner .
  • Перейдіть до самої правої вкладки "Різне та видалення".
  • Клацніть на кнопці з написом "Відкрити приватний.xml".
  • Завантажте файл private.xml звідси
  • Замініть оригінальний файл "private.xml" у Finder завантаженим файлом. Вуаля!


0

Після відчайдушного пошуку рішення, я відправлю Safari на окремий віртуальний робочий стіл з контролем Mission. Це пом'якшує проблему ESC і, безумовно, є найкращим наближенням до повноекранного вікна Safari.

Бонусний простір, якщо ви ховаєте док.


0

ЛЕГКО, знайшов! KeyboardMaestro з 2 діями

При натисканні " ESC" Імітувати натискання (замість): - " CMD+." - Тоді також " ALT+ ESC"

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.