118 votes

Faire en sorte que la barre de menu ne s'affiche jamais en plein écran

Presque toutes les applications que j'utilise en plein écran (y compris Firefox, MacVim et le Terminal) ont des onglets en haut de l'écran.

Le problème est que lorsque je déplace ma souris pour atteindre les onglets, je touche souvent accidentellement le haut de l'écran, ce qui fait apparaître le menu de l'OS SUR les onglets :

Illustration - moving mouse to top of screen in fullscreen apps makes menu bar appear

Existe-t-il un moyen de modifier ce comportement ? Je préférerais que la barre de menu reste cachée lorsque j'utilise une application en plein écran, même si ma souris touche le haut de l'écran.

9 votes

Ouais, c'est vraiment ennuyeux. J'aimerais qu'il y ait un defaults write variable que l'on pourrait éditer. Mais jusqu'à présent, je n'ai pas entendu parler d'une telle chose. C'est particulièrement gênant lorsqu'on utilise une VM en plein écran. La barre de menus d'Ubuntu est en haut de l'écran et je l'aime comme ça. Mais je déclenche constamment l'apparition de la barre de menu OSX :(

0 votes

Il y a une chose que vous pouvez faire, mais elle sacrifie entièrement l'utilisation de la barre de menu - c'est-à-dire qu'en plus de la cacher obstinément, vous ne pouvez même pas l'activer manuellement (via le raccourci clavier Ctrl + F2 ) ou, semble-t-il, d'utiliser l'un des éléments de la barre de menu via les raccourcis clavier qui leur sont attribués, non plus :(. Mais il permet de se débarrasser de la barre de menu directement si vous voulez vraiment vous en débarrasser pour un programme spécifique. Téléchargez 'PresentYourApps' (c'est sur CNET), lancez l'application pour laquelle vous voulez supprimer la barre de menu, lancez PreentYourApps et définissez les options de cette application en conséquence. Il modifiera l'application et la redémarrera.

5 votes

Ok, pour plus d'informations : ce que fait 'PresentYourApps' est de définir la valeur LSUIPresentationMode ou 'Application UI Presentation Mode' dans le fichier Info.plist de l'application en question : documentation aquí et un guide sur Lifehacker aquí . Au lieu de '4', utilisez la valeur numérique '3' pour le mode 'Tout caché', ce qui est ce que font les étapes de mon commentaire ci-dessus dans cette interface graphique plus simple - mais encore une fois, 'Tout caché' désactive de manière ennuyeuse TOUT accès à la barre de menu dans cette application, alors que 'Tout supprimé' cache effectivement le menu mais la souris l'invoque lorsqu'elle touche le haut de l'écran, ce que nous ne voulons pas.

19voto

pepper_chico Points 779
  • Enregistrez l'AppleScript suivant dans un fichier nommé 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
  • Depuis le terminal, compilez-le en une application avec la commande suivante :

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
  • Ouvrez le Full Screen.app 's Info.plist (par exemple vim '/Applications/Full Screen.app/Contents/Info.plist' ) et ajouter les éléments suivants à la dict :

        <key>NSUIElement</key>
        <true/>
  • Ajouter Full Screen.app comme une exception dans System Preferences > Security & Privacy > Privacy > Accessibility .

  • Lancez Automator et créez une nouvelle Service .

  • Remplacer "Service reçoit" par " no input sur any application ".

  • Ajouter un Library > Utilities > Launch Application action.

  • Configurer l'action pour lancer l'action précédemment créée Full Screen application.

  • Enregistrez le service en tant que Full Screen et fermez Automator.

  • Sur System Preferences > Keyboard > Shortcuts > Services , faites défiler la liste jusqu'au bas de la liste et la page qui vient d'être créée. Full Screen devrait y figurer. Associez un Command raccourci pour elle, comme Shift + Command + \ ou Command + F11 par exemple.

Cela crée un raccourci qui permet à une application de passer en plein écran tout en supprimant la barre de menu, ou de quitter le plein écran en ramenant la barre de menu. Il fournit un raccourci alternatif en plein écran !

Pour les lanceurs plein écran spécifiques à une application, consultez mon autre réponse .

Avertissements

Cette approche peut présenter des inconvénients et/ou un mauvais comportement :

  • Il fonctionne en fixant ApplicationType=UIElement ce qui fait que l'icône de l'application n'est pas ajoutée/surlignée dans le Dock et rend l'application inaccessible par l'intermédiaire de la fonction Command + Tab . Le site Command + Tab numéro a été rapporté dans les commentaires Je ne l'ai pas remarqué car j'utilise principalement l'aperçu de Mission Control pour passer d'une application en plein écran à une autre.
  • Il se peut qu'il ne se comporte pas comme prévu pour certaines applications spécifiques, j'ai remarqué des problèmes avec l'application Activity Monitor (qui n'est généralement pas utilisée en plein écran de toute façon) et il y a un rapport sur Chrome que je n'ai pas essayée car j'utilise Firefox et il fonctionne très bien .

1 votes

C'est plus que suffisant pour la prime. Excellent travail ! Pour les futurs utilisateurs, veuillez éditer pour décrire les limitations potentielles lorsque vous les trouvez. De mémoire, il semble que chrome n'aime pas beaucoup cela, et aussi, les applications disparaissent du cmd+tab lorsque vous utilisez ce raccourci.

1 votes

@cloneman Bien, merci. J'ai ajouté un Avertissements section.

0 votes

Toujours l'erreur suivante : ce script contient des modifications non compilées et ne peut pas être exécuté. (-2700)

9voto

Michael Barth Points 1983

La barre de menu ne peut PAS être masquée sur commande quand vous le souhaitez en raison des limitations de Mac OS X. Apple peut le faire dans ses propres programmes mais n'a PAS permis aux autres développeurs de le faire dans Mac OS X. L'une des raisons est que le Menu Apple se trouve dans la barre de menu et est utile si l'application ne répond plus ou si l'utilisateur doit se déconnecter/arrêter la machine.

Il existe une application appelée Menu Eclipse qui vous permet de modifier le comportement de la barre de menu (sauf pour la masquer).

2 votes

"Menu eclipse" ne masque pas la barre de menu.

1 votes

La barre de menu pourrait être déclenchée par une touche ou par une pause prolongée, ce qui permettrait à l'utilisateur de sortir d'une application interrompue sans interrompre son flux de travail basé sur les onglets.

1 votes

Cela ne peut pas être vrai à 100 %, car il existe de nombreux jeux en plein écran qui ne vous permettent pas d'accéder à la barre de menu. Bien qu'ils utilisent vraisemblablement des fonctions non standard pour le plein écran.

8voto

H-man Points 1158

La solution la plus proche que j'ai trouvée est de faire comme mentionné précédemment, en désactivant "Les écrans ont des espaces séparés" dans Mission Control. Cela n'a de sens que dans un environnement multi-moniteur, car la barre de menu s'affiche toujours sur le moniteur principal.

Si vous faites en sorte que l'application "passe en plein écran" (cliquez sur le bouton vert), elle remplit tout l'écran, mais tous les autres écrans deviennent noirs, et la barre de menu est déplacée vers l'écran de l'application. La solution consiste donc à étendre manuellement les bords de l'application aussi loin ou aussi haut que vous le souhaitez. Il fut un temps où VMWare proposait une sorte de solution plein écran qui n'utilisait pas le mécanisme plein écran d'Apple.

Jusqu'à ce qu'Apple considère ce problème comme devant être résolu, vous aurez du mal à trouver une solution non bricolée. C'est donc qui fait partie intégrante du fonctionnement du système d'exploitation (comme le bouton d'accueil sur l'iPhone/iPad/iPod).

7voto

Jarda Dvořák Points 41

Ma solution en Python :

import autopy.mouse as mouse
from time import sleep

while True:
    x, y = mouse.location()
    if y < 5:
        mouse.move(x, 5)
    sleep(0.1)

0 votes

Mieux que rien

3voto

Alex Points 129

Une solution possible est de ne pas se débarrasser complètement du menu, mais de garder le menu toujours affiché (il n'est pas si grand), et de se débarrasser du Dock à la place, en faisant l'astuce suivante.

Allez dans le terminal et tapez :

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

Cela rendra votre Dock plus petit. Appuyez sur D pour masquer le dock.

Idée volée à ici .

2 votes

Le downvoting de cette réponse en dessous de zéro est vraiment méchant. Elle pourrait aider les gens qui ont le même problème, mais maintenant ils vont l'ignorer, en supposant que cette solution ne fonctionne pas du tout. Mon objectif était d'optimiser l'espace de l'écran tout en évitant l'irritation causée par les onglets du navigateur et des éditeurs de code. Aucune des autres réponses ci-dessus n'a fonctionné pour moi, mais me débarrasser entièrement du Dock m'a fait plaisir.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X