Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Sorry for the wordy title, but my problem is thus:

  • When I'm at my desk, I would like to use only the external display.
  • With the nifty gestures in Lion, I have decided I would like to use the internal trackpad on my MacBook
  • To physically touch the trackpad, the lid on my MacBook Pro needs to be open

This used to be a piece of cake with Snow Leopard and below - you plug in the external display, close the lid, plug in a USB device or press a key on a connected keyboard to wake the machine, and once it's woken up and using the external display reopen the lid and the internal screen stays off.

Unfortunately, Lion detects when my MacBook Pro is open and thinks its being helpful by activating the display. Is there a way to disable that? Is there a way to fool Lion into thinking my lid is closed?

share|improve this question
1  
Why don't you want the extra screen real estate provided by the internal display? –  CajunLuke Aug 7 '11 at 5:38
2  
@CajunLuke It just doesn't work very well. Multiple displays are best when they're sitting next to one another and are the same distance from your eyes. They're also best when two adjacent displays have the same physical dimension and resolution along the shared edge. With my MacBook Pro neither is the case, and I find it annoying having to manage it, and it's frustrating when my pointer disappears to the other screen –  Kyle Cronin Aug 7 '11 at 5:54
    
Others have also wanted this for better heat dissipation as well as WiFi antenna reception. A vertical stand can help there, but it's something that might enhance Kyle's desire to control the screen independent of the display proximity sensor. (that and not needing to buy or place a magic trackpad on his work surface) –  bmike Aug 8 '11 at 17:12
add comment

6 Answers

up vote 11 down vote accepted

Mac OS X Hints has discovered a command that will allow this:

To go back to pre-Lion behaviour enter the following command in Terminal:

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

To undo this change type type the following command or zap the PRAM (press Cmd+Opt+p+r at power up):

sudo nvram -d boot-args 
share|improve this answer
2  
Worth noting: you need to restart your computer before this will work. –  Damien Wilson Jan 23 '12 at 4:36
add comment

I've taken up olivier's suggestion to arrange my monitors to eliminate a common border:

enter image description here

I chose the bottom right because I keep my dock on the left hand side of my screen, and I use my upper right as a hot corner to sleep the display. I also moved the menu bar to my desktop monitor and the MacBook screen is completely dimmed.

There was another option I heard about: using a magnet to make your MacBook think that the lid was closed. This does work - I placed a snippet of a refrigerator magnet near the bottom left side of my keyboard and sure enough my MacBook thought I had closed the display. Unfortunately, Mac OS X also disables keyboard and trackpad input when it thinks the display is closed, so this option didn't work for me.

share|improve this answer
add comment

I know this is a bit of a kludge, but my work around for this issue is to hold down the brightness control on my macbook until the screen goes dark.

Like you, I prefer to just work on the larger display, and keep typing with my laptop keyboard (with the laptop display open only partially and open just enough the I can use the laptop's keyboard).

Anyway, this solution works for me.

Re: "..and it's frustrating when my pointer disappears to the other screen.. "

I get around that by just clicking on "mirror displays" option in the System Prefs > Displays > Arrangement

Hope this helps.

share|improve this answer
3  
"Mirror display" won't work if your external display has a better resolution than your internal display. I use the same solution as you (dimming the screen) but I arrange monitors so they have very few common border, in order not to lose my pointer. –  olivier Aug 10 '11 at 11:50
1  
Re: "Mirror display", you're right I should have mentioned that my larger external samsung 22" monitor has the exact same 1680x1050 resolution as my 2011 15" MacBook Pro –  mrBitch Aug 10 '11 at 13:09
add comment

Not sure if this works in Lion but if you have the lid closed and plug in a USB device it'll power up your monitor and then you can open the lid and your external monitor will be on and your lid will be off.

share|improve this answer
add comment

I ran into the same problem a while ago, and here's what I did:

First, I mirrored the displays, as has already been suggested. Soon after doing this, I realized that it was very distracting to have the macbook's lit screen off in the corner of my eye. This required that I kill the brightness on the macbook's screen. But being the lazy guy that I am, I hated having to manually adjust the brightness every time I un/plugged an external monitor. So I wondered if there was a way to automate the process. I found this free app called Control Plane which let's me set "contexts" based on whether certain devices (monitors, hard drives, etc) are plugged in, whether certain wi-fi networks are in range, etc; and based on these contexts, run certain shell scripts. So all I had to do was write an applescript (called killBrightness.scpt) to kill the brightness on the macbook's screen and a shell script to call killBrightness.scpt; and call this shell script in the required context.

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

The shell script

#!/bin/sh

osascript /path/to/killBrightness.scpt

Since I plug many different monitors into my macbook, I noticed that when one with a different aspect ratio is plugged in, my windows hang off the edge of the screen. The solution to this would be to resize the windows, but that's highly inefficient when you use a ton of apps and windows like I do; also, me being as lazy as I am, didn't like that solution. So, with the help of the nice folks over at Stack Overflow, I was able to come up with this AppleScript (called resizer.scpt) to automagically resize all windows of (almost) all apps (the caveat is that some applications don't use the correct UI framework hooks, so it's quite difficult to resize them):

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

Now, all I had to do was write a similar shell script to call resizer.scpt and put that into ControlPlane and I was all set to be lazy all over again!

Hope this helps

PS: I forgot to mention before that all of this was done on my 15 inch MacBook Pro, running Lion

share|improve this answer
    
I'd add another upvote if it was possible. Thanks! –  noamtm Dec 25 '13 at 13:38
add comment

Once you have hooked up the external monitor, for sometime you do see this extended monitor setup. But if you don't want to use the laptop screen, simply close the lid of the macbook pro and continue working on the larger screen this works. The laptop doesn't go into sleep mode. This is with the Lion release.

share|improve this answer
    
I believe Kyle was asking how he can do it with the lid open. –  Kevin Chen Jan 13 '13 at 18:34
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.