Lancer une deuxième session X avec une résolution et un son différents

7

J'ai deux écrans connectés avec twinview. Certaines applications le traitent comme un grand panneau 3840 * 1200 mais cela est plutôt indésirable dans les jeux de tir à la première personne car vos vues se retrouvent dans l’écart entre les deux écrans.

Je lance donc généralement les jeux Wine dans une fenêtre 1920 * 1200px. Le gestionnaire de fenêtres le rend plein écran sur un écran et cela fonctionne parfaitement pour certains jeux. Cependant, certains jeux sont à la traîne et cela permet à la souris de voler sur le côté de la fenêtre Wine, ce qui fait tourner mon lecteur comme un renard sur la drogue.

Et puis, il y a tout un tas de jeux natifs (X3, OpenArena, Quake4, QuakeWars, etc.) qui n'ont pas un bon mode fenêtré. En utilisant le mode fenêtré sur X3, la souris devient sensible à la souris.

Ce ne serait pas bien si je pouvais lancer des jeux dans une nouvelle session X qui utilisait un seul écran?!

Ça irait. Je suis aussi loin que ça pour Steam:

#!/bin/sh

X :3 -ac & nvidia-settings --load-config-only
sleep 10 # wait for X to catch up

cd ~/.wine/drive_c/Program\ Files/Steam/
DISPLAY=:3 WINEDEBUG=-all wine "Steam.exe"

Maintenant, cela utilise techniquement deux écrans, mais lorsque les jeux sont lancés en mode plein écran une fois qu'ils ont été réglés sur 1920 * 1200, ils semblent s'adapter et utiliser l'un de mes métamodes xorg.conf. Il serait préférable que je puisse indiquer explicitement le mode dans cet exécutable. Est-il possible de le faire?

Il n'y a pas non plus de son. J'ai le patch WinePulse, donc j'ai juste besoin de brancher PulseAudio dans cette session (ou vice versa) et je suis bien parti pour le moment, je pense.

Modifier: Ralf a relevé quelques points mais a manqué (ou mal interprété) d’autres. Ceci est probablement dû à ma question trop verbeuse. Malgré la longueur du poste, je n’ai que deux problèmes.

Voici mes problèmes dans un contexte succinct:

  • Comment puis-je démarrer une nouvelle session X avec une résolution spécifiée? Je voudrais de préférence spécifier un métamode existant ou la résolution exacte lorsque j'appelle X.

  • Comment puis-je obtenir des applications sur la nouvelle session X en discutant avec le bon serveur PulseAudio? Pour le moment, ils ne semblent pas s'aligner. Je l'ai testé avec totem , pas seulement les applications Wine.

posée Oli 10.09.2010 - 15:12
la source

3 réponses

3

Pour répondre plus précisément à votre question. Vous pouvez utiliser nvidia-settings pour modifier le méta-mode. Un fragment de nvidia-settings --help:

-a, --assign=[ASSIGN]
  The ASSIGN argument to the '--assign' commandline option is of the form:

    {DISPLAY}/{attribute name}[{display devices}]={value}

  This assigns the attribute {attribute name} to the value {value} on the X
  Display {DISPLAY}.  {DISPLAY} follows the usual {host}:{display}.{screen}
  syntax of the DISPLAY environment variable and is optional; when it is
  not specified, then it is implied following the same rule as the
  --ctrl-display option.  If the X screen is not specified, then the
  assignment is made to all X screens.  Note that the '/' is only required
  when {DISPLAY} is present.

  {DISPLAY} can additionally include a target specification to direct an
  assignment to something other than an X screen.  A target specification
  is contained within brackets and consists of a target type name, a colon,
  and the target id.  The target type name can be one of "screen", "gpu",
  "framelock", "vcs", "gvi", or "fan"; the target id is the index into the
  list of targets (for that target type).  The target specification can be
  used in {DISPLAY} wherever an X screen can be used, following the syntax
  {host}:{display}[{target_type}:{target_id}].  See the output of
  'nvidia-settings -q all' for information on which target types can be
  used with which attributes.  See the output of 'nvidia-settings -q
  screens -q gpus -q framelocks -q vcs -q gvis -q fans' for lists of
  targets for each target type.

  The [{display devices}] portion is also optional; if it is not specified,
  then the attribute is assigned to all display devices.

  Some examples:

    -a FSAA=5
    -a localhost:0.0/DigitalVibrance[CRT-0]=0
    --assign="SyncToVBlank=1"
    -a [gpu:0]/DigitalVibrance[DFP-1]=63
    
réponse donnée Ralf 10.09.2010 - 18:01
la source
4

Pour le son, il suffit de lancer ck-launch-session dans le script:

#!/bin/sh

X :3 -ac & nvidia-settings --load-config-only
sleep 10 # wait for X to catch up

cd ~/.wine/drive_c/Program\ Files/Steam/
DISPLAY=:3 ck-launch-session
DISPLAY=:3 WINEDEBUG=-all wine "Steam.exe"

Le son des deux écrans X est fusionné.

    
réponse donnée Oli 10.09.2010 - 18:10
la source
3

Exécution de plusieurs sessions X

Je pense que c'est exactement ce que vous voulez. Et exécuter plus d'une session X est possible, cela ne signifie pas que tous les pilotes vidéo vous permettent d'utiliser la même carte vidéo. Donc, exécuter plus de Xsession signifie que vous aurez besoin de plusieurs cartes vidéo.

Métamodes

Les jeux peuvent modifier la résolution de votre bureau et la configuration de votre écran à l'aide de méta-modes. Disons que vous avez un grand moniteur 1680x1050 sur la gauche et un moniteur plus petit et plus petit sur la droite qui a la résolution la plus élevée 1025x768.

Section "Screen"
Identifier  "Default Screen"
DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "CRT-0: 1680x1050 +0+0, CRT-1: 1024x768 +1680 +0; CRT-0: 1680x1050 +0+0, CRT-1: NULL; CRT-0: 1400x900 +0+0, CRT-1: NULL;"
EndSection

Lorsque vous pouvez sélectionner la résolution dans un jeu, vous aurez les options suivantes:

2704x1050      this refers to the total viewport size of using two monitors
1680x1050      this means the second monitor is off, and you will use a high resolution
1400x900       this also only used the first monitor, but it will run a bit quicker 

Vous pouvez ajouter beaucoup de méta-modes. Assurez-vous simplement que la fenêtre d'affichage "résultant" a une résolution unique. Sinon les jeux ne le comprendront pas.

Il est intéressant de noter que lorsque vous effacez une partie d’un jeu, votre système repasse au méta-mode d’origine et, lorsqu’il revient dans un jeu, il retourne au méta-mode configuré pour le jeu. .

Wine / Steam

Le tour de méta-mode fonctionnera également avec wine. Cependant, il existe des jeux qui ne prennent pas en charge la modification de la résolution.

Une belle solution de contournement:

- turn on emulate virtual desktop, in wine-config, and set it to your desktop size
- compiz will automatically turn it into 'fullscreen' mode and hide panels
- the mouse will be captured properly. Your other monitor is still on, and displays whatever is there. You will need to alt=tab to reach it though. Perhaps its a good idea to associate a shortcut to minimize window. 

Si vous rencontrez toujours des problèmes avec la capture de la souris avec certains jeux, vous pouvez utiliser le mode mousewarp:

WINEFORCEMOUSEWARP=yes wine yourapp.exe

Pulseaudio & amp; Vin

Vous pouvez utiliser cet PPA pour obtenir un vin dont le pilote pulse-audio est activé. Veillez également à le sélectionner en utilisant wine-config.

 https://launchpad.net/~neil-aldur/+archive/ppa
    
réponse donnée Ralf 10.09.2010 - 17:25
la source

Lire d'autres questions sur les étiquettes