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:
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.
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.app
Als Ausnahme hinzufügen in System Preferences > Security & Privacy > Privacy > Accessibility
.
Starten Sie Automator und erstellen Sie eine neue Service
.
no input
in any application
".Library > Utilities > Launch Application
Aktion hinzu.Full Screen
Anwendung zu starten.Full Screen
und schließen Sie Automator.System Preferences > Keyboard > Shortcuts > Services
Scrollen Sie auf zum Ende der Liste und der gerade erstellte Dienst Full Screen
sollte 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 .
Bei diesem Ansatz können einige Nachteile und/oder Fehlverhalten auftreten:
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.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)
osacompile
anstatt 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).
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.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)
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 .
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.
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
Gentmatt
defaults write
Variable 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. :(Benutzer46942
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.Benutzer46942
Bruno Philipp
Adil Malik
Déjà-vu
bb216b3acfd8f72cbc8f899d4d6963
Eulenschlag
Benutzer2707001
Lukas Pottersky
Deniz
MaiaVictor
Klonmann
MaiaVictor
frechbanane
Avamander