LINUX.ORG.RU

kde 4.6.5 и два монитора. полноэкранные приложения распахиваются на два монитора


0

2

Есть kde 4.6.5, Nvidia GTS450, и два монитора, подключенных по twinview.

файл из xorg.conf.d, который отвечает за двухмониторность (сгенерировал с помощью nvidia-settings и выкинул лишнее)

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer S242HL"
    HorizSync       31.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
EndSection

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

Проблема в том, что полноэкранные приложения (игрушки в 99% случаев) отображаются сразу на двух мониторах. В настройках KDE в разделе «экран->несколько мониторов» убрал галочки «Распахивание окон на несколких мониторах», «Полноэкранный режим на нескольких мониторах» - игрушки всё равно отображались на двух мониторах, но и окна стали отображаться на посередине виртуального рабочего стола, т.е. половина на одном мониторе, половина - на другом. Хотя, следуя логике отключение этих настроек должно задавать обратное поведение.

Пробовал включить xinerama, но отваливаются эффекты в kwin, что тоже неприемлимо.

Вопросов два - лечится ли это и как с подобным обстоит дело в Gnome 2/3?

В файле конфигурации X сервера для многомониторной конфигурации должны быть описаны связки Monitor0 Device0 Screen0 и Monotor1 Device1 Screen1 для каждого монитора, примерно так:

Section "ServerLayout"

# Removed Option "Xinerama" "0"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1280 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
    Option         "Xinerama" "0"
EndSection

Section "Files"
    ModulePath      "/usr/lib64/xorg/modules"
    FontPath        "/usr/share/fonts/misc/"
    FontPath        "/usr/share/fonts/TTF/"
    FontPath        "/usr/share/fonts/OTF"
    FontPath        "/usr/share/fonts/Type1/"
    FontPath        "/usr/share/fonts/100dpi/"
    FontPath        "/usr/share/fonts/75dpi/"
EndSection

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

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

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer AL1715"
    HorizSync       24.0 - 80.0
    VertRefresh     49.0 - 75.0
EndSection

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

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

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

Section "Screen"

# Removed Option "metamodes" "CRT: nvidia-auto-select +0+0"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "CRT: 1280x1024 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"

# Removed Option "metamodes" "DFP: nvidia-auto-select +0+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP: nvidia-auto-select +0+0; DFP: 1280x1024 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

kostik87 ★★★★★
()

Вот эти 2 галочки как раз нужно включить.Кеды кстати должны быть собраны с опцией xinerama. А с игрушками решается с помощью metamode

Section «Screen»
Identifier «Screen0»
Device «Device0»
Monitor «Monitor0»
DefaultDepth 24
Option «TwinView» «1»
Option «TwinViewXineramaInfoOrder» «DFP-0»
Option «metamodes» «DFP-0: 1920x1080 +1280+0, DFP-1: 1280x1024 +0+0; DFP-0: 1920x1080, DFP-1: 1280x1024; DFP-0: 1680x1050; DFP-0: 1600x1200; DFP-0: 1440x900; DFP-0: 1400x1050; DFP-0: 1280x1024; DFP-0: 1280x960; DFP-0: 1280x720»
Option «TwinViewOrientation» «LeftOf»
Option «UseEdidFreqs» «true»
Option «RenderAccel» «True»
Option «NoRenderExtension» «False»
Option «AllowGLXWithComposite» «True»
SubSection «Display»
Depth 24
EndSubSection
EndSection

ftp://download.nvidia.com/XFree86/Linux-x86/275.21/README/configtwinview.html

ivanich ★★
()
Ответ на: комментарий от kostik87

То что ты посоветовал это Separate X sxreens в этом режиме окошки не перетягиваются между мониторами да и kwin стартует только на первом мониторе - это,кстати, пофиксили в kde-4.7, а ТС спрашивает про twinview.

ivanich ★★
()

Если мне приспичивает во что-либо поиграть, то я с помощью nvidia-settings просто вырубаю второй монитор и играю на первом. Чтобы при этом не сбивались настройки KDE на разных мониторах, сначала запускаю отдельную X-сессию, в ней - xterm, в нём - nvidia-settings, в настройках вырубаю второй моник, а следом в xterm запускаю игру. Можно, конечно, автоматизировать каким-нибудь скриптом, но, т.к. играю я редко, то мне это делать в лом.
Есть также вариант запускать игры в оконном режиме. Из проблем может быть вылет курсора мыши из окна (в wine'е зачастую решается параметром mwo=force).

carasin ★★★★★
()

ставь в игрушках оконный режим

сабж

anonymous
()

Та же беда, sauerbraten приходится в оконном режиме запускать.

leave ★★★★★
()

Спасибо за советы. Вот предварительные результаты: с прописыванием дополнительных metamodes удалось запустить игрушку в полноэкранном режиме на одном мониторе. Второй при этом тухнет (no signal). При выходе из игрушки отваливается часть эффектов kwin типа прозрачности панелей.

DPF-0: 1920x1080; DPF-0: 1920x1080, DPF1: 1920x1080 +0+0; DPF-1: 1920x1080;
Unnamed_Hero ★★★
() автор топика
Ответ на: комментарий от kostik87

xinerama для twinview в конфиге иксов не нужна да и противопоказана, нужна лишь поддержка кедами ксинерамы, а для работы twinview достаточно и этого
Option «TwinView» «1»
Option «metamodes» «DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1920+0»

ivanich ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.