LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 10-13-2005, 07:20 PM   #1
Zoombie
Member
 
Registered: Jul 2003
Distribution: Debian Testing
Posts: 180

Rep: Reputation: 30
Running a game fullscreen on one monitor in twinview


I have a GeForce FX 5700 LE with two monitors attached. I have successfully configured TwinView, for the most part. The two screens show up fine, and most applications work. However, I'm unable to get full screen games to work. Most people complain that the game will appear between the two monitors, or stretched across, or something similar, but mine don't seem to work at all. It varies from game to game, but generally, one of the monitors goes blank, and the other has garbage leftover from whatever windows were open. If I close the game (by pressing escape or whatever), everything goes back to normal.

What I'd like is to run the game full screen on one monitor, but leave the other available for applications.

I'm aware that it's possible to maximize a window and make it borderless, but this is not really the solution I'm looking for. It requires me to close all panels, etc, and many games don't work cleanly with this solution.

I'm running Debian Testing with Xorg 6.8.2. I can post my xorg.conf if needed, but obviously it's pretty long and I figure I shouldn't clutter up the database if there isn't a reason to.

Thanks in advance.
 
Old 10-14-2005, 02:22 PM   #2
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
What you want to do is not run twinview, but rather two-head mode. Twinview combines two monitors into a single large monitor. Two head mode give you two independent monitors, each with their own desktop (can be different resolutions an bit depth). They are referenced as DISPLAY=:0.0 and DISPLAY=:0.1. You can still cursor between them, but when you run an application on a desktop it stays there.

Doing this is documented in the Nvidia README; here's an example:

Code:
Section "ServerLayout"
	Identifier     "XFree86 Configured"
        Screen         0 "Screen0"
        Screen         1 "Screen1" leftOf "Screen0"
	InputDevice    "Synaptics" "CorePointer"
	InputDevice    "Mouse0" "SendCoreEvents"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
        FontPath     "/usr/share/fonts/msttcorefonts"
EndSection

Section "Module"
	Load  "dbe"
	Load  "extmod"
	Load  "fbdevhw"
	Load  "glx"
	Load  "record"
	Load  "freetype"
	Load  "type1"
	#Load  "dri"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "IMPS/2"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5"
	Option	    "Emulate3Buttons" "no"
	Option	    "Buttons" "5"
EndSection

Section "InputDevice"
	Identifier "Synaptics"
	Driver "synaptics"
	Option "Device" "/dev/input/mice"
	Option "Protocol" "auto-dev"
	Option "Emulate3Buttons" "no"
	Option "ShmConfig" "on"
	Option "MaxTapTime" "0"
	Option "TapButton1" "0"
	Option "TapButton2" "0"
	Option "TapButton3" "0"
	#Option "HorizScrollDelta" "0"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Monitor"
	Identifier   "Monitor1"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
	HorizSync    31.5 - 90.0
	VertRefresh  60.0 - 60.0
EndSection

Section "Device"
        Option      "DigitalVibrance"   "5" 
        Option      "SWcursor"          "True" 
        Option      "HWcursor"          "False"
        Option      "UseEdidFreqs"      "True"
        #Option      "RenderAccel"       "True"
	Identifier  "Card0"
	Driver      "nvidia"
	VendorName  "nVidia Corporation"
	BoardName   "NV17 [GeForce4 440 Go]"
	BusID       "PCI:1:0:0"
	Screen	    0
EndSection

Section "Device"
        Option      "DigitalVibrance"   "5" 
        Option      "SWcursor"          "True" 
        Option      "HWcursor"          "False"
        Option      "UseEdidFreqs"      "True"
        #Option      "RenderAccel"       "True"
	Identifier  "Card1"
	Driver      "nvidia"
	VendorName  "nVidia Corporation"
	BoardName   "NV17 [GeForce4 440 Go]"
	BusID       "PCI:1:0:0"
	Screen	    1
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	DefaultDepth     24
	SubSection "Display"
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	DefaultDepth     24
        Option      "TVStandard" "NTSC-M"
        Option      "ConnectedMonitor" "TV"
	SubSection "Display"
		Depth     24
	EndSubSection
EndSection
 
Old 10-14-2005, 02:27 PM   #3
Zoombie
Member
 
Registered: Jul 2003
Distribution: Debian Testing
Posts: 180

Original Poster
Rep: Reputation: 30
Won't this make it impossible to drag windows between screens?
 
Old 10-14-2005, 02:37 PM   #4
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Yes, you will not be able to drag a window between screens. However, if your requirement is to run one monitor fullscreen with a game, there's no other screen to drag the window to.

If you sometimes want to use twinview and sometimes use two-head, you'll need to create two xorg.conf files, and switch between them (and restart your X-server).

In two-head mode, while you can't drag a window between screens, you can start applications on either screen from either screen, by prefixing with the display:

$ DISPLAY=:0.0 someapplication
$ DISPLAY=:0.1 someotherapplication

Last edited by macemoneta; 10-14-2005 at 02:39 PM.
 
Old 11-11-2005, 10:47 PM   #5
friedmud
LQ Newbie
 
Registered: Nov 2005
Distribution: AMD64 Gentoo
Posts: 2

Rep: Reputation: 0
Guys... you _can_ have twinview _and_ have fullscreen only on one monitor...

It all comes down to "meta-modes"...

I have two LCD monitors... a 1600x1200 monitor on the left and a 1280x1024 monitor on the right.

Too get games (and other fullscreen apps) to run full screen on the monitor on the left I define the following metamodes in the "Device" section:

Code:
Option     "MetaModes"			"1600x1200 +0+0,1280x1024 +1600+176;1600x1200;1280x1024;1024x768;800x600"
The first one (1600x1200 +0+0,1280x1024 +1600+176) is my dual monitor meta mode... and the default. What it does is creates two desktops, one is 1600x1200 and one is 1280x1024. It also offsets the 1280x1024 one so that it is to the right of the 1600x1200 and the bottom of both monitor match (+1600+176).

But of course that's just for my setup.... if you have two monitors that are the same size that part is a lot easier.

After defining the dual monitor mode... now just slap all the regular modes you want in there delineated by colons... 1600x1200;1280x1024;1024x768;800x600

Works like a charm.

Friedmud

PS: Here is my full xorg.conf file:

Code:
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	RgbPath      "/usr/lib64/X11/rgb"
	ModulePath   "/usr/lib64/modules"
	FontPath     "/usr/share/fonts/misc/"
	FontPath     "/usr/share/fonts/TTF/"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/CID/"
	FontPath     "/usr/share/fonts/75dpi/"
	FontPath     "/usr/share/fonts/100dpi/"
EndSection

Section "Module"
	Load  "extmod"
#	Load  "dri"
	Load  "dbe"
	Load  "record"
	Load  "xtrap"
	Load  "glx"
	Load  "type1"
	Load  "freetype"
EndSection

Section "Extensions"
#	Option "Composite" "Enable"
        Option "RENDER" "true" 
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"                                                                                                                             
    # Intellimsouse
                                                                                                                                                 
    Identifier  "Mouse0"
    Driver      "mouse"
    Option "Protocol"    "ExplorerPS/2"
    Option "Device"      "/dev/input/mouse0"
    Option "Buttons"     "7"
    Option "ZAxisMapping" "6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "DigitalVibrance"    	# <i>
        #Option     "NoFlip"             	# [<bool>]
        #Option     "Dac8Bit"            	# [<bool>]
        #Option     "NoLogo"             	# [<bool>]
        #Option     "UBB"                	# [<bool>]
        #Option     "Stereo"             	# <i>
        #Option     "SWcursor"           	# [<bool>]
        Option     "HWcursor" "True"          	# [<bool>]
        #Option     "VideoKey"           	# <i>
        #Option     "NvAGP"              	# <i>
        #Option     "IgnoreEDID"         	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
        #Option     "ConnectedMonitor"   	# <str>
        #Option     "ConnectedMonitors"  	# <str>
        #Option     "TVStandard"         	# <str>
        #Option     "TVOutFormat"        	# <str>
        Option     "RenderAccel" "True"       	# [<bool>]
        Option     "CursorShadow" "True"      	# [<bool>]
        #Option     "CursorShadowAlpha"  	# <i>
        #Option     "CursorShadowXOffset" 	# <i>
        #Option     "CursorShadowYOffset" 	# <i>
        #Option     "UseEdidFreqs"       	# [<bool>]
        #Option     "FlatPanelProperties" 	# <str>
        Option     "TwinView"			"true"	# [<bool>]
        Option     "TwinViewOrientation"	"RightOf" 	# <str>
        #Option     "SecondMonitorHorizSync" 	# <str>
        #Option     "SecondMonitorVertRefresh" 	# <str>
        Option     "MetaModes"			"1600x1200 +0+0,1280x1024 +1600+176;1600x1200;1280x1024;1024x768;800x600"
        #Option     "UseInt10Module"     	# [<bool>]
        #Option     "NoTwinViewXineramaInfo" 	# [<bool>]
        Option     "NoRenderExtension" "False" 	# [<bool>]
        #Option     "Overlay"            	# [<bool>]
        #Option     "CIOverlay"          	# [<bool>]
        #Option     "ForceEmulatedOverlay" 	# [<bool>]
        #Option     "TransparentIndex"   	# <i>
        #Option     "OverlayDefaultVisual" 	# [<bool>]
        #Option     "NvEmulate"          	# <i>
        #Option     "NoBandWidthTest"    	# [<bool>]
        #Option     "CustomEDID-CRT-0"   	# <str>
        #Option     "CustomEDID-CRT-1"   	# <str>
        #Option     "CustomEDID-DFP-0"   	# <str>
        #Option     "CustomEDID-DFP-1"   	# <str>
        #Option     "CustomEDID-TV-0"    	# <str>
        #Option     "CustomEDID-TV-1"    	# <str>
        #Option     "TVOverScan"         	# <f>
        #Option     "IgnoreDisplayDevices" 	# <str>
        #Option     "MultisampleCompatibility" 	# [<bool>]
        #Option     "RegistryDwords"     	# <str>
        #Option     "RegistryBinary"     	# <str>
        #Option     "NoPowerConnectorCheck" 	# [<bool>]
        #Option     "AllowDFPStereo"     	# [<bool>]
        #Option     "XvMCUsesTextures"   	# [<bool>]
        #Option     "HorizSync"          	# <str>
        #Option     "VertRefresh"        	# <str>
	Option "RandRRotation" "True"
        Option     "AllowGLXWithComposite"  "True"	# [<bool>]
	Identifier  "Card0"
	Driver      "nvidia"
	VendorName  "nVidia Corporation"
	BoardName   "Unknown Board"
	BusID       "PCI:5:0:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	DefaultDepth 24
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
		Modes "1600x1200 1280x1024 1024x768 800x600 640x480 320x240"
	EndSubSection
EndSection

Last edited by friedmud; 11-11-2005 at 11:10 PM.
 
Old 06-16-2009, 01:11 PM   #6
Steel_J
Member
 
Registered: Oct 2004
Location: Montreal, Canada
Distribution: Linux Mint 21.3 Cinnamon
Posts: 359
Blog Entries: 1

Rep: Reputation: 31
Old thread, but still useful

Thank you friedmud,

I just migrated to a Nvidia Geforce 9800GT from years of using ATI cards on my systems.

Setup of the drivers was a breeze for my dual monitor setup. 2 LCD's at 1440x900 on Opensuse 11.0 (KDE 3.4)

Still, one problem remained. My games ran in the middle of the 2 monitors.

The solution was the metamodes. Metamodes are mentionned as the likely problem on other forums, but none had the same precise way of explaining it and none had the syntax my xorg.conf file is using, i.e
Code:
+0+0
method.

God knows xorg files have many different syntaxes that all lead to the same goal, but it becomes a problem when looking for solutions.

So I applied friedmod's little guide to my own setup like so, since I have to monitors with identical resolutions:
Code:
Option         "metamodes" "DFP-0: 1440x900 +0+0, DFP-1: 1440x900 +1440+0; DFP-0: 1440x900 +0+0"
The first mode becomes the default desktop mode and the second, after the
Code:
;
, is the one fullscreen games pickup on.

It works flawlessly for Quake4, Doom3, Quake Wars, Ut2004, Prey, etc....

Here is my complete xorg.conf:
Code:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildmeister@builder63)  Thu Apr 16 19:37:21 PDT 2009

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 1.0  (buildmeister@builder63)  Thu Apr 16 19:36:29 PDT 2009
# /.../
# SaX generated X11 config file
# Created on: 2009-05-31T20:19:18-0400.
#
# Version: 8.1
# Contact: Marcus Schaefer <sax@suse.de>, 2005
# Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-users>
#
# Automatically generated by [ISaX] (8.1)
# PLEASE DO NOT EDIT THIS FILE!
#

Section "ServerLayout"
    Identifier     "Layout[all]"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard[0]" "CoreKeyboard"
    InputDevice    "Mouse[1]" "CorePointer"
    Option         "Clone" "off"
    Option         "Xinerama" "off"
EndSection

Section "Files"
    InputDevices      "/dev/gpmdata"
    InputDevices      "/dev/input/mice"
    FontPath        "/usr/share/fonts/misc:unscaled"
    FontPath        "/usr/share/fonts/local"
    FontPath        "/usr/share/fonts/75dpi:unscaled"
    FontPath        "/usr/share/fonts/100dpi:unscaled"
    FontPath        "/usr/share/fonts/Type1"
    FontPath        "/usr/share/fonts/URW"
    FontPath        "/usr/share/fonts/Speedo"
    FontPath        "/usr/share/fonts/PEX"
    FontPath        "/usr/share/fonts/cyrillic"
    FontPath        "/usr/share/fonts/latin2/misc:unscaled"
    FontPath        "/usr/share/fonts/latin2/75dpi:unscaled"
    FontPath        "/usr/share/fonts/latin2/100dpi:unscaled"
    FontPath        "/usr/share/fonts/latin2/Type1"
    FontPath        "/usr/share/fonts/latin7/75dpi:unscaled"
    FontPath        "/usr/share/fonts/baekmuk:unscaled"
    FontPath        "/usr/share/fonts/japanese:unscaled"
    FontPath        "/usr/share/fonts/kwintv"
    FontPath        "/usr/share/fonts/truetype"
    FontPath        "/usr/share/fonts/uni:unscaled"
    FontPath        "/usr/share/fonts/CID"
    FontPath        "/usr/share/fonts/ucs/misc:unscaled"
    FontPath        "/usr/share/fonts/ucs/75dpi:unscaled"
    FontPath        "/usr/share/fonts/ucs/100dpi:unscaled"
    FontPath        "/usr/share/fonts/hellas/misc:unscaled"
    FontPath        "/usr/share/fonts/hellas/75dpi:unscaled"
    FontPath        "/usr/share/fonts/hellas/100dpi:unscaled"
    FontPath        "/usr/share/fonts/hellas/Type1"
    FontPath        "/usr/share/fonts/misc/sgi:unscaled"
    FontPath        "/usr/share/fonts/xtest"
    FontPath        "/opt/kde3/share/fonts"
EndSection

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

Section "ServerFlags"

# Removed Option "Xinerama" "0"
# Removed Option "Xinerama" "1"
    Option         "AllowMouseOpenFail" "on"
    Option         "ZapWarning" "on"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard[0]"
    Driver         "kbd"
    Option         "Protocol" "Standard"
    Option         "XkbLayout" "ca"
    Option         "XkbModel" "microsoftpro"
    Option         "XkbRules" "xfree86"
    Option         "XkbVariant" "fr"
EndSection

Section "InputDevice"
    Identifier     "Mouse[1]"
    Driver         "mouse"
    Option         "Buttons" "10"
    Option         "Device" "/dev/input/mice"
    Option         "Name" "Logitech Cordless Mouse+Keyboard Receiver"
    Option         "Protocol" "explorerps/2"
    Option         "Vendor" "Sysp"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Modes"
    Identifier         "Modes[0]"
EndSection

Section "Monitor"
    Identifier     "Monitor[0]"
    VendorName     "--> VESA"
    ModelName      "1024X768@60HZ"
    UseModes       "Modes[0]"
    DisplaySize     409    256
    HorizSync       31.0 - 48.0
    VertRefresh     50.0 - 60.0
    Option         "CalcAlgorithm" "XServerPool"
    Option         "DPMS"
    Option         "PreferredMode" "1024x768"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer P191W"
    HorizSync       30.0 - 82.0
    VertRefresh     56.0 - 76.0
EndSection

Section "Device"
    Identifier     "Device[0]"
    Driver         "nvidia"
    VendorName     "VESA"
    BoardName      "Framebuffer Graphics"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9800 GT"
EndSection

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

Section "Screen"
    Identifier     "Screen[0]"
    Device         "Device[0]"
    Monitor        "Monitor[0]"
    SubSection     "Display"
        Modes      "default"
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "default"
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "default"
    EndSubSection
    SubSection     "Display"
        Depth       8
        Modes      "default"
    EndSubSection
EndSection

Section "Screen"
# Removed Option "TwinView" "0"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DFP-0: 1440x900 +0+0, DFP-1: 1440x900 +1440+0; DFP-0: 1440x900 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-1: 1440x900 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
TwinView: want maximized window on [B]one[/B] monitor. pingu Linux - Hardware 0 10-25-2005 02:13 AM
Twinview - Red tinted second monitor! mmf144 Linux - Hardware 1 05-20-2005 03:16 PM
twinview first and second monitor switch jnsenit Linux - General 3 05-01-2005 02:07 AM
fullscreen opengl apps with twinview Ljubomir Linux - Software 0 02-20-2005 08:37 AM
Twinview/Dual Monitor problem Totaldom Linux - Newbie 0 07-06-2004 08:59 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 11:29 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration