Como uso apenas a tela externa com a tampa do meu MacBook Pro aberta no Lion?

28

Desculpe pelo título prolixo, mas meu problema é o seguinte:

  • Quando estou na minha mesa, gostaria de usar apenas o monitor externo.
  • Com os gestos bacanas do Lion, decidi que gostaria de usar o trackpad interno no meu MacBook
  • Para tocar fisicamente no trackpad, a tampa do meu MacBook Pro precisa estar aberta

Isso costumava ser um pedaço de bolo com o Snow Leopard e abaixo - você conecta o monitor externo, fecha a tampa, conecta um dispositivo USB ou pressiona uma tecla no teclado conectado para ativar a máquina e, assim que acorda e usa o monitor externo reabre a tampa e a tela interna permanece desligada.

Infelizmente, o Lion detecta quando o meu MacBook Pro está aberto e considera útil ativando a tela. Existe uma maneira de desativar isso? Existe uma maneira de enganar Lion e pensar que minha tampa está fechada?

Kyle Cronin
fonte
1
Por que você não deseja o espaço extra da tela fornecido pelo monitor interno?
CajunLuke
5
@CajunLuke Simplesmente não funciona muito bem. Várias exibições são melhores quando estão sentadas próximas uma da outra e estão à mesma distância dos seus olhos. Eles também são melhores quando dois monitores adjacentes têm a mesma dimensão e resolução física ao longo da borda compartilhada. Com o meu MacBook Pro não é o caso, e acho que é chato ter que gerenciá-lo, e é frustrante quando o meu ponteiro desaparece para o outro ecrã
Kyle Cronin
1
Outros também queriam isso para melhor dissipação de calor, bem como recepção de antena WiFi. Um suporte vertical pode ajudar, mas é algo que pode aumentar o desejo de Kyle de controlar a tela independentemente do sensor de proximidade da tela. (que e não a necessidade de comprar ou colocar um trackpad magia em sua superfície de trabalho)
bmike

Respostas:

17

O Mac OS X Hints descobriu um comando que permitirá isso :

Para voltar ao comportamento anterior ao Leão, digite o seguinte comando no Terminal:

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

Para desfazer essa alteração, digite o seguinte comando ou zap a PRAM (pressione Cmd + Opt + p + r na inicialização):

sudo nvram -d boot-args 
Kyle Cronin
fonte
4
Vale notar: você precisa reiniciar o computador para que isso funcione.
Damien Wilson
1
Infelizmente, recebo esta mensagem de erro no High Sierra: "nvram: Erro ao obter variável - 'boot-args': erro geral (iokit / common)"
OMA
No Mojave (10.14.4) obtendo isto:nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
Ramazan Polat
17

Aceitei a sugestão de Olivier de organizar meus monitores para eliminar uma fronteira comum:

insira a descrição da imagem aqui

Escolhi o canto inferior direito, porque mantenho minha base no lado esquerdo da tela e uso o canto superior direito como um canto quente para exibir a tela. Também mudei a barra de menus para o meu monitor de mesa e a tela do MacBook está completamente esmaecida.

Ouvi falar de outra opção: usar um ímã para fazer o seu MacBook pensar que a tampa estava fechada. Isso funciona - coloquei um trecho de um imã de geladeira na parte inferior esquerda do teclado e, com certeza, o meu MacBook achou que eu tinha fechado a tela. Infelizmente, o Mac OS X também desabilita a entrada do teclado e do trackpad quando pensa que a tela está fechada, portanto essa opção não funcionou para mim.

Kyle Cronin
fonte
Você sabe como tornar a tela externa o padrão para que o Windows não fique aparecendo na tela do laptop?
precisa
1
Não importa, procurei as palavras-chave erradas. Você só precisa arrastar a barra de menus branca.
Szabolcs
4

Quick WorkAround (Não é uma solução real)

Basta marcar a opção "Espelhar telas" em Preferências de exibição. Veja a captura de tela abaixo.

Preferências de exibição - Monitores espelhados

Em seguida, abaixe o brilho do Macbook para zero.

Hazem Alsughair
fonte
Há vários problemas com isso. Há benefícios em desativar uma tela não utilizada, e essa abordagem perde para eles. 1) libera a VRAM, porque não precisa de um buffer de tela (particularmente uma tela retina de alta resolução), 2) impede que as janelas apareçam acidentalmente lá 3) fecha a tampa move automaticamente todas as janelas da tela do laptop para a tela externa
Alexander - Restabelece Monica
Eu acho que você perdeu o ponto em que ele disse para espelhar as telas. Isso ainda pode usar alguns recursos extras, mas a desvantagem real aqui é que ela restringe as resoluções que você pode usar. Para mim, isso funcionou bem (os dois monitores rodam 3360x1890, e é isso que eu quero)
therealsix
inútil se você tiver 2 telas externas
bormat 26/11
2

Sei que isso é um pouco complicado, mas minha solução para esse problema é manter o controle de brilho do meu macbook até a tela escurecer.

Como você, eu prefiro apenas trabalhar na tela maior e continuar digitando com o teclado do meu laptop (com a tela do laptop aberta apenas parcialmente e aberta apenas o suficiente para que eu possa usar o teclado do laptop).

De qualquer forma, esta solução funciona para mim.

Re: "..e é frustrante quando meu ponteiro desaparece para a outra tela .."

Para contornar isso, basta clicar na opção "espelhar monitores" em Prefs do sistema> Monitores> Arranjo

Espero que isto ajude.

user1556373
fonte
3
A "tela espelhada" não funcionará se a sua tela externa tiver uma resolução melhor que a sua tela interna. Eu uso a mesma solução que você (escurecendo a tela), mas organizo os monitores para que tenham muito poucas bordas comuns, para não perder o ponteiro.
21411 olivier
1
Re: "display Mirror", você está certo eu deveria ter mencionado que o meu maior externo samsung 22" monitor tem exatamente a mesma resolução 1680x1050 como o meu 2011 15" MacBook Pro
user1556373
@ olivier: A tela espelhada funciona se as telas externas tiverem melhor resolução. Após ativar "Espelhar telas", vá para a guia "Tela" e selecione a tela com a melhor resolução no menu suspenso "Otimizar para". Você obterá sua resolução nativa no monitor de alta resolução e no monitor interno obterá a mesma imagem, mas reduzida à sua resolução mais baixa.
OMA
2

Não tenho certeza se isso funciona no Lion, mas se você tiver a tampa fechada e conectar um dispositivo USB, ele ligará o monitor e você poderá abrir a tampa e o monitor externo estará ligado e a tampa estará desligada.

Mark Steudel
fonte
2

Corri para o mesmo problema há um tempo atrás, e aqui está o que eu fiz:

Primeiro, espelhei as telas, como já foi sugerido. Logo depois disso, percebi que era muito perturbador ter a tela iluminada do macbook no canto do meu olho. Isso exigiu que eu matasse o brilho na tela do macbook. Mas sendo o cara preguiçoso que eu sou, eu odiava ter que ajustar manualmente o brilho toda vez que eu desconectava um monitor externo. Então me perguntei se havia uma maneira de automatizar o processo. Encontrei este aplicativo gratuito chamado Control Plane, que permite definir "contextos" com base no fato de determinados dispositivos (monitores, discos rígidos etc.) estarem conectados, se certas redes wi-fi estão dentro do alcance, etc; e com base nesses contextos, execute certos scripts de shell. Então, tudo que eu tinha que fazer era escrever um manuscrito (chamadokillBrightness.scpt) para matar o brilho na tela do macbook e um shell script para chamar killBrightness.scpt; e chame esse shell script no contexto necessário.

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

O script de shell

#!/bin/sh

osascript /path/to/killBrightness.scpt

Desde que conecto muitos monitores diferentes no meu macbook, notei que, quando um com uma proporção diferente é conectado, minhas janelas ficam penduradas na borda da tela. A solução para isso seria redimensionar as janelas, mas isso é altamente ineficiente quando você usa uma tonelada de aplicativos e janelas como eu; além disso, eu sendo tão preguiçosa quanto eu, não gostava dessa solução. Portanto, com a ajuda do pessoal do Stack Overflow, pude criar esse AppleScript (chamado resizer.scpt) para redimensionar automaticamente todas as janelas de (quase) todos os aplicativos (a ressalva é que alguns aplicativos não usam o correto Ganchos de estrutura de interface do usuário, por isso é muito difícil redimensioná-los):

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

Agora, tudo o que eu precisava fazer era escrever um script de shell semelhante para chamar resizer.scpte colocar isso no ControlPlane e eu estava pronto para ser preguiçoso novamente!

Espero que isto ajude

PS: Eu esqueci de mencionar antes que tudo isso foi feito no meu MacBook Pro de 15 polegadas, executando o Lion

inspectorG4dget
fonte
Eu adicionaria outro voto positivo, se fosse possível. Obrigado!
noamtm
2

Outra solução, embora gueto, é colocar um ímã de ferrite muito fraco (como ímãs de geladeira) perto do sensor de efeito Hall do laptop.

Isso tem o benefício de simular o modo macshell, mantendo a tampa aberta para melhorar o desempenho do resfriamento.

Não use ímãs fortes de neodímio. Isso pode danificar o sensor de efeito Hall.

Para diferenciar: os ímãs de ferrite são fracos e feitos de um composto preto, os ímãs de neodímio são muito fortes e geralmente revestidos com níquel, com uma aparência prateada brilhante

! [insira a descrição da imagem aqui

gatosec
fonte
Oi! como faço para diferenciar entre os dois? Onde você conseguiu o seu?
ankii
Os ímãs de ferrite do @ankiiiiiii são fracos e feitos de um composto preto; os ímãs de neodímio são muito fortes e geralmente revestidos com níquel, com uma aparência prateada brilhante.
gatosec
1

Esta é uma combinação de alguns dos outros posts / comentários aqui em um só lugar. Estou usando um MacBook Pro executando o El Capitan.

Vantagens deste método sobre os comandos do terminal:

  1. não é necessário reiniciar
  2. nenhuma modificação do boot-args

Passos:

  1. conecte e ligue o monitor externo
  2. vá para Preferências do sistema -> Monitores -> Arranjo
    • desmarque "monitores de espelho"
    • arraste a barra de menus branca da tela do macbook para o monitor externo ( referência com capturas de tela ). Isso torna o monitor externo a tela principal.
    • Organize as caixas azuis para que apenas os cantos se toquem (captura de tela fornecida por Kyle Cronin nas postagens acima). Isso impede que o mouse se mova entre as telas.
  3. feche as opções de exibição e toque na tecla mais não ofuscante do macbook (ou seja F1) até que a tela fique preta.

Desfazer etapas (preservando a organização para mais tarde):

  1. toque na tecla iluminar a tela no MacBook (ou seja F2).
  2. desconecte o monitor externo.

Desfazer as etapas (para voltar ao padrão se conectado novamente):

  1. toque na tecla iluminar a tela no MacBook (ou seja F2).
  2. vá para Preferências do sistema -> Monitores -> Arranjo
    • arraste a barra de menus branca de volta para a tela do macbook.
    • arraste as caixas azuis de volta ao lugar.
    • marque a opção de exibição de espelho.
  3. desconecte o monitor externo.
Shawn Moore
fonte
Uma tela preta não significa que ela não é usada: seu sistema saberá que está lá e as renderizações também serão feitas na tela do laptop. Na verdade, quando o blakc, a única coisa que dispara é a luz de fundo.
22718 belka
0

Atualização 2019

Desde o OS X El Capitan, o System Integrity Protection (SIP) não permite alterar as opções do nvram. Também boot-args="iog=0x0"não está mais funcionando.

Para resolver esse problema, encontrei esta solução:

  1. Vá para o Modo de recuperação: Reinicialize e mantenha pressionado + Raté o logotipo da Apple aparecer.
  2. Vá para Utilitários> Terminal
  3. Tipo csrutil disable
  4. Reinicie o Mac
  5. Abra um terminal e digite sudo nvram boot-args="niog=1"
  6. Reinicie com a tampa fechada
  7. Entre com seu usuário e você pode abrir a tampa
  8. Por motivos de segurança, vá para o Modo de recuperação novamente, digite csrutil enablee reinicie

Desfazer (várias opções):

  • Vá para o terminal e digite sudo nvram -d boot-args.
  • ... ou reinicie e mantenha pressionadas estas quatro teclas juntas: + + P+ Rpara redefinir sua NVRAM.
Carlos Bernardez
fonte
-1

É assim que eu consigo isso.

  1. Conecte o seu MacBook ao cabo de alimentação (carregador).
  2. Conecte-se com teclado + mouse externo.
  3. Abaixe a tampa do MacBook.
  4. Agora clique nos botões do teclado.
  5. Agora você está usando apenas o monitor externo; o cursor não entrará no outro monitor. Existe apenas uma exibição agora.
Siraj Alam
fonte
Isso não funciona. Depois de fechar a tampa, o computador entra no modo de suspensão e, em seguida, não é ativado, não importa se eu pressiono as teclas do teclado externo ou o botão do mouse Bluetooth. Só não vai acordar até você abrir a tampa novamente.
OMA
Está conectado ao carregador?
Siraj Alam 14/04
Tentei conectado e não conectado
OMA
Isso deve funcionar (se você estiver cobrando) - Mas não é útil, pois ele diz explicitamente que precisa da tela aberta.
therealsix 12/06
-2

Depois de conectar o monitor externo, por algum tempo você vê essa configuração estendida do monitor. Mas se você não quiser usar a tela do laptop, basta fechar a tampa do macbook pro e continuar trabalhando na tela maior. O laptop não entra no modo de suspensão. Isso é com o lançamento do Lion.

user38518
fonte
Acredito que Kyle estava perguntando como ele pode fazer isso com a tampa aberta.
Kevin Chen
Isso não funciona. Fechar a tampa faz com que o computador inteiro entre no modo de suspensão, como sempre, para que o monitor externo também fique em branco.
OMA