Làm cho Thanh Menu không bao giờ hiển thị khi ở Toàn màn hình


70

Khá nhiều ứng dụng tôi sử dụng ở chế độ toàn màn hình (bao gồm Firefox, MacVim và Terminal) đều có các tab ở trên cùng của màn hình.

Vấn đề là, khi tôi di chuyển chuột để đến các tab tôi thường vô tình chạm vào phía trên màn hình, đưa vào menu OS QUÁ các tab:

Minh họa - di chuyển chuột lên trên màn hình trong các ứng dụng toàn màn hình làm cho thanh menu xuất hiện

Có cách nào để thay đổi hành vi này? Tôi thích nó hơn nếu thanh menu sẽ bị ẩn khi tôi đang sử dụng một ứng dụng toàn màn hình, ngay cả khi chuột của tôi chạm vào phía trên màn hình.


5
Vâng, điều này thực sự gây phiền nhiễu. Tôi muốn ở đó một defaults writebiến có thể chỉnh sửa. Nhưng cho đến nay tôi đã không nghe về bất cứ điều gì như thế. Điều này đặc biệt khó chịu khi sử dụng VM ở toàn màn hình. Ubuntu có thanh thực đơn ở đầu và tôi thích nó theo cách đó. Nhưng tôi liên tục kích hoạt thanh menu OSX xuất hiện. :(
gentmatt

Có một điều bạn có thể làm, nhưng nó hy sinh hoàn toàn bằng cách sử dụng thanh menu - tức là, ngoài việc ẩn nó một cách bướng bỉnh, bạn thậm chí không thể kích hoạt thủ công (thông qua phím tắt Ctrl+ F2) hoặc, nó xuất hiện, vận hành bất kỳ Các mục của thanh menu thông qua các phím tắt được chỉ định của chúng, hoặc: Nhưng. Nhưng nó sẽ loại bỏ thanh menu bên ngoài nếu bạn thực sự muốn loại bỏ nó cho một chương trình cụ thể. Tải xuống 'PresentYourApps' (trên CNET), chạy ứng dụng bạn muốn xóa thanh menu, chạy PreentYourApps và đặt các tùy chọn cho ứng dụng đó cho phù hợp. Nó sẽ sửa đổi ứng dụng và khởi động lại nó.

4
Thông tin thêm: về cơ bản, 'PresentYourApps' làm gì về cơ bản là đặt giá trị LSUIPftimeationMode hoặc 'Chế độ trình bày giao diện người dùng ứng dụng' trong Info.plist cho ứng dụng đang được đề cập: tài liệu tại đây và hướng dẫn tại Lifehacker tại đây . Thay vì '4', hãy sử dụng giá trị số '3' cho chế độ 'Tất cả bị ẩn', đó là những gì các bước nhận xét trên của tôi thực hiện trong GUI dễ dàng hơn - nhưng một lần nữa, 'Tất cả bị ẩn' vô hiệu hóa TẤT CẢ quyền truy cập vào thanh menu khi ở trong đó ứng dụng, trong khi 'Tất cả bị chặn' KHÔNG ẩn menu nhưng chuột sẽ gọi nó khi chạm vào màn hình, điều mà chúng tôi không muốn.

3
nếu chỉ chúng ta có thể chỉ định một độ trễ lớn hơn ... điều này thực sự gây phiền nhiễu
Lucas Pottersky

1
Là một giải pháp khắc phục, ai đó có thể viết một ứng dụng tạo ra một "bức tường" để ngăn chuột chạm vào hàng pixel trên cùng trên màn hình (trừ khi phím được giữ để "nhả" chuột.). Một cái gì đó như thế này sẽ là bước đầu tiên được chấp nhận và là lý do cho tiền thưởng của tôi.
cloneman

Câu trả lời:


9

Thanh menu KHÔNG thể bị ẩn theo lệnh bất cứ khi nào bạn muốn do các hạn chế trong Mac OS X. Apple có thể làm điều này trong các chương trình của riêng họ nhưng họ KHÔNG làm cho các nhà phát triển khác trong Mac OS X. Một trong những lý do là Menu Apple nằm trên thanh Menu và rất hữu ích nếu ứng dụng không phản hồi hoặc nếu người dùng cần đăng xuất / tắt máy.

Có một ứng dụng có tên Menu Eclipse cho phép bạn thay đổi các hành vi của Thanh Menu (ngoại trừ việc ẩn nó).


1
"Nhật thực" không che giấu thanh menu.
Đổ chuông

1
thanh menu có thể được kích hoạt bằng tổ hợp phím hoặc tạm dừng lâu hơn - điều này vẫn cho phép người dùng thoát khỏi ứng dụng bị hỏng trong khi cũng không làm gián đoạn luồng công việc dựa trên tab của họ
Toni Leigh

1
Điều này không thể đúng 100%, vì có rất nhiều trò chơi toàn màn hình không cho phép bạn truy cập vào thanh menu. Mặc dù họ có lẽ đang sử dụng các chức năng không chuẩn cho toàn màn hình.
Wowfunhappy

@Wowfunhappy Tôi cho rằng đó là kết quả của việc chạy các ứng dụng trong chế độ trò chơi.
Zeus

Được rồi, còn Command+ Option+ Shift+ Escthì sao? Khi ứng dụng không phản hồi, tắt máy sẽ không làm gì cho đến khi ứng dụng phản hồi. Vì vậy, thanh menu không nên là một điều bắt buộc khi toàn màn hình.
Máxima Alekz

8
  • Lưu AppleScript sau vào một tệp có tên 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
    
  • Từ thiết bị đầu cuối, biên dịch nó sang một ứng dụng với lệnh sau:

    osacompile -o "/Applications/Full Screen.app" fullscreen.scpt
    
  • Mở Full Screen.app's Info.plist(ví dụ vim '/Applications/Full Screen.app/Contents/Info.plist') và thêm dòng sau vào dict:

        <key>NSUIElement</key>
        <true/>
    
  • Thêm vào Full Screen.appnhư một ngoại lệ trong System Preferences > Security & Privacy > Privacy > Accessibility.

  • Khởi động Automator và tạo mới Service.

  • Thay đổi "Dịch vụ nhận" thành " no inputtrong any application".
  • Thêm một Library > Utilities > Launch Applicationhành động.
  • Cấu hình hành động để khởi chạy Full Screenứng dụng đã tạo trước đó .
  • Lưu dịch vụ như Full Screenvà đóng Automator.
  • Bật System Preferences > Keyboard > Shortcuts > Services, cuộn xuống cuối danh sách và Full Screendịch vụ vừa tạo nên được liệt kê ở đó. Liên kết một Commandphím tắt duy nhất cho nó, như Shift+ Command+ \hoặc Command+ F11chẳng hạn.

Điều này tạo ra một lối tắt để khiến ứng dụng vào toàn màn hình trong khi gỡ bỏ thanh menu hoặc để thoát toàn màn hình đưa thanh menu trở lại. Nó cung cấp một phím tắt toàn màn hình thay thế!

Đối với các trình khởi chạy toàn màn hình dành riêng cho ứng dụng, hãy kiểm tra câu trả lời khác của tôi .

Hãy cẩn thận

Có thể có một số nhược điểm và / hoặc hành vi sai khi sử dụng phương pháp này:

  • Nó hoạt động bằng cách cài đặt ApplicationType=UIElement, khiến biểu tượng ứng dụng không được thêm / tô sáng trong Dock và làm cho ứng dụng không thể truy cập qua Command+ Tab. Các Command+ Tabvấn đề đã được báo cáo trong ý kiến , tôi không để ý nó kể từ khi tôi chủ yếu sử dụng tổng quan Mission Control để thay đổi giữa các ứng dụng toàn màn hình.
  • Nó có thể không hoạt động như mong đợi đối với một số ứng dụng cụ thể, tôi đã nhận thấy sự cố với ứng dụng Activity Monitor (thường không được sử dụng toàn màn hình) và có một báo cáo về Chrome , tôi đã không thử kể từ khi tôi sử dụng Firefox và nó hoạt động tuyệt vời .

Điều này là quá đủ cho tiền thưởng. Làm tốt lắm Đối với người dùng trong tương lai, vui lòng chỉnh sửa để mô tả bất kỳ giới hạn tiềm năng nào khi bạn tìm thấy chúng. Ngoài đỉnh đầu của tôi, có vẻ như chrome không thích điều này lắm, và cũng vậy, các ứng dụng biến mất khỏi tab cmd + khi sử dụng phím tắt này.
cloneman

@cloneman Đẹp, cảm ơn. Tôi đã thêm một phần Caveats .
pepper_chico

luôn luôn gặp lỗi: tập lệnh này chứa các thay đổi chưa được biên dịch và không thể chạy được. (-2700)
Xin Meng

Giải pháp này không hiệu quả với tôi và tôi đang dùng macOS Sierra 10.12.6. Cửa sổ lỗi cho biết: Can't get window 1 of <<class prcs>> "Full Screen" of application "System Events". Invalid index.Và sau đó cũng nói:System Events got an error: Can't get window 1 of process "Full Screen": Invalid index. (-1719)
rm.rf.etc

@ rm.rf.etc Tôi vẫn đang sử dụng nó trên Sierra, hoạt động tốt.
pepper_chico

5

Giải pháp gần nhất tôi tìm thấy là thực hiện như đã đề cập trước đó, vô hiệu hóa "Màn hình có không gian riêng" trong Điều khiển nhiệm vụ. Điều này chỉ có ý nghĩa trong môi trường đa màn hình, vì thanh thực đơn vẫn hiển thị trên màn hình chính.

Nếu bạn làm cho ứng dụng "đi toàn màn hình" (nhấp vào nút màu xanh lá cây), nó sẽ lấp đầy toàn bộ màn hình, nhưng tất cả các màn hình khác đều chuyển sang màu đen và thanh thực đơn sẽ được chuyển sang màn hình của ứng dụng. Vì vậy, giải pháp là mở rộng các cạnh của ứng dụng theo cách xa hoặc cao như bạn muốn. Ngày xưa, VMWare có một cách giải quyết toàn màn hình không sử dụng cơ chế toàn màn hình của Apple.

Trừ khi / cho đến khi Apple thấy đây là một vấn đề cần khắc phục, bạn sẽ khó có thể tìm ra giải pháp không hack. Nó rất hợp với cách hệ điều hành hoạt động (như nút home trên iPhone / iPad / iPod).


0

Một giải pháp khả thi là không loại bỏ hoàn toàn menu, nhưng thực sự giữ cho menu luôn bật (nó không lớn lắm) và thay vào đó hãy loại bỏ Dock bằng cách thực hiện thủ thuật sau.

Đi đến thiết bị đầu cuối và gõ:

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

Điều này sẽ làm cho Dock của bạn nhỏ. Nhấn ⌥ D để ẩn dock.

Ý tưởng bị đánh cắp từ đây .


Giảm câu trả lời này dưới 0 là thực sự có ý nghĩa. Nó có thể giúp những người có vấn đề tương tự, nhưng bây giờ họ sẽ bỏ qua nó, cho rằng giải pháp này hoàn toàn không hoạt động. Mục tiêu của tôi là tối ưu hóa cho không gian màn hình trong khi không bị kích thích với các tab trong trình duyệt và trình chỉnh sửa mã. Không có câu trả lời nào khác ở trên có tác dụng với tôi, nhưng việc loại bỏ Dock khiến tôi rất vui.
Alex

-1

Hãy thử sử dụng các phím nóng cho các tab chuyển đổi trong trình duyệt / ide để bạn sẽ không bao giờ di chuyển chuột của bạn lên trên cùng để xuất hiện thanh thực đơn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.