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

70

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 la souris pour atteindre les onglets, je touche souvent accidentellement le haut de l'écran en faisant apparaître le menu du système d'exploitation AU-DESSUS des onglets:

Illustration - déplacer la souris vers le haut de l'écran dans les applications plein écran fait apparaître la barre de menus

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

MaiaVictor
la source
5
Ouais, c'est vraiment énervant. Je souhaite là où une defaults writevariable peut être modifiée. Mais jusqu'à présent, je n'ai rien entendu de tel. Cela est particulièrement gênant lorsque vous utilisez une machine virtuelle en plein écran. Ubuntu a la barre de menu en haut et j'aime bien ça. Mais je déclenche constamment l'affichage de la barre de menus OSX. :(
gentmatt
Vous pouvez FAIRE UNE chose, mais elle sacrifie en utilisant entièrement la barre de menus - 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 Les éléments de la barre de menu via les raccourcis clavier qui leur sont attribués, soit :(. Mais cela ne supprimera pas la barre de menu de droite 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 souhaitez supprimer la barre de menus, exécutez PreentYourApps et définissez les options de cette application en conséquence. Elle modifiera l'application et la redémarrera.
4
Ok autres informations: ce que fait 'PresentYourApps', consiste essentiellement à définir la valeur LSUIPresentationMode ou 'Application UI Presentation Mode' dans l'Info.plist pour l'application en question: documentation ici et guide ici chez Lifehacker . Au lieu de "4", utilisez la valeur numérique "3" pour le mode "Tout caché", ce que font les étapes de mon commentaire ci-dessus dans cette interface graphique simplifiée. app, tandis que 'Tous supprimés' masque le menu mais que la souris l’invoque en haut de l’écran, ce que nous ne voulons pas.
3
si seulement nous pouvions spécifier un délai plus
long
1
Comme solution de contournement, quelqu'un pourrait écrire une application qui crée un "mur" pour empêcher la souris de frapper la rangée supérieure de pixels à l'écran (sauf si une touche est maintenue pour "relâcher" la souris.). Quelque chose comme cela serait une première étape acceptable et la raison de ma prime.
cloneman

Réponses:

9

La barre de menus ne peut PAS être masquée sur commande à tout moment en raison des limitations de Mac OS X. Apple peut le faire dans ses propres programmes, mais cela n’a PAS été rendu possible par les autres développeurs sous Mac OS X. L'une des raisons est que Le menu Pomme se trouve dans la barre des menus 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 les comportements de la barre de menus (à l'exception de la masquer).

Zeus
la source
1
"Menu éclipse" ne cache pas la barre de menus.
Bague Ø
1
la barre de menus pourrait être déclenchée par une frappe au clavier ou par une pause plus longue - cela permettrait néanmoins à l'utilisateur de quitter une application endommagée tout en n'interrompant pas son flux de travail basé sur la tabulation
Toni Leigh
1
Cela ne peut pas être vrai à 100%, car il y a beaucoup de jeux en plein écran qui ne vous permettent pas d'accéder à la barre de menus. Bien qu'ils utilisent vraisemblablement des fonctions non standard pour le plein écran.
Wowfunhappy
@Wowfunhappy Je suppose que c'est le résultat de l'exécution d'applications en mode jeu.
Zeus
Bon d' accord, et ce au sujet Command+ Option+ Shift+ Esc? Lorsque l'application ne répond plus, éteindre la machine ne fait rien jusqu'à ce que l'application réponde. La barre de menus ne devrait donc pas être un must en plein écran.
Máxima Alekz
8
  • Enregistrez le code 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
    
  • A partir du 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 ajoutez ce qui suit à dict:

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

  • Lancez Automator et créez-en un nouveau Service.

  • Remplacez "Le service reçoit" par " no inputdans any application".
  • Ajouter une Library > Utilities > Launch Applicationaction.
  • Configurez l'action pour lancer l' Full Screenapplication créée précédemment .
  • Enregistrez le service sous Full Screenet fermez Automator.
  • Sur System Preferences > Keyboard > Shortcuts > Services, faites défiler vers le bas de la liste et le Full Screenservice que vous venez de créer devrait y figurer. Associez-lui un Commandraccourci unique , comme Shift+ Command+ \ou Command+ F11par exemple.

Cela crée un raccourci pour faire en sorte qu'une application passe en plein écran tout en supprimant la barre de menus ou pour quitter le mode plein écran, ce qui ramène la barre de menus. Il fournit un raccourci alternatif en plein écran!

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

Mises en garde

Il peut y avoir des inconvénients et / ou une mauvaise conduite en utilisant cette approche:

  • Cela fonctionne par réglage ApplicationType=UIElement, ce qui empêche l'icône de l'application d'être ajoutée / en surbrillance dans le Dock et rend l'application inaccessible via Command+ Tab. Le problème Command+ a été signalé dans les commentaires . Je ne l'ai pas remarqué, car j'utilise principalement la vue d'ensemble de Mission Control pour passer d'une application plein écran à une autre.Tab
  • Il se peut que cela 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 existe un rapport sur Chrome , que je n'ai pas essayé depuis que j'utilise Firefox . fonctionne très bien .
pepper_chico
la source
C'est plus que suffisant pour la prime. Excellent travail! Pour les futurs utilisateurs, veuillez éditer pour décrire les éventuelles limitations lorsque vous les trouvez. De mémoire, il semble que Chrome n'aime pas trop cela, et les applications disparaissent de l'onglet cmd + lorsque vous utilisez ce raccourci.
cloneman
@cloneman Nice, merci. J'ai ajouté une section de mises en garde .
pepper_chico
toujours obtenir une erreur: ce script contient des modifications non compilées et ne peut pas être exécuté. (-2700)
Xin Meng
Cette solution ne fonctionne pas pour moi et je suis sur macOS Sierra 10.12.6. La fenêtre d'erreur dit: Can't get window 1 of <<class prcs>> "Full Screen" of application "System Events". Invalid index.Et puis on dit aussi:System Events got an error: Can't get window 1 of process "Full Screen": Invalid index. (-1719)
rm.rf.etc
@ rm.rf.etc Je l'utilise toujours sur Sierra, fonctionne bien.
pepper_chico
5

La solution la plus proche que j'ai trouvée est de procéder 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, comme le montre toujours la barre de menu sur le moniteur principal.

Si vous rendez l'application "en plein écran" (cliquez sur le bouton vert), tout l'écran est rempli, 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 à développer manuellement les bords de l'application aussi loin ou aussi haut que vous le souhaitez. Il était une fois, VMWare avait une sorte de solution de contournement en plein écran qui n'utilisait pas le mécanisme plein écran d'Apple.

À moins que / jusqu'à ce que Apple considère qu'il s'agisse d'un problème qui doit être résolu, vous aurez du mal à trouver une solution sans problème. Il est donc partie intégrante de la façon dont le système d'exploitation fonctionne (comme la maison bouton sur l'iPhone / iPad / iPod).

Bryan Scott
la source
0

Une solution possible est de ne pas supprimer complètement le menu, mais de garder le menu toujours allumé (ce n’est pas si gros) et de supprimer simplement le Dock à la place, en procédant comme suit.

Allez au terminal et tapez:

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

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

Idée volée d' ici .

Alex
la source
Voter en dessous de cette réponse en dessous de zéro est vraiment moyen. Cela pourrait aider les personnes aux prises avec un problème similaire, mais à présent, ils l'ignoreront, en supposant que cette solution ne fonctionne pas du tout. Mon objectif était d'optimiser l'espace à l'écran tout en évitant l'irritation des onglets du navigateur et des éditeurs de code. Aucune des réponses ci-dessus n'a fonctionné pour moi, mais me débarrasser entièrement du Dock m'a rendu heureux.
Alex
-1

Essayez d’utiliser des touches de raccourci pour les onglets de commutateur dans le navigateur / ide afin de ne jamais déplacer la souris vers le haut pour faire apparaître la barre de menu

Dankiv Vitalij
la source