Fai in modo che la barra dei menu non venga mai visualizzata a schermo intero

65

Praticamente tutte le applicazioni che uso a schermo intero (inclusi Firefox, MacVim e il terminale) hanno schede nella parte superiore dello schermo.

Il problema è che, quando sposto il mouse per raggiungere le schede, spesso accidentalmente tocco la parte superiore dello schermo, introducendo il menu OS SOPRA le schede:

C'è un modo per cambiare questo comportamento? Lo preferirei se la barra dei menu rimanesse nascosta quando utilizzo un'app a schermo intero, anche se il mio mouse tocca la parte superiore dello schermo.

    
posta MaiaVictor 08.11.2012 - 15:04
fonte

3 risposte

8

La barra dei menu NON può essere nascosta sul comando quando lo desideri a causa delle limitazioni in Mac OS X. Apple può farlo nei propri programmi ma NON ha reso possibile per altri sviluppatori in Mac OS X.   Uno dei motivi è che il menu Apple si trova sulla barra dei menu ed è utile se l'applicazione non risponde o se l'utente deve disconnettersi / spegnere la macchina.

C'è un'applicazione chiamata Menu Eclipse che ti consente di cambiare i comportamenti della barra dei menu (tranne per nasconderlo).

    
risposta data 14.08.2014 - 23:20
fonte
8
  • Salva il seguente AppleScript in un file chiamato 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
    
  • Da terminale, compilarlo su un'applicazione con il seguente comando:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Apri Full Screen.app di Info.plist vim '/Applications/Full Screen.app/Contents/Info.plist' (ad esempio dict ) e aggiungi i seguenti alla Full Screen.app :

        <key>NSUIElement</key>
        <true/>
    
  • Aggiungi System Preferences > Security & Privacy > Privacy > Accessibility come eccezione in Service .

  • Avvia Automator e crea un nuovo no input .

  • Modifica "Servizio ricevuto" a " any application in Library > Utilities > Launch Application ".
  • Aggiungi un'azione Full Screen .
  • Configura l'azione per avviare l'applicazione Full Screen creata in precedenza.
  • Salva il servizio come System Preferences > Keyboard > Shortcuts > Services e chiudi Automator.
  • On Full Screen , scorri verso il basso fino alla fine dell'elenco e il servizio appena creato ApplicationType=UIElement dovrebbe essere elencato lì. Associare un unico comando Comando per questo, come Maiusc + Comando + \ o Comando + F11 per esempio.

Questo crea una scorciatoia per far entrare un'applicazione a schermo intero mentre si rimuove la barra dei menu, o per uscire da una schermata intera riportando indietro la barra dei menu. Fornisce un collegamento a schermo intero alternativo!

Per i lanciatori a schermo intero specifici dell'applicazione, controlla la mia altra risposta .

Avvertimenti

Potrebbero esserci alcuni svantaggi e / o comportamenti scorretti che utilizzano questo approccio:

  • Funziona impostando %code% , il che fa sì che l'icona dell'applicazione non venga aggiunta / evidenziata nel Dock e rende l'applicazione inaccessibile tramite Comando + Tab . Il comando + scheda problema è stato segnalato nei commenti , non l'ho notato poiché utilizzo principalmente la panoramica di Mission Control per passare da un'applicazione a schermo intero.
  • Potrebbe non funzionare come previsto per alcune applicazioni specifiche, ho notato problemi con l'applicazione Monitor attività (che in genere non è utilizzata a schermo intero) e c'è un rapporto su Chrome , che non ho provato da quando uso Firefox e funziona alla grande .
risposta data 27.01.2018 - 04:07
fonte
5

La soluzione più vicina che ho trovato è quella di fare come detto prima, disabilitando "Display hanno spazi separati" in Controllo Missione. Ciò ha senso solo in un ambiente multi-monitor, poiché la barra dei menu è ancora visibile sul monitor principale.

Se crei l'app "vai a schermo intero" (fai clic sul pulsante verde), riempie l'intero schermo, ma tutte le altre schermate diventano nere e la barra dei menu viene spostata sullo schermo dell'app. Quindi, la soluzione è quella di espandere manualmente i bordi dell'app al massimo o all'altezza desiderata. C'era una volta, VMWare aveva una sorta di soluzione a schermo intero che non utilizzava il meccanismo a schermo intero di Apple.

A meno che / fino a quando Apple non veda questo come un problema che deve essere risolto, sarà difficile trovare una soluzione non hacky. È così parte integrante di come funziona il sistema operativo (come il tasto home su iPhone / iPad / iPod).

    
risposta data 31.08.2016 - 18:55
fonte

Leggi altre domande sui tag