Haga que la barra de menú nunca se muestre mientras está en pantalla completa

70

Casi todas las aplicaciones que uso en pantalla completa (incluidas Firefox, MacVim y la Terminal) tienen pestañas en la parte superior de la pantalla.

El problema es que cuando muevo el mouse para llegar a las pestañas, a menudo toco accidentalmente la parte superior de la pantalla, lo que muestra el menú del SO SOBRE las pestañas:

Ilustración: al mover el mouse a la parte superior de la pantalla en las aplicaciones de pantalla completa, aparece la barra de menú

¿Hay alguna forma de cambiar este comportamiento? Preferiría que la barra de menú permaneciera oculta cuando estoy usando una aplicación de pantalla completa, incluso si mi mouse toca la parte superior de la pantalla.

MaiaVictor
fuente
55
Sí, esto es realmente molesto. Ojalá allí donde defaults writese pudiera editar una variable. Pero hasta ahora no he escuchado nada de eso. Es especialmente molesto cuando se usa una VM en pantalla completa. Ubuntu tiene la barra de menú en la parte superior y me gusta de esa manera. Pero constantemente estoy activando la barra de menú OSX para que aparezca. :(
gentmatt
Hay UNA cosa que puede hacer, pero sacrifica el uso de la barra de menú por completo, es decir, además de ocultarlo obstinadamente, ni siquiera puede activarlo manualmente (a través del atajo de teclado Ctrl+ F2) o, al parecer, operar cualquiera de los los elementos de la barra de menú a través de sus métodos abreviados de teclado asignados, ya sea :(. Pero se deshace de la barra de menú de forma correcta si realmente desea deshacerse de ella para un programa específico. Descargue 'PresentYourApps' (está en CNET), ejecute la aplicación que desea quitar la barra de menú para, PreentYourApps ejecutar y configurar las opciones para esa aplicación en consecuencia se va a modificar la aplicación y vuelva a iniciarlo..
44
Ok, más información: lo que hace 'PresentYourApps' es básicamente establecer el valor LSUIPresentationMode o 'Application UI Presentation Mode' en Info.plist para la aplicación en cuestión: documentación aquí y una guía en Lifehacker aquí . En lugar de '4', use el valor numérico '3' para el modo 'Todo oculto', que es lo que hacen los pasos de mi comentario anterior en esa GUI más fácil, pero nuevamente, 'Todo oculto' desactiva molestamente TODOS los accesos a la barra de menú cuando está en ese mientras que "Todo suprimido" oculta el menú, pero el mouse lo invoca cuando toca la parte superior de la pantalla, lo que no queremos.
3
si tan solo pudiéramos especificar un retraso mayor ... esto es realmente molesto
Lucas Pottersky
1
Como solución alternativa, alguien podría escribir una aplicación que haga un "muro" para evitar que el mouse golpee la fila superior de píxeles en la pantalla (a menos que se mantenga presionada una tecla para "liberar" el mouse). Algo como esto sería un primer paso aceptable y la razón de mi recompensa.
cloneman el

Respuestas:

9

La barra de menú NO se puede ocultar en el comando cuando lo desee debido a limitaciones en Mac OS X. Apple puede hacer esto en sus propios programas, pero NO lo han hecho posible para otros desarrolladores en Mac OS X. Una de las razones es que El menú Apple se encuentra en la barra de menús y es útil si la aplicación deja de responder o si el usuario necesita cerrar la sesión / apagar la máquina.

Existe una aplicación llamada Menu Eclipse que le permite cambiar los comportamientos de la barra de menús (excepto para ocultarla).

Zeus
fuente
1
El "eclipse de menú" no oculta la barra de menú.
Anillo Ø
1
la barra de menú podría ser activada por una pulsación de tecla o por una pausa más larga; esto aún permitiría al usuario salir de una aplicación dañada y al mismo tiempo no interrumpir su flujo de trabajo basado en pestañas
Toni Leigh
1
Esto no puede ser 100% cierto, ya que hay muchos juegos de pantalla completa que no te permiten acceder a la barra de menú. Aunque presumiblemente están utilizando funciones no estándar para pantalla completa.
Wowfunhappy
@Wowfunhappy Supongo que es el resultado de ejecutar aplicaciones en el modo de juego.
Zeus
Está bien, ¿y qué pasa con Command+ Option+ Shift+ Esc? Cuando la aplicación deja de responder, apagar la máquina no hace nada hasta que la aplicación responde. Por lo tanto, la barra de menú no debe ser imprescindible cuando se trata de pantalla completa.
Máxima Alekz
8
  • Guarde el siguiente AppleScript en un archivo llamado 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
    
  • Desde la terminal, compílelo en una aplicación con el siguiente comando:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Abra el Full Screen.app's Info.plist(por ejemplo vim '/Applications/Full Screen.app/Contents/Info.plist') y agregue lo siguiente a dict:

        <key>NSUIElement</key>
        <true/>
    
  • Agregar Full Screen.appcomo excepción en System Preferences > Security & Privacy > Privacy > Accessibility.

  • Inicie Automator y cree uno nuevo Service.

  • Cambie "El servicio recibe" a " no inputen any application".
  • Agrega una Library > Utilities > Launch Applicationacción.
  • Configure la acción para iniciar la Full Screenaplicación creada anteriormente .
  • Guarde el servicio como Full Screeny cierre Automator.
  • Encendido System Preferences > Keyboard > Shortcuts > Services, desplácese hacia abajo hasta la parte inferior de la lista y el Full Screenservicio recién creado debe aparecer allí. Asocia un Commandatajo único para él, como Shift+ Command+ \o Command+ F11por ejemplo.

Esto crea un acceso directo para hacer que una aplicación ingrese a la pantalla completa al eliminar la barra de menú, o que salga de la pantalla completa para volver a la barra de menú. ¡Proporciona un acceso directo alternativo a pantalla completa!

Para los lanzadores de pantalla completa específicos de la aplicación, consulte mi otra respuesta .

Advertencias

Puede haber algunas desventajas y / o mal comportamiento al usar este enfoque:

  • Funciona mediante la configuración ApplicationType=UIElement, lo que hace que el icono de la aplicación no se agregue / destaque en el Dock y hace que la aplicación sea inaccesible a través de Command+ Tab. El problema Command+ se informó en los comentarios , no lo noté, ya que utilizo principalmente la descripción general de Control de misión para cambiar entre aplicaciones de pantalla completa.Tab
  • Puede que no se comportan como se esperaba para algunas aplicaciones específicas, he notado problemas con la aplicación Monitor de actividad (que generalmente no se utiliza la pantalla completa de todos modos) y hay un informe sobre Chrome , que yo no lo probamos ya que utilizar Firefox y se funciona muy bien .
pepper_chico
fuente
Esto es más que suficiente para la recompensa. ¡Excelente trabajo! Para futuros usuarios, edite para describir cualquier limitación potencial cuando los encuentre. Fuera de mi cabeza, parece que a Chrome no le gusta mucho esto, y también, las aplicaciones desaparecen de la pestaña cmd + cuando se usa este acceso directo.
cloneman
@cloneman Bien, gracias. He añadido una sección de Advertencias .
pepper_chico 01 de
siempre recibe un error: este script contiene cambios sin compilar y no se puede ejecutar. (-2700)
Xin Meng
Esta solución no me funciona y estoy en macOS Sierra 10.12.6. La ventana de error dice: Can't get window 1 of <<class prcs>> "Full Screen" of application "System Events". Invalid index.Y luego también dice:System Events got an error: Can't get window 1 of process "Full Screen": Invalid index. (-1719)
rm.rf.etc
@ rm.rf.etc Todavía lo estoy usando en Sierra, funcionando bien.
pepper_chico
5

La solución más cercana que he encontrado es hacer lo mencionado anteriormente, deshabilitando "Las pantallas tienen espacios separados" en el Control de misión. Esto solo tiene sentido en un entorno de monitores múltiples, ya que la barra de menús todavía se muestra en el monitor principal.

Si hace que la aplicación "vaya a pantalla completa" (haga clic en el botón verde), ocupa toda la pantalla, pero todas las demás pantallas se ponen en negro y la barra de menú se mueve a la pantalla de la aplicación. Por lo tanto, la solución es expandir manualmente los bordes de la aplicación tanto como sea posible Érase una vez, VMWare tenía algún tipo de solución alternativa a pantalla completa que no utilizaba el mecanismo de pantalla completa de Apple.

A menos que / hasta que Apple vea esto como un problema que necesita solución, será difícil encontrar una solución no hacky. Es muy esencial para el funcionamiento del sistema operativo (como el botón de inicio en el iPhone / iPad / iPod).

Bryan Scott
fuente
0

Una posible solución es no deshacerse del menú por completo, sino mantener el menú siempre encendido (no es tan grande), y simplemente deshacerse del Dock en su lugar, haciendo el siguiente truco.

Vaya a la terminal y escriba:

defaults write com.apple.dock tilesize -int 1
killall Dock

Esto hará que tu Dock sea pequeño. Presiona ⌘ ⌥ D para ocultar el muelle.

Idea robada de aquí .

Alex
fuente
Votar abajo esta respuesta debajo de cero es realmente malo. Podría ayudar a las personas con el problema similar, pero ahora lo ignorarán, asumiendo que esta solución no funciona en absoluto. Mi objetivo era optimizar el espacio de la pantalla sin molestarme con las pestañas del navegador y los editores de código. Ninguna de las otras respuestas anteriores funcionó para mí, pero deshacerme por completo del Dock me hizo feliz.
Alex
-1

Intente usar teclas de acceso rápido para cambiar de pestaña en el navegador / ide para que nunca mueva el mouse hacia la parte superior para que aparezca la barra de menú

Dankiv Vitalij
fuente