Сделать панель меню никогда не отображаться во весь экран

Практически каждое приложение, которое я использую в полноэкранном режиме (включая Firefox, MacVim и терминал), имеет вкладки в верхней части экрана.

Проблема заключается в том, что когда я перемещаю мышь, чтобы попасть на вкладки, я часто случайно прикасаюсь к верхней части экрана, вызывая меню ОС OVER tabs:

Иллюстрация - перемещение мыши в верхнюю часть экрана в полноэкранных приложениях приводит к появлению строки меню

Есть ли способ изменить это поведение? Я бы предпочел, чтобы панель меню оставалась скрытой, когда я использую полноэкранное приложение, даже если моя мышь касается верхней части экрана.

57 голосов | спросил MaiaVictor 8 42012vEurope/Moscow11bEurope/MoscowThu, 08 Nov 2012 18:04:56 +0400 2012, 18:04:56

3 ответа


8

Строка меню НЕ МОЖЕТ быть скрыта по команде, когда вам нравится из-за ограничений в Mac OS X. Apple может сделать это в своих собственных программах, но они НЕ сделали этого возможным для других разработчиков в Mac OS X.   Одна из причин заключается в том, что Apple Menu находится на панели меню и полезно, если приложение перестает отвечать на запросы или если пользователю необходимо выйти из системы /выключить компьютер.

Существует приложение под названием Меню Eclipse , который позволяет вам изменять поведение панели меню (кроме скрытия).

ответил Zeus 15 AM00000010000002831 2014, 01:20:28
5

Самое близкое решение, которое я нашел, это сделать, как упоминалось ранее, отключив «Дисплеи имеют отдельные пробелы» в Mission Control. Это имеет смысл только в среде с несколькими мониторами, поскольку панель меню все еще отображается на основном мониторе.

Если вы сделаете приложение «в полноэкранном режиме» (нажмите зеленую кнопку), оно заполняет весь экран, но все остальные экраны становятся черными, а панель меню перемещается на экран приложения. Таким образом, решение заключается в том, чтобы вручную расширить края приложения так далеко, как вам нужно. Когда-то VMWare имел какое-то полноэкранное обходное решение, которое не использовало полноэкранный механизм Apple.

Если Apple пока не увидит, что это проблема, требующая исправления, вам будет трудно найти не-хакерское решение. Это так неотъемлемо от того, как работает операционная система (например, домашняя кнопка на iPhone /iPad /iPod).

ответил Bryan Scott 31 PM00000070000002631 2016, 19:55:26
4
  • Сохраните следующий AppleScript в файле с именем fullscreen.scpt:

    use framework "AppKit"
    use scripting additions
    
    repeat with runningApp in current application's NSWorkspace's sharedWorkspace's runningApplications()
        if runningApp's isActive()
            set frontApp to (localizedName of runningApp) as text
            exit repeat
        end if
    end repeat
    
    tell application "System Events"
        tell process frontApp to set isFullScreen to value of attribute "AXFullScreen" of first window
        if frontApp = "Finder"
            tell process frontApp to set value of attribute "AXFullScreen" of first window to not isFullScreen
        else if isFullScreen
            do shell script "lsappinfo setinfo -app " & quoted form of frontApp & " ApplicationType=Foreground"
            tell process frontApp to set value of attribute "AXFullScreen" of first window to false
    
            (*fix to make sure the menu bar is not stuck*)
            delay 0.42
            tell application "Finder" to activate
            tell process frontApp to set frontmost to true
        else
            do shell script "lsappinfo setinfo -app " & quoted form of frontApp & " ApplicationType=UIElement"
            tell process frontApp to set value of attribute "AXFullScreen" of first window to true
        end if
    end tell
    
  • От терминала, скомпилируйте его в приложение со следующей командой:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Откройте Full Screen.app Info.plist (например, vim '/Applications/Full Screen.app/Contents/Info.plist') и добавьте следующие в dict:

        <key>NSUIElement</key>
        <true/>
    
  • Добавить Full Screen.app как исключение в System Preferences > Security & Privacy > Privacy > Accessibility.

  • Запустите Automator и создайте новый Service.

  • Измените «Сервис получает» на «no input в any application».
  • Добавить Library > Utilities > Launch Application.
  • Настройте действие для запуска ранее созданного приложения Full Screen.
  • Сохраните службу как Full Screen и закройте Automator.
  • Вкл. System Preferences > Keyboard > Shortcuts > Services, прокрутите вниз до конца списка и только что созданная служба Full Screen должна быть указана там. Сопоставьте уникальный Command ярлык для него, например Shift + Command + \ или Command + F11 например.

Это создает ярлык, чтобы заставить приложение войти в полный экран при удалении строки меню или выйти из полноэкранного режима, возвращая панель меню. Он предоставляет альтернативный полный экран быстрого доступа!

Для полноэкранных пусковых установок для конкретных приложений проверьте мой другой ответ .

Предостережения

При использовании этого подхода могут быть некоторые недостатки и /или неправильное поведение:

  • Он работает, установив ApplicationType=UIElement, что не позволяет добавить /выделить значок приложения в док-станции и сделать приложение недоступным с помощью Command + Tab . Вкладка Command + issue был указан в комментариях , я этого не заметил, так как в основном я использую обзор управления миссиями для изменения между полноэкранными приложениями.
  • Он может не соответствовать ожиданиям некоторых конкретных приложений, я заметил проблемы сПриложение Activity Monitor (которое вообще не используется в полноэкранном режиме) и есть отчет о Chrome , который я не пробовал, так как я использую Firefox и это отлично работает .
ответил pepper_chico 27 Jam1000000amSat, 27 Jan 2018 06:07:23 +030018 2018, 06:07:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132