Stellen Sie sicher, dass die Menüleiste im Vollbildmodus nie angezeigt wird

So ziemlich jede Anwendung, die ich im Vollbildmodus verwende (einschließlich Firefox, MacVim und Terminal), hat Registerkarten oben auf dem Bildschirm.

Das Problem ist, dass ich, wenn ich meine Maus bewege, um die Registerkarten zu erreichen, oft versehentlich den oberen Rand des Bildschirms berühre und das OS-Menü ÜBER die Registerkarten bringe:

Illustration - Wenn Sie die Maus in Vollbild-Apps an den oberen Bildschirmrand bewegen, wird die Menüleiste angezeigt

Gibt es eine Möglichkeit, dieses Verhalten zu ändern? Ich würde es vorziehen, wenn die Menüleiste ausgeblendet bleibt, wenn ich eine Vollbild-App verwende, selbst wenn meine Maus den oberen Bildschirmrand berührt.

Ja, das ist wirklich nervig. Ich wünschte da wo man eine defaults writeVariable editieren könnte. Aber so etwas habe ich bisher noch nicht gehört. Es ist besonders ärgerlich, wenn eine VM im Vollbildmodus verwendet wird. Ubuntu hat die Menüleiste oben und ich mag es so. Aber ich lasse ständig die OSX-Menüleiste erscheinen. :(
Es gibt EINE Sache, die Sie tun können, aber es opfert die Verwendung der Menüleiste vollständig - dh zusätzlich zum hartnäckigen Verstecken können Sie sie nicht einmal manuell aktivieren (über die Tastenkombination Ctrl+ F2) oder, wie es scheint, eine der Funktionen bedienen Elemente der Menüleiste über ihre zugewiesenen Tastaturkürzel, entweder :(. Aber es wird die Menüleiste sofort los, wenn Sie sie wirklich für ein bestimmtes Programm loswerden wollen. Laden Sie 'PresentYourApps' herunter (es ist auf CNET), führen Sie es aus die App, für die Sie die Menüleiste entfernen möchten, führen Sie PreentYourApps aus und stellen Sie die Optionen für diese App entsprechend ein. Es wird die App ändern und neu starten.
Ok, weitere Informationen: Was 'PresentYourApps' tut, ist im Grunde das Setzen des LSUIPresentationMode- oder 'Application UI Presentation Mode'-Werts in der Info.plist für die betreffende App: Dokumentation hier und eine Anleitung bei Lifehacker hier . Verwenden Sie anstelle von „4“ den numerischen Wert „3“ für den Modus „Alles ausgeblendet“, was die Schritte meines obigen Kommentars in dieser einfacheren GUI tun – aber auch hier deaktiviert „Alles ausgeblendet“ ärgerlicherweise den GESAMTEN Zugriff auf die Menüleiste, wenn dies der Fall ist app, während „Alles unterdrückt“ das Menü verbirgt, aber die Maus ruft es auf, wenn sie oben auf den Bildschirm gedrückt wird, was wir nicht wollen.
Können Sie versuchen, die Option „Displays have separate spaces“ im Abschnitt „Mission Control“ der App „System Preferences“ zu deaktivieren? Ich weiß, dass es das Verhalten der Menüleiste ändert, aber ich kann es nicht auf meinem aktuellen Computer testen, da ich Mavericks nicht ausführe.
Schon eine Lösung?
Kannst du das Bild nochmal hochladen? Der Dropbox-Link führt jetzt zu einem 404.
Probieren Sie den Browser Vivaldi aus, wo Sie Tabs am unteren Bildschirmrand haben können?
kb.parallels.com/en/123101 (Parallels hat dies im „Spiel“-Modus?)
wenn wir nur eine größere Verzögerung angeben könnten ... das ist wirklich ärgerlich
Gibt es eine Verbesserung gegenüber 10.13 (High Sierra)?
Keine Besserung am 13.10.
Als Problemumgehung könnte jemand eine App schreiben, die eine "Wand" erstellt, um zu verhindern, dass die Maus jemals die oberste Pixelreihe auf dem Bildschirm trifft (es sei denn, eine Taste wird gedrückt, um die Maus "freizugeben".). So etwas wäre ein akzeptabler erster Schritt und der Grund für mein Kopfgeld.
@Cloneman tolle Idee!
Es ist erstaunlich, dass wir immer noch keinen richtigen Weg haben, dies zu erreichen.
Ich habe so lange versucht, einen Weg zu finden, die Menüleiste zu zwingen, ausgeblendet zu bleiben, ich kann dieses Verhalten überhaupt nicht ertragen.

Antworten (7)

  • Speichern Sie das folgende AppleScript in einer Datei namens 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
    
  • Kompilieren Sie es vom Terminal aus mit dem folgenden Befehl in eine Anwendung:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Öffnen Sie die Full Screen.app's Info.plist(z. B. vim '/Applications/Full Screen.app/Contents/Info.plist') und fügen Sie Folgendes zu den hinzu dict:

        <key>NSUIElement</key>
        <true/>
    
  • Full Screen.appAls Ausnahme hinzufügen in System Preferences > Security & Privacy > Privacy > Accessibility.

  • Starten Sie Automator und erstellen Sie eine neue Service.

  • Ändern Sie "Dienst empfängt" in " no inputin any application".
  • Fügen Sie eine Library > Utilities > Launch ApplicationAktion hinzu.
  • Konfigurieren Sie die Aktion, um die zuvor erstellte Full ScreenAnwendung zu starten.
  • Speichern Sie den Dienst unter Full Screenund schließen Sie Automator.
  • System Preferences > Keyboard > Shortcuts > ServicesScrollen Sie auf zum Ende der Liste und der gerade erstellte Dienst Full Screensollte dort aufgeführt sein. Ordnen Sie ihm eine eindeutige CommandVerknüpfung zu, wie zum Beispiel Shift+ Command+ \oder Command+ F11.

Dadurch wird eine Verknüpfung erstellt, die bewirkt, dass eine Anwendung in den Vollbildmodus wechselt, während die Menüleiste entfernt wird, oder den Vollbildmodus verlässt und die Menüleiste zurückkehrt. Es bietet eine alternative Vollbild-Verknüpfung!

Informationen zu anwendungsspezifischen Vollbild-Launchern finden Sie in meiner anderen Antwort .

Vorbehalte

Bei diesem Ansatz können einige Nachteile und/oder Fehlverhalten auftreten:

  • Es funktioniert durch die Einstellung ApplicationType=UIElement, wodurch das Anwendungssymbol nicht im Dock hinzugefügt / hervorgehoben wird und die Anwendung über Command+ unzugänglich wird Tab. Das Command+ Tab-Problem wurde in den Kommentaren gemeldet , ich habe es nicht bemerkt, da ich meistens die Mission Control-Übersicht verwende, um zwischen Vollbildanwendungen zu wechseln.
  • Es kann sein, dass es sich für einige bestimmte Anwendungen nicht wie erwartet verhält, ich habe Probleme mit der Activity Monitor-Anwendung bemerkt (die im Allgemeinen sowieso nicht im Vollbildmodus verwendet wird) und es gibt einen Bericht über Chrome , den ich nicht ausprobiert habe, da ich Firefox und es verwende funktioniert super .
Das ist mehr als ausreichend für das Kopfgeld. Ausgezeichnete Arbeit! Für zukünftige Benutzer bearbeiten Sie bitte, um mögliche Einschränkungen zu beschreiben, wenn Sie sie finden. Auf den ersten Blick scheint Chrome das nicht sehr zu mögen, und außerdem verschwinden die Apps von der cmd + Registerkarte, wenn Sie diese Verknüpfung verwenden.
@cloneman Schön, danke. Ich habe einen Abschnitt mit Vorbehalten hinzugefügt .
bekomme immer einen Fehler: Dieses Skript enthält nicht kompilierte Änderungen und kann nicht ausgeführt werden. (-2700)
Diese Lösung funktioniert bei mir nicht und ich verwende macOS Sierra 10.12.6. Das Fehlerfenster sagt: Can't get window 1 of <<class prcs>> "Full Screen" of application "System Events". Invalid index.Und dann steht auch:System Events got an error: Can't get window 1 of process "Full Screen": Invalid index. (-1719)
@rm.rf.etc Ich benutze es immer noch auf Sierra und es funktioniert gut.
Ich habe genau den gleichen Fehler wie rm.rf.etc
@cbartondock Ich boote kaum unter macOS, es ist nur ein schlechtes Betriebssystem. Bitte schlagen Sie eine Verbesserung vor, wenn Sie Probleme finden. Für die Zeit, in der ich es auf Sierra verwendet habe, hat es funktioniert.
Gibt es einen bestimmten Grund, warum Sie verwenden, osacompileanstatt nur als Anwendung aus dem Applescript-Editor zu exportieren? Ich denke, beides funktioniert, letzteres scheint nur ein Schritt weniger zu sein.

Die Menüleiste kann aufgrund von Einschränkungen in Mac OS X NICHT auf Befehl ausgeblendet werden, wann immer Sie möchten. Apple kann dies in seinen eigenen Programmen tun, aber sie haben es anderen Entwicklern in Mac OS X NICHT ermöglicht. Einer der Gründe dafür Das Apple-Menü befindet sich in der Menüleiste und ist hilfreich, wenn die Anwendung nicht mehr reagiert oder der Benutzer sich abmelden/den Computer herunterfahren muss.

Es gibt eine Anwendung namens Menu Eclipse , mit der Sie das Verhalten der Menüleiste ändern können (außer zum Ausblenden).

"Menu eclipse" blendet die Menüleiste nicht aus.
Die Menüleiste könnte durch einen Tastendruck oder durch eine längere Pause ausgelöst werden – dies würde es dem Benutzer immer noch ermöglichen, aus einer kaputten App auszubrechen, ohne seinen tab-basierten Arbeitsablauf zu unterbrechen
Das kann nicht zu 100 % stimmen, da es viele Vollbildspiele gibt, bei denen Sie nicht auf die Menüleiste zugreifen können. Obwohl sie vermutlich nicht standardmäßige Funktionen für den Vollbildmodus verwenden.
@Wowfunhappy Ich würde annehmen, dass dies das Ergebnis der Ausführung von Anwendungen im Spielmodus ist.
Okay okay, und was ist mit Command+ Option+ Shift+ Esc? Wenn die App nicht mehr reagiert, bewirkt das Herunterfahren des Computers nichts, bis die Anwendung reagiert. Die Menüleiste sollte also im Vollbildmodus kein Muss sein.
Fwiw, Menu Eclipse wurde laut Store zuletzt vor " 8y " aktualisiert. Vor sechs Jahren keine so große Sache. Jetzt ankommen. Wenn Sie mutig sind, gibt es auf der Website des Autors , die selbst seit 2014 nicht aktualisiert wurde, eine Demo mit dem Inhalt „ Die Demoversion ist voll funktionsfähig, außer dass Ihre Einstellungen nicht gespeichert werden, wenn Sie die Anwendung beenden “ . M1 Mac, aber sicher genug versteckt es nicht.
Wie hilft die Menüleiste, wenn die App nicht mehr reagiert?

Die nächste Lösung, die ich gefunden habe, besteht darin, wie bereits erwähnt, "Displays have separate Spaces" in Mission Control zu deaktivieren. Dies ist nur in einer Umgebung mit mehreren Monitoren sinnvoll, da die Menüleiste immer noch auf dem primären Monitor angezeigt wird.

Wenn Sie die App in den Vollbildmodus versetzen (klicken Sie auf die grüne Schaltfläche), füllt sie den gesamten Bildschirm aus, aber alle anderen Bildschirme werden schwarz und die Menüleiste wird auf den Bildschirm der App verschoben. Die Lösung besteht also darin, die Ränder der App manuell so weit oder hoch zu erweitern, wie Sie möchten. Es war einmal, dass VMWare eine Art Vollbild-Workaround hatte, der Apples Vollbild-Mechanismus nicht verwendete.

Sofern Apple dies nicht als Problem ansieht, das behoben werden muss, wird es Ihnen schwer fallen, eine nicht-hackige Lösung zu finden. Es ist so wichtig für die Funktionsweise des Betriebssystems (wie die Home-Taste auf dem iPhone/iPad/iPod).

Meine Lösung in 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)
besser als nichts
Für mich war das die beste Lösung, obwohl ich das Timing von 0,1 auf 0,01 ändern musste, damit es wirklich aufhört. Ich habe bereits einen Befehl mit Aliasnamen zum Öffnen eines SSH-Tunnels für RDP, also habe ich einfach die Ausführung dieses Skripts in diesen Befehl aufgenommen.

Eine mögliche Lösung besteht darin, das Menü nicht vollständig zu entfernen, sondern das Menü tatsächlich immer eingeschaltet zu lassen (es ist nicht so groß) und stattdessen einfach das Dock zu entfernen, indem Sie den folgenden Trick ausführen.

Gehen Sie zum Terminal und geben Sie Folgendes ein:

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

Dadurch wird Ihr Dock klein. Drücken Sie ⌘ ⌥ D, um das Dock auszublenden.

Idee von hier geklaut .

Diese Antwort unter Null abzustimmen ist wirklich gemein. Es könnte Leuten mit ähnlichen Problemen helfen, aber jetzt werden sie es ignorieren und davon ausgehen, dass diese Lösung überhaupt nicht funktioniert. Mein Ziel war es, den Platz auf dem Bildschirm zu optimieren, ohne die Irritationen mit den Registerkarten im Browser und in den Code-Editoren zu haben. Keine der anderen Antworten oben hat bei mir funktioniert, aber das Dock vollständig loszuwerden, hat mich glücklich gemacht.

Ich benutze Firefox und habe es gelöst, indem ich den Browser Chrome ( userChrome.css) bearbeitet habe.

Ich habe nur die vertikale Reihenfolge der Hauptbrowserelemente (Registerkarten, Symbolleiste, Hauptinhalt) umgekehrt. Beachten Sie in der folgenden Bildschirmshow, dass sich meine Registerkarten unten befinden.

Dieses Layout sieht auf den ersten Blick seltsam aus, aber das ist mir egal - ich möchte nur das ständige Problem vermeiden, das ich habe, wenn ich im Vollbildmodus unbeabsichtigt die macOS-Menüleiste einblende.

Geben Sie hier die Bildbeschreibung ein

Hier ist mein userChrome.css(ich habe es einfach gehalten). Hier finden Sie Anweisungen zum Bearbeiten Ihrer Firefox-Benutzeroberfläche .

body {
  display: flex !important;
  flex-direction: column-reverse !important;
}

#browser {
  flex: 1 1 auto !important;
}

#navigator-toolbox {
  display: flex !important;
  flex-direction: column-reverse !important;
}

Versuchen Sie, Hotkeys zum Wechseln der Registerkarten in Browser / ide zu verwenden, damit Sie Ihre Maus niemals nach oben bewegen, um die Menüleiste anzuzeigen