Nie wiem czy opcja Virtual byłaby poręczna. Możesz np. podać wysokość 800, ale część ekranu będzie poza monitorem i żeby dojechać , będziesz musiał zjechać wskaźnikiem myszy na krawędź od strny tej części.
Tyle że pasek menadżera zapewne też domyślnie wyląduje w tym niewidzialnym kawałku.
Jednym ze sposobów na za duże okienka jest przytrzymać Alt, kliknąć w dowolne miejsce okna i przeciągnąć. Nie działa to na ogół z oknami zmaksymalizowanymi.
To już jest jakieś rozwiązanie.
Zobacz man xorg.conf lub przykłady w sieci.
Próbowałem na kilka sposobów przekazać sterownikowi i810 ustawienia rozmiaru monitora. Wygląda na to że zawsze on konfiguruje wyjście VGA, mimo że podaje mu że opis ekranu dotyczy wyjścia LVDS.
Section "Module"
Load "dbe" # Double buffer extension
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
# This loads the font modules
# Load "type1"
Load "freetype"
# Load "xtt"
# This loads the GLX module
Load "glx"
# This loads the DRI module
# Load "dri"
EndSection
Section "Files"
FontPath "/usr/share/fonts/TTF"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/75dpi/:unscaled"
# FontPath "/usr/lib/X11/fonts/local/"
FontPath "/usr/lib/X11/fonts/misc/"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Speedo/"
FontPath "/usr/lib/X11/fonts/Type1/"
FontPath "/usr/lib/X11/fonts/TTF/"
FontPath "/usr/lib/X11/fonts/OTF/"
FontPath "/usr/lib/X11/fonts/cyrillic/"
FontPath "/usr/lib/X11/fonts/75dpi/"
FontPath "/usr/lib/X11/fonts/100dpi/"
EndSection
Section "ServerFlags"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "MouseSystems" # Mouse Systems (3-button protocol)
Option "Device" "/dev/gpmdata"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "LcdMonitor"
DisplaySize 224 135
Option "DMPS"
Option "PrereferedMode" "1024x768"
EndSection
Section "Device"
Identifier "intel845"
Driver "i810"
BusID "PCI:00:02:00"
Option "monitor-LVDS" "ScreenLCD"
EndSection
Section "Screen"
Identifier "ScreenLCD"
Device "intel845"
Monitor "LcdMonitor"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "800x600"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Simple Layout"
Screen "ScreenLCD"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
#Section "DRI"
# Mode 0666
#EndSection
Kompletnego loga xorg mogę podesłać, ale chyba w tym temacie ten fragment jest najważniejszy
(**) intel(0): Depth 24, (--) framebuffer bpp 32
(==) intel(0): RGB weight 888
(==) intel(0): Default visual is TrueColor
(II) intel(0): Integrated Graphics Chipset: Intel(R) 945GME
(--) intel(0): Chipset: "945GME"
(--) intel(0): Linear framebuffer at 0xC0000000
(--) intel(0): IO registers at addr 0xDFE80000
(WW) System lacks support for changing MTRRs
(II) intel(0): 2 display pipes available.
(==) intel(0): Using EXA for acceleration
(II) Loading sub module "int10"
(II) LoadModule: "int10"
(II) Reloading /usr/lib/xorg/modules//libint10.so
(II) intel(0): initializing int10
(WW) intel(0): Bad V_BIOS checksum
(II) intel(0): Primary V_BIOS segment is: 0xc000
(II) intel(0): VESA BIOS detected
(II) intel(0): VESA VBE Version 3.0
(II) intel(0): VESA VBE Total Mem: 7872 kB
(II) intel(0): VESA VBE OEM: Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS
(II) intel(0): VESA VBE OEM Software Rev: 1.0
(II) intel(0): VESA VBE OEM Vendor: Intel Corporation
(II) intel(0): VESA VBE OEM Product: Intel(r) 82945GM Chipset Family Graphics Controller
(II) intel(0): VESA VBE OEM Product Rev: Hardware Version 0.0
(II) Loading sub module "ddc"
(II) LoadModule: "ddc"(II) Module "ddc" already built-in
(II) Loading sub module "i2c"
(II) LoadModule: "i2c"(II) Module "i2c" already built-in
(II) intel(0): Output VGA using monitor section LcdMonitor
(II) intel(0): I2C bus "CRTDDC_A" initialized.
(II) intel(0): Output LVDS has no monitor section
(II) intel(0): I2C bus "LVDSDDC_C" initialized.
(II) intel(0): Attempting to determine panel fixed mode.
(II) intel(0): I2C device "LVDSDDC_C:ddc2" registered at address 0xA0.
(II) intel(0): EDID vendor "HSD", prod id 1001
(II) intel(0): DDCModeFromDetailedTiming: 1024x600 Warning: We only handle seperate sync.
(II) intel(0): EDID vendor "HSD", prod id 1001
(II) intel(0): DDCModeFromDetailedTiming: 1024x600 Warning: We only handle seperate sync.
(II) intel(0): Output VGA disconnected
(II) intel(0): Output LVDS connected
(II) intel(0): Output LVDS using initial mode 1024x600
(II) intel(0): Monitoring connected displays enabled
(II) intel(0): detected 256 kB GTT.
(II) intel(0): detected 7932 kB stolen memory.
(==) intel(0): video overlay key set to 0x101fe
(==) intel(0): Will not try to enable page flipping
(==) intel(0): Triple buffering disabled
(==) intel(0): Intel XvMC decoder disabled
(==) intel(0): Using gamma correction (1.0, 1.0, 1.0)
(**) intel(0): Display dimensions: (224, 135) mm
(**) intel(0): DPI set to (116, 144)
W mojej konfiguracji testowej probuje wymusic rozdzielczosc 800x600 po to zeby sprawdzic czy sterownik umozliwia wymuszenie rozdzielczosci. Niestety mimo przypisania w liscie trybow ekranu w sekcji Screen kilku innych niz domyslne 1024x600 (bez podawania 1024x600), zawsze xorg startuje z rozdzielczoscia 1024x600.
Tak nie zawsze wymusisz tryb. Jeśli w Modes podajesz "800x600", to serwer Xorg próbuje znaleźć tryb o takiej nazwie wśród odczytanych z EDID i zdefiniowanych w konfigu. Być może odnotował to gdzieś w logu, że nie znalazł trybu o nazwie "800x600". Zerknij na mój kawałek konfigu:
Section "Modes"
Identifier "tryby"
ModeLine "1024x768_85.00" 94.50 1024 1096 1192 1376 768 769 772 808 +hsync +vsync
Modeline "1280x1024_85.00" 157.50 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
EndSection
Section "Monitor"
Identifier "SyncMaster"
DisplaySize 312 234
[b]UseModes[/b] "tryby"
Option "PreferredMode" "1024x768_85.00"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "ATI Technologies, Inc. Radeon RV250 If [Radeon 9000]"
Monitor "SyncMaster"
DefaultDepth 24
EndSection
W wersji starszej niż 1.5 serwera Xorg definicja trybów może wyglądać nieco inaczej. Trzeba czytać man xorg.conf z używanej bieżąco paczki. W "1024x768" wziętego z EDID ekran miałem z jakiegoś powodu przesunięty i musiałem dodać własny tryb.
Zainteresuj się może kalkulatorem gtf i poleceniem xrandr (w nim teoretycznie możesz dodać i użyć tryb bez restartu Xorg).
Nie wiem na ile takie wymuszanie jest bezpieczne dla monitora.