Dual display output problem (unusual)

This is not a bug report, it’s a plea for help to configure my dual screen setup in an unusual way.

Most people want to “join” two displays to create one big working area. I want it the other way around:

To my low-end fanless Asus EN210 graphics card (GeForce 210 (GT218)), I have one monitor attached on the DVI output, and my TV on the HDMI output. I want them to be separate, but running simultaneously.

Right now they are one big desktop, with the monitor as :0.0 and the TV as :0.1 to the right of the monitor, configuration-wise. I can start a movie on the TV with “DISPLAY=:0.1 mplayer -fs movie.mpeg” and continue working on the monitor, but it’s annoying that the screensaver on the monitor also affects the TV, and that when I move the mouse off the right edge of the monitor it wanders into the TV image.

I used to start two X sessions, i.e. one default for the monitor using xdm on startup, and then a new startx command with another config file to start movies on the TV, but the graphics card will only output one signal at a time then, so when I enter Ctrl-Alt-F7 to continue working my TV blanks, and Ctrl-Alt-F8 blanks the monitor, so that’s not a very useful dual-display setup. I guess that’s a driver limitation, not a card limitation.

When using the nvidia-settings program, the two attached displays are both reported as being “Separate X screen (requires X restart)” and not “TwinView” at the “Configuration:” setting on the “X Server Display Configuration” page, but they’re not as separate as I’d like them to be…

So, does anyone have any tips on how I should configure my system to work the way I want it to?

My xorg.conf file looks as follows:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
    FontPath        "/usr/share/fonts/X11/100dpi"
    FontPath        "/usr/share/fonts/X11/75dpi"
    FontPath        "/usr/share/fonts/X11/Type1"
    FontPath        "/usr/share/fonts/X11/misc"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "glx"
EndSection

#http://www.penlug.org/twiki/bin/view/Main/LinuxHardwareInfoNvidia9800GTX+
Section "Extensions"
        Option "Composite" "disable"
EndSection

Section "ServerFlags"
    Option         "AllowEmptyInput" "false"
    Option         "BlankTime" "10"
    Option         "StandbyTime" "15"
    Option         "SuspendTime" "20"
    Option         "OffTime" "60"
    Option         "DontVTSwitch" "0"
    # http://www.linux-archive.org/gentoo-user/41762-xorg-keyboard.html :
    Option         "AutoAddDevices" "false"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "CorePointer"
    Option         "Protocol" "PS/2"
    Option         "Device" "/dev/gpmdata"
    Option         "Emulate3Buttons" "no"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "CoreKeyboard"
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "microsoftccurve2k"
    Option         "XkbLayout" "us"
    Option         "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "Monitor"
    Identifier     "DellU2412M"
    VendorName     "Dell"
    ModelName      "U2412M"
    HorizSync       30.0 - 83.0
    VertRefresh     50.0 - 61.0
    Option         "DPMS" "true"
EndSection

Section "Monitor"
    Identifier     "PhilipsPFL7404H12"
    VendorName     "Philips"
    ModelName      "PFL7404H/12"
    HorizSync       15.0 - 70.0
    VertRefresh     48.0 - 62.0
    Option         "DPMS" "false"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
    BusID          "PCI:2:0:0"
    Screen         0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
    BusID          "PCI:2:0:0"
    Screen         1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "DellU2412M"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DFP-0: 1920x1200 +0+0; DFP-0: 1600x1200 +0+0"
    Option         "NvAGP" "1"
    Option         "NoLogo" "true"
    Option         "RenderAccel" "true"
    Option         "UseEvents" "true"
    Option         "OnDemandVBlankInterrupts" "true"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Option         "TVOverScan" "0.77"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "PhilipsPFL7404H12"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "UseEDID" "TRUE"
    Option         "UseEDIDFreqs" "FALSE"
    Option         "UseEDIDDpi" "FALSE"
    Option         "TVStandard" "HD1080p"
    Option         "NvAGP" "1"
    Option         "NoLogo" "true"
    Option         "RenderAccel" "true"
    Option         "UseEvents" "true"
    Option         "OnDemandVBlankInterrupts" "true"
    Option         "CustomEDID" "DFP-1:/etc/X11/edid.philips_7404.bin"
    Option         "metamodes" "DFP-1: 1920x1080 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Thanks,

I don’t have solutions to all your issues, but you might want to check out putting the mouse in a “jail” after you start up a video too keep it on your main screen. [ubuntu] Confine mouse movement ("mouse jail") has a bunch of different ways to do it.

For the screen saver issue, xscreensaver takes a -display parameter that I believe will keep it to one screen only.

I think you can also try to separate your two separate X screens with a gap, eg. place the second one at +1921 rather than +1920 and the only way to move the pointer between them would then be through XWarpPointer.

Thanks, to both of you.

Plagman: the +1921 solution worked. Haven’t tried moving between using XWarpPointer as I never use the mouse on the TV.

msch: xscreensaver -display does solve the problem of locking only one screen.

However, I’ve now realized I wasn’t as clear as I should have been: I don’t only want to be able to lock/blank displays individually, I’d like to control DPMS stuff on them individually, i.e. put my monitor to sleep while watching TV. xscreensaver doesn’t seem to go that far, unfortunately.

If anyone has any ideas on how to control DPMS stuff individually for each screen in this setup, I’d appreciate learning how it’s done.