Jadikan Bilah Menu tidak pernah ditampilkan saat dalam Layar Penuh

70

Hampir setiap aplikasi yang saya gunakan di layar penuh (termasuk Firefox, MacVim dan Terminal) memiliki tab di bagian atas layar.

Masalahnya adalah, ketika saya menggerakkan mouse saya untuk mencapai tab saya akan sering tidak sengaja menyentuh bagian atas layar, membawa menu OS LEBIH dari tab:

Ilustrasi - menggerakkan mouse ke atas layar dalam aplikasi layar penuh membuat bilah menu muncul

Apakah ada cara untuk mengubah perilaku ini? Saya lebih suka jika bilah menu tetap tersembunyi ketika saya menggunakan aplikasi layar penuh, bahkan jika mouse saya menyentuh bagian atas layar.

Viktor Maia
sumber
5
Ya, ini sangat menyebalkan. Saya berharap ada di mana defaults writevariabel dapat diedit. Tapi sejauh ini saya belum pernah mendengar hal seperti itu. Ini sangat menjengkelkan saat menggunakan VM di layar penuh. Ubuntu memiliki menubar di bagian atas dan saya suka seperti itu. Tapi saya terus-menerus memicu bilah menu OSX muncul. :(
gentmatt
Ada SATU hal yang dapat Anda lakukan, tetapi pengorbanan sepenuhnya menggunakan bilah menu - yaitu, selain menyembunyikannya dengan keras kepala, Anda bahkan tidak dapat mengaktifkannya secara manual (melalui pintasan keyboard Ctrl+ F2) atau, tampaknya, operasikan salah satu item bilah menu melalui pintasan keyboard yang ditetapkan, baik :(. Tapi BUKAN menyingkirkan bilah menu keluar-kanan jika Anda benar-benar ingin menyingkirkannya untuk program tertentu. Unduh 'PresentYourApps' (ada di CNET), jalankan aplikasi yang ingin Anda hapus bilah menu untuk, jalankan PreentYourApps dan setel opsi untuk aplikasi itu. Ini akan memodifikasi aplikasi dan me-restart-nya.
4
Ok info selanjutnya: apa yang dilakukan 'PresentYourApps' pada dasarnya adalah menetapkan nilai LSUIPresentationMode atau 'Mode Presentasi Aplikasi UI' di Info.plist untuk aplikasi yang dimaksud: dokumentasi di sini dan panduan di Lifehacker di sini . Alih-alih '4', gunakan nilai numerik '3' untuk mode 'Semua disembunyikan', yang dilakukan oleh langkah-langkah komentar saya di atas dalam GUI yang lebih mudah - tetapi sekali lagi, 'Semua disembunyikan' dengan mengganggu menonaktifkan SEMUA akses ke bilah menu saat itu aplikasi, sementara 'Semua ditekan' TIDAK menyembunyikan menu tetapi mouse memanggilnya ketika menekan bagian atas layar, yang tidak kita inginkan.
3
kalau saja kita bisa menentukan penundaan yang lebih besar ... ini benar-benar menjengkelkan
Lucas Pottersky
1
Sebagai solusi, seseorang dapat menulis aplikasi yang membuat "dinding" untuk mencegah mouse agar tidak menyentuh baris paling atas piksel pada layar (kecuali jika tombol dipegang untuk "melepaskan" mouse.). Sesuatu seperti ini akan menjadi langkah pertama yang dapat diterima dan alasan karunia saya.
cloneman

Jawaban:

9

Bilah menu TIDAK dapat disembunyikan pada perintah kapan pun Anda mau karena keterbatasan di Mac OS X. Apple dapat melakukan ini dalam program mereka sendiri tetapi mereka TIDAK memungkinkan untuk pengembang lain di Mac OS X. Salah satu alasannya adalah bahwa Menu Apple duduk di bilah Menu dan sangat membantu jika aplikasi menjadi tidak responsif atau jika pengguna perlu keluar / mematikan mesin.

Ada aplikasi bernama Menu Eclipse yang memungkinkan Anda mengubah perilaku Menu Bar (kecuali untuk menyembunyikannya).

Zeus
sumber
1
"Menu eclipse" tidak menyembunyikan bilah menu.
Dering Ø
1
bilah menu bisa dipicu oleh penekanan tombol atau jeda lebih lama - ini masih memungkinkan pengguna untuk keluar dari aplikasi yang rusak sementara juga tidak mengganggu alur kerja berbasis tab mereka
Toni Leigh
1
Ini tidak dapat 100% benar, karena ada banyak permainan layar penuh yang tidak memungkinkan Anda untuk mengakses bilah menu. Meskipun mereka mungkin menggunakan fungsi non-standar untuk layar penuh.
Wowfunhappy
@Wowfunhappy Saya berasumsi itu adalah hasil dari menjalankan aplikasi dalam mode permainan.
Zeus
Oke oke, dan bagaimana dengan Command+ Option+ Shift+ Esc? Ketika aplikasi menjadi tidak responsif, mematikan mesin tidak melakukan apa-apa hingga respons aplikasi. Jadi menu bar tidak harus ketika layar penuh.
Máxima Alekz
8
  • Simpan AppleScript berikut ke file bernama 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
    
  • Dari terminal, kompilasi ke aplikasi dengan perintah berikut:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Buka Full Screen.app's Info.plist(misalnya vim '/Applications/Full Screen.app/Contents/Info.plist') dan tambahkan berikut ini ke dict:

        <key>NSUIElement</key>
        <true/>
    
  • Tambahkan Full Screen.appsebagai pengecualian di System Preferences > Security & Privacy > Privacy > Accessibility.

  • Luncurkan Automator dan buat yang baru Service.

  • Ubah "Layanan terima" menjadi " no inputdalam any application".
  • Tambahkan Library > Utilities > Launch Applicationtindakan.
  • Konfigurasikan tindakan untuk meluncurkan Full Screenaplikasi yang dibuat sebelumnya .
  • Simpan layanan sebagai Full Screendan tutup Automator.
  • Pada System Preferences > Keyboard > Shortcuts > Services, gulir ke bawah ke bagian bawah daftar dan layanan yang baru dibuat Full Screenharus terdaftar di sana. Kaitkan Commandpintasan unik untuk itu, seperti Shift+ Command+ \atau Command+ F11misalnya.

Ini menciptakan pintasan untuk menyebabkan aplikasi masuk ke layar penuh saat menghapus bilah menu, atau keluar dari layar penuh membawa bilah menu kembali. Ini memberikan jalan pintas layar penuh alternatif!

Untuk peluncur layar penuh khusus aplikasi, periksa jawaban saya yang lain .

Peringatan

Mungkin ada beberapa kelemahan dan / atau kelakuan buruk menggunakan pendekatan ini:

  • Ini bekerja dengan pengaturan ApplicationType=UIElement, yang menyebabkan ikon aplikasi tidak ditambahkan / disorot di Dock dan membuat aplikasi tidak dapat diakses melalui Command+ Tab. The Command+ Tabmasalah dilaporkan dalam komentar , saya tidak melihat itu karena saya kebanyakan menggunakan Mission Control gambaran untuk mengubah antara aplikasi layar penuh.
  • Mungkin tidak berperilaku seperti yang diharapkan untuk beberapa aplikasi tertentu, saya telah memperhatikan masalah dengan aplikasi Monitor Aktivitas (yang umumnya tidak digunakan layar penuh) dan ada laporan tentang Chrome , yang saya tidak coba sejak saya menggunakan Firefox dan itu bekerja dengan baik .
pepper_chico
sumber
Ini lebih dari cukup untuk hadiah. Kerja bagus! Untuk pengguna di masa mendatang, harap edit untuk menjelaskan batasan potensial saat Anda menemukannya. Dari atas kepala saya, sepertinya chrome tidak terlalu menyukai ini, dan juga, aplikasi menghilang dari tab cmd + saat menggunakan pintasan ini.
cloneman
@ cloneman Nice, terima kasih. Saya telah menambahkan bagian Peringatan .
pepper_chico
selalu mendapatkan kesalahan: skrip ini berisi perubahan yang tidak dikompilasi dan tidak dapat dijalankan. (-2700)
Xin Meng
Solusi ini tidak berfungsi untuk saya, dan saya menggunakan macOS Sierra 10.12.6. Jendela kesalahan mengatakan: Can't get window 1 of <<class prcs>> "Full Screen" of application "System Events". Invalid index.Dan kemudian juga mengatakan:System Events got an error: Can't get window 1 of process "Full Screen": Invalid index. (-1719)
rm.rf.etc
@ rm.rf.etc Saya masih menggunakannya di Sierra, berfungsi dengan baik.
pepper_chico
5

Solusi terdekat yang saya temukan adalah melakukan seperti yang disebutkan sebelumnya, menonaktifkan "Layar memiliki ruang terpisah" di Kontrol Misi. Ini hanya masuk akal di lingkungan multi-monitor, karena menubar masih terlihat di monitor utama.

Jika Anda membuat aplikasi "go fullscreen" (klik tombol hijau), ia memenuhi seluruh layar, tetapi semua layar lainnya menjadi hitam, dan menubar dipindahkan ke layar aplikasi. Jadi solusinya ada untuk secara manual memperluas tepi aplikasi sejauh atau setinggi yang Anda inginkan. Sekali waktu, VMWare memiliki semacam solusi layar penuh yang tidak menggunakan mekanisme layar penuh Apple.

Kecuali / sampai Apple melihat ini sebagai masalah yang perlu diperbaiki, Anda akan kesulitan menemukan solusi non-hacky. Ini sangat integral dengan cara kerja sistem operasi (seperti tombol home di iPhone / iPad / iPod).

Bryan Scott
sumber
0

Salah satu solusi yang mungkin adalah tidak menyingkirkan menu sepenuhnya, tetapi sebenarnya menjaga menu selalu aktif (tidak sebesar itu), dan cukup singkirkan Dock sebagai gantinya, dengan melakukan trik berikut.

Buka terminal dan ketik:

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

Ini akan membuat Dock Anda kecil. Tekan ⌘ ⌥ D untuk menyembunyikan dok.

Ide dicuri dari sini .

Alex
sumber
Menurunkan jawaban ini di bawah nol benar-benar berarti. Ini bisa membantu orang dengan masalah yang sama, tetapi sekarang mereka akan mengabaikannya, dengan asumsi solusi ini tidak berfungsi sama sekali. Tujuan saya adalah untuk mengoptimalkan ruang layar sementara tidak ada iritasi dengan tab di browser dan editor kode. Tidak ada jawaban lain di atas yang berfungsi untuk saya, tetapi sepenuhnya menyingkirkan Dock membuat saya bahagia.
Alex
-1

Coba gunakan hotkeys untuk beralih tab di browser / ide sehingga Anda tidak akan pernah memindahkan mouse Anda ke atas untuk menubar muncul

Dankiv Vitalij
sumber