Jak korzystać tylko z zewnętrznego wyświetlacza z otwartą pokrywą MacBooka Pro w Lionie?

28

Przepraszam za trudny tytuł, ale mój problem jest następujący:

  • Kiedy jestem przy biurku, chciałbym używać tylko zewnętrznego wyświetlacza.
  • Dzięki sprytnym gestom w Lion zdecydowałem, że chcę użyć wewnętrznego gładzika na moim MacBooku
  • Aby fizycznie dotknąć gładzika, pokrywa mojego MacBooka Pro musi być otwarta

Kiedyś był to bułka z masłem w systemie Snow Leopard i niższym - podłączasz zewnętrzny wyświetlacz, zamykasz pokrywę, podłączasz urządzenie USB lub naciskasz klawisz na podłączonej klawiaturze, aby obudzić maszynę, a po jej obudzeniu i użyciu zewnętrzny wyświetlacz ponownie otwiera pokrywę, a wewnętrzny ekran pozostaje wyłączony.

Niestety Lion wykrywa, kiedy mój MacBook Pro jest otwarty i uważa, że ​​jest pomocny poprzez aktywację wyświetlacza. Czy istnieje sposób, aby to wyłączyć? Czy istnieje sposób, aby oszukać Lion, że myśli, że moja pokrywa jest zamknięta?

Kyle Cronin
źródło
1
Dlaczego nie chcesz, aby dodatkowy ekran nieruchomości zapewniał wewnętrzny wyświetlacz?
CajunLuke,
5
@CajunLuke To po prostu nie działa zbyt dobrze. Wiele ekranów jest najlepsze, gdy siedzą obok siebie i znajdują się w tej samej odległości od twoich oczu. Są również najlepsze, gdy dwa sąsiednie wyświetlacze mają ten sam fizyczny wymiar i rozdzielczość wzdłuż wspólnej krawędzi. Z moim MacBook Pro jest ani sprawy, i uważam, że to irytujące konieczności zarządzania nim, i to jest frustrujące, gdy mój wskaźnik znika do innego ekranu
Kyle Cronin
1
Inni też tego chcieli, aby uzyskać lepsze odprowadzanie ciepła oraz odbiór anteny WiFi. Pomaga w tym pionowy stojak, ale może to zwiększyć chęć Kyle'a do kontrolowania ekranu niezależnie od czujnika zbliżeniowego wyświetlacza. (to i nie trzeba kupować ani umieszczać magicznego gładzika na jego powierzchni
roboczej

Odpowiedzi:

17

Wskazówki dla systemu Mac OS X odkryły polecenie, które pozwoli na to :

Aby wrócić do zachowania sprzed Lion, wprowadź następujące polecenie w Terminalu:

sudo nvram boot-args="iog=0x0" 

Aby cofnąć tę zmianę, wpisz następujące polecenie lub zapnij pamięć PRAM (naciśnij Cmd + Opt + p + r przy włączaniu zasilania):

sudo nvram -d boot-args 
Kyle Cronin
źródło
4
Warto zauważyć: musisz ponownie uruchomić komputer, zanim to zadziała.
Damien Wilson
1
Niestety otrzymuję ten komunikat o błędzie w High Sierra: „nvram: Błąd podczas pobierania zmiennej -„ boot-args ”: (iokit / common) błąd ogólny”
OMA
Na mojejve (10.14.4) otrzymuję:nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
Ramazan Polat
17

Podjąłem sugestię Oliviera, aby ustawić monitory w celu wyeliminowania wspólnej granicy:

wprowadź opis zdjęcia tutaj

Wybrałem prawy dolny róg, ponieważ trzymam stację dokującą po lewej stronie ekranu i używam mojego prawego górnego rogu jako gorącego rogu do spania na wyświetlaczu. Przesunąłem również pasek menu na monitor stacjonarny, a ekran MacBooka jest całkowicie przyciemniony.

Była inna opcja, o której słyszałem: użycie magnesu, aby twój MacBook pomyślał, że pokrywa jest zamknięta. To działa - umieściłem fragment magnesu na lodówkę w pobliżu lewej dolnej części klawiatury i na pewno mój MacBook pomyślał, że zamknąłem wyświetlacz. Niestety, Mac OS X wyłącza również klawiaturę i gładzik, gdy myśli, że wyświetlacz jest zamknięty, więc ta opcja nie działała dla mnie.

Kyle Cronin
źródło
Czy wiesz, jak ustawić ekran zewnętrzny jako domyślny, aby okna nie pojawiały się na ekranie laptopa?
Szabolcs
1
Nieważne, szukałem niewłaściwych słów kluczowych. Wystarczy przeciągnąć biały pasek menu.
Szabolcs
4

Quick WorkAround (nie jest to rzeczywiste rozwiązanie)

Wystarczy zaznaczyć opcję „Wyświetlacze lustrzane” w Preferencjach wyświetlania. Zobacz zrzut ekranu poniżej.

Preferencje wyświetlania - Wyświetlacze lustrzane

Następnie zmniejsz jasność komputera Macbook do zera.

Hazem Alsughair
źródło
Jest z tym wiele problemów. Wyłączenie nieużywanego ekranu wiąże się z pewnymi korzyściami, a to podejście traci na nich. 1) uwalnia VRAM, ponieważ nie potrzebuje bufora ekranu (szczególnie wyświetlacza siatkówki o wysokiej rozdzielczości), 2) zapobiega przypadkowemu wyskakiwaniu okien 3) zamyka pokrywę automatycznie przesuwa wszystkie okna ekranu laptopa na wyświetlacz zewnętrzny
Alexander - Przywróć Monikę
Myślę, że przegapiłeś punkt, w którym powiedział, że ma odzwierciedlać wyświetlacze. Może to nadal wykorzystywać dodatkowe zasoby, ale prawdziwym minusem jest to, że ogranicza rozdzielczości, których można użyć. Dla mnie to działało dobrze (oba monitory mają 3360 x 1890, co jest tym, czego chcę)
tam 6
bezużyteczne, jeśli masz 2 ekrany zewnętrzne
bormat
2

Wiem, że to trochę kłótnia, ale pracuję nad tym problemem, aby przytrzymać kontrolę jasności na moim Macbooku, aż ekran zgaśnie.

Podobnie jak ty, wolę po prostu pracować na większym ekranie i pisać dalej za pomocą klawiatury laptopa (z ekranem laptopa tylko częściowo otwartym i wystarczająco otwartym, aby móc korzystać z klawiatury laptopa).

W każdym razie to rozwiązanie działa dla mnie.

Re: „… i to frustruje, kiedy mój wskaźnik znika na drugim ekranie…”

Aby obejść ten problem, wystarczy kliknąć opcję „wyświetlacze lustrzane” w Prefs Systemie> Wyświetlacze> Aranżacja

Mam nadzieję że to pomoże.

użytkownik1556373
źródło
3
„Wyświetlanie lustrzane” nie będzie działać, jeśli wyświetlacz zewnętrzny ma lepszą rozdzielczość niż wyświetlacz wewnętrzny. Używam tego samego rozwiązania co ty (ściemnianie ekranu), ale ustawiam monitory tak, aby miały bardzo niewiele wspólnych ramek, aby nie stracić wskaźnika.
olivier,
1
Re: „Mirror display”, masz rację. Powinienem wspomnieć, że mój większy zewnętrzny monitor Samsung 22 ”ma dokładnie taką samą rozdzielczość 1680x1050 jak mój MacBook Pro 15 15 2011
user1556373
@olivier: Wyświetlanie lustrzane działa, jeśli wyświetlacze zewnętrzne mają lepszą rozdzielczość. Po włączeniu opcji „Wyświetlacze lustrzane” przejdź do karty „Ekran” i wybierz ekran o lepszej rozdzielczości z menu rozwijanego „Optymalizuj dla”. Następnie uzyskasz natywną rozdzielczość na monitorze o wyższej rozdzielczości, a na monitorze wewnętrznym otrzymasz ten sam obraz, ale zmniejszysz go do niższej rozdzielczości.
OMA
2

Nie jestem pewien, czy to działa w Lion, ale jeśli masz zamkniętą pokrywę i podłączasz urządzenie USB, zasila ona monitor, a następnie możesz otworzyć pokrywę, a monitor zewnętrzny będzie włączony, a pokrywa będzie wyłączona.

Mark Steudel
źródło
2

Jakiś czas temu napotkałem ten sam problem i oto, co zrobiłem:

Najpierw dublowałem wyświetlacze, jak już sugerowano. Niedługo po tym zdałem sobie sprawę, że bardzo rozpraszające jest to, że kącik mojego oka jest wyłączony. Wymagało to zabicia jasności na ekranie MacBooka. Ale będąc leniwym facetem, którym jestem, nienawidziłem konieczności ręcznej regulacji jasności za każdym razem, gdy odłączałem / podłączałem zewnętrzny monitor. Zastanawiałem się więc, czy istnieje sposób na zautomatyzowanie tego procesu. Znalazłem tę bezpłatną aplikację o nazwie Control Plane, która pozwala mi ustawić „konteksty” na podstawie tego, czy niektóre urządzenia (monitory, dyski twarde itp.) Są podłączone, czy niektóre sieci Wi-Fi są w zasięgu itp .; i na podstawie tych kontekstów uruchom niektóre skrypty powłoki. Więc wszystko, co musiałem zrobić, to napisać skrypt jabłkowy (tzwkillBrightness.scpt), aby zabić jasność na ekranie komputera Macbook i wywołać skrypt powłoki killBrightness.scpt; i wywołaj ten skrypt powłoki w wymaganym kontekście.

killBrightness.scpt

tell application "System Preferences" to set current pane to pane "Displays"

tell application "System Events"
    tell process "System Preferences"
        repeat with theWindow in windows
            if title of theWindow as string is "Color LCD" then
                tell tab group 1 of theWindow
                    tell slider 1 of group 2
                        set value to 0
                    end tell
                end tell
            end if
        end repeat
    end tell
end tell

tell application "System Preferences" to quit

Skrypt powłoki

#!/bin/sh

osascript /path/to/killBrightness.scpt

Ponieważ podłączam wiele różnych monitorów do mojego MacBooka, zauważyłem, że kiedy podłączony jest jeden z innym współczynnikiem proporcji, moje okna zwisają z krawędzi ekranu. Rozwiązaniem tego byłoby zmiana rozmiaru okien, ale jest to bardzo nieefektywne, gdy używasz tak wielu aplikacji i okien, jak ja; także, że jestem tak leniwy jak ja, nie podobało mi się to rozwiązanie. Tak więc, z pomocą miłych ludzi z Stack Overflow, mogłem wymyślić ten AppleScript (wywoływany resizer.scpt), aby automatycznie zmieniać rozmiar wszystkich okien (prawie) wszystkich aplikacji (zastrzeżenie jest takie, że niektóre aplikacje nie używają poprawnych Haki frameworku interfejsu użytkownika, więc zmiana ich rozmiaru jest dość trudna):

resizer.scpt:

property blacklist : {"Finder", "Preview", "Console", "AppleScript Editor", "Spotify", "TaskCoach", "Skype", "VirtualBox"}
property buttonApps : {"LyX", "Eclipse"}
property buttonMaps : {{name:"LyX", Button:1, pname:"lyx"}, {name:"Eclipse", Button:2, pname:"eclipse"}, {name:"Spotify", Button:3, pname:"Spotify"}, {name:"TaskCoach", Button:3, pname:"TaskCoach"}}

tell application "Finder" to set theBounds to bounds of window of desktop

tell application "System Events"
    set bids to bundle identifier of processes where background only is false
end tell

repeat with bid in bids
    tell application id bid
        if name is not in blacklist then
            set appName to name as string
            if name is "Terminal" then
                set newBounds to {0, 0, (item 3 of theBounds) - 10, item 4 of theBounds}
                repeat with theWindow in windows
                    if visible of theWindow is true then
                        set bounds of theWindow to newBounds
                    end if
                end repeat
            else if name is not in buttonApps then
                try
                    repeat with theWindow in windows
                        if visible of theWindow is true then
                            set bounds of theWindow to theBounds
                        end if
                    end repeat
                end try
            else if name is in buttonApps then
                -- get the buttonNumber
                repeat with buttonApp in buttonMaps
                    if (name of buttonApp as string) is appName then
                        set theButton to Button of buttonApp
                    end if
                end repeat
                tell application "System Events"
                    repeat with theProcess in (processes where bundle identifier is bid)
                        try
                            tell theProcess to tell window 1 to click button theButton
                        end try
                    end repeat
                end tell
            end if
        end if
    end tell
end repeat

Teraz wszystko, co musiałem zrobić, to napisać podobny skrypt powłoki, aby wywołać resizer.scpti umieścić to w ControlPlane, i wszystko było ustawione, żeby znów być leniwym!

Mam nadzieję że to pomoże

PS: Zapomniałem wcześniej wspomnieć, że wszystko to zostało zrobione na moim 15-calowym MacBooku Pro z systemem Lion

inspectorG4dget
źródło
Dodałbym kolejny głos, jeśli to możliwe. Dzięki!
noamtm,
2

Innym rozwiązaniem, choć getto, jest umieszczenie bardzo słabego magnesu ferrytowego (takiego jak magnesy na lodówkę) w pobliżu czujnika Halla laptopa.

Ma to tę zaletę, że symuluje tryb macshell, jednocześnie utrzymując otwartą pokrywę, aby poprawić wydajność chłodzenia.

Nie używaj silnych magnesów neodymowych. Może to uszkodzić czujnik Halla.

Dla odróżnienia: magnesy ferrytowe są słabe i wykonane z czarnej mieszanki, magnesy neodymowe są bardzo mocne i zwykle pokryte niklem, o błyszczącym srebrnym wyglądzie

! [wprowadź opis zdjęcia tutaj

gatosec
źródło
Cześć! Jak rozróżnić te dwa? Skąd masz swój?
ankii
Magnesy ferrytowe @ankiiiiiii są słabe i wykonane z czarnego związku, magnesy neodymowe są bardzo mocne i zwykle są pokryte niklem, mają błyszczący srebrny wygląd.
gatosec
1

Jest to kombinacja kilku innych postów / komentarzy tutaj w jednym miejscu. Używam MacBooka Pro z systemem El Capitan.

Zalety tej metody w porównaniu z poleceniami terminalowymi:

  1. restart nie jest wymagany
  2. bez modyfikacji argumentów rozruchowych

Kroki:

  1. podłącz i włącz monitor zewnętrzny
  2. przejdź do Preferencji systemowych -> Wyświetlacze -> Rozmieszczenie
    • odznacz „lustrzane wyświetlacze”
    • przeciągnij biały pasek menu z wyświetlacza Macbooka na monitor zewnętrzny ( odniesienie do zrzutów ekranu ). To sprawia, że ​​monitor zewnętrzny jest wyświetlaczem podstawowym.
    • Ułóż niebieskie pola tak, aby dotykały tylko narożników (zrzut ekranu dostarczony przez Kyle'a Cronina we wpisach powyżej). Zapobiega to przemieszczaniu się myszy między ekranami.
  3. zamknij opcje wyświetlania i dotknij klawisza przyciemnienia macbooka (tj. F1), aż ekran będzie czarny.

Cofnij kroki (zachowując układ na później):

  1. naciśnij klawisz rozjaśniania ekranu na MacBooku (tj F2.).
  2. odłącz zewnętrzny monitor.

Cofnij kroki (aby przywrócić go do domyślnego ustawienia, jeśli zostanie ponownie podłączony):

  1. naciśnij klawisz rozjaśniania ekranu na MacBooku (tj F2.).
  2. przejdź do Preferencji systemowych -> Wyświetlacze -> Rozmieszczenie
    • przeciągnij biały pasek menu z powrotem na ekran Macbooka.
    • przeciągnij niebieskie pola z powrotem na miejsce.
    • zaznacz opcję wyświetlaczy lustrzanych.
  3. odłącz zewnętrzny monitor.
Shawn Moore
źródło
Czarny ekran nie oznacza, że ​​nie jest używany: twój system będzie wiedział, że tam jest, a renderingi są wykonywane również na ekranie laptopa. W rzeczywistości, gdy jest blakc, jedyną rzeczą, która gaśnie, jest twoje podświetlenie.
belka
0

Aktualizacja 2019

Od czasu OS X El Capitan, System Integrity Protection (SIP) nie pozwala zmieniać opcji nvram. Też boot-args="iog=0x0"już nie działa.

Aby rozwiązać ten problem, znalazłem to rozwiązanie:

  1. Przejdź do trybu odzyskiwania: uruchom ponownie i przytrzymaj +, Raż pojawi się logo Apple.
  2. Przejdź do Narzędzia> Terminal
  3. Rodzaj csrutil disable
  4. Uruchom ponownie komputer Mac
  5. Otwórz terminal i wpisz sudo nvram boot-args="niog=1"
  6. Uruchom ponownie z zamkniętą pokrywą
  7. Zaloguj się z użytkownikiem, aby otworzyć pokrywę
  8. Ze względów bezpieczeństwa przejdź ponownie do trybu odzyskiwania, wpisz csrutil enablei uruchom ponownie

Cofnij (wiele opcji):

  • Idź do terminala i wpisz sudo nvram -d boot-args.
  • ... lub uruchom ponownie i naciśnij i przytrzymaj te cztery klawisze jednocześnie: + + P+, Raby zresetować NVRAM.
Carlos Bernardez
źródło
-1

W ten sposób to osiągam.

  1. Podłącz MacBooka za pomocą kabla zasilającego (ładowarki).
  2. Połącz z zewnętrzną klawiaturą + myszą.
  3. Odwróć pokrywę MacBooka.
  4. Teraz kliknij przyciski klawiatury.
  5. Teraz używasz tylko zewnętrznego wyświetlacza, kursor nie przejdzie do drugiego wyświetlacza. Teraz jest tylko jeden wyświetlacz.
Siraj Alam
źródło
To nie działa Po zamknięciu pokrywy komputer przechodzi w tryb uśpienia, a następnie nie budzi się bez względu na to, czy naciskam klawisze na zewnętrznej klawiaturze, czy przycisk myszy Bluetooth. Po prostu nie obudzi się, dopóki nie otworzysz ponownie pokrywy.
OMA
Czy jest podłączony do ładowarki?
Siraj Alam
Próbowałem zarówno połączonych, jak i nie połączonych
OMA
To powinno działać (jeśli ładujesz) - Ale to nie jest pomocne, ponieważ wyraźnie mówi, że potrzebuje otwartego ekranu.
tamsix
-2

Po podłączeniu zewnętrznego monitora, przez jakiś czas widzisz tę rozszerzoną konfigurację monitora. Ale jeśli nie chcesz korzystać z ekranu laptopa, po prostu zamknij pokrywę MacBooka Pro i kontynuuj pracę na większym ekranie, to działa. Laptop nie przechodzi w tryb uśpienia. To jest z wydaniem Lion.

użytkownik38518
źródło
Myślę, że Kyle pytał, jak to zrobić, gdy pokrywa jest otwarta.
Kevin Chen
To nie działa Zamknięcie pokrywy powoduje, że cały komputer przechodzi w tryb uśpienia jak zwykle, więc wyświetlacz zewnętrzny również gaśnie.
OMA