Linux: Einstellen der primären Anzeige (nvidia) von der Befehlszeile aus

7675
Joernsn

Ist das möglich?

Normalerweise verwende ich disper, um meinen externen Monitor zu aktivieren, aber ich glaube nicht, dass ich den zweiten Monitor als primäres Gerät erzwingen kann. http://willem.engen.nl/projects/disper/

Ich habe mit nv-control-dpyin der Nvidia-Steuerungsquelle enthalten gespielt, aber ich habe noch nicht herausgefunden, wie es geht. Wie komme ich dazu: http://ubuntuforums.org/showthread.php?t=922956

BEARBEITEN

Dies ist ein Laptop, an den ich ein externes HDMI-Display anschließe, wenn ich zur Arbeit komme. dipser -eerweitert den Desktop für mich, aber der Laptop bleibt der primäre Desktop (hält die Panels usw.). nvidia-settingskann den primären Monitor für mich einstellen, aber ich möchte das CLI verwenden.

6
Was ist die Hardware hier? Laptop mit externem Monitor? zwei Monitore an einer GPU angeschlossen? zwei GPUs? quack quixote vor 14 Jahren 0
NVIDIA binäre Treiber ... genug gesagt. Mit xrandr wäre das wahrscheinlich ganz einfach, aber die nvidia-Treiber unterstützen nur ihr proprietäres Twinview. Broam vor 14 Jahren 0

4 Antworten auf die Frage

3
splinux

Es gelingt mir genau das zu tun, was Sie meinen, vielleicht weil ich die Version 2.3 auf Ubuntu 10.04 mit NVIDIA-Einstellung v 1.0 habe


Folge dem Bug Fix:

Dies wurde einmal als großes gelistet:

https://bugs.launchpad.net/disper/+bug/321288

von Version 2.1 sollte funktionieren, wie Sie am 20010-04 gefragt haben, und der 'Bug Fix' wurde am 16.02.2009 bestätigt

Was ich hatte

durch die Nutzung:

disper -l 

dort sah ich meine Geräte waren:

  • DFP-0: LGD (Laptopanzeige)
  • CRT-0: Samsung SyncMaster (externer Monitor)

(das externe Gerät wird nicht durch Abfragen mit xrandr angezeigt)

Was ich wollte und wie

Der Laptop ist auf der rechten Seite und der Monitor ist auf der linken Seite . Ich wollte, dass der Laptop von Samsung erweitert wird. Da der Laptop physisch oben ausgerichtet ist, wollte ich, dass er auch logisch oben ausgerichtet ist und über eine eigene maximale Auflösung verfügt:

disper -d CRT-0,DFP-0 -r auto -e -t right 

Dies muss gelesen werden als: ( -d ) opertate zuerst auf SyncMaster, dann auf Laptop-LCD, ( -r ) Auto-Auflösung in Betracht ziehen, ( -e ) das zweite Dysplay erweitern [Zweites hier ist Laptop, weil die -d- Anzeigereihenfolge festgelegt ist], ( -t ) Erweitern Sie das zweite Display [Laptop] rechts vom ersten.

Google richtig und versuchen Sie es zuerst

Sehr einfach, kein NVIDIA-Hacking erforderlich. Ich hoffe es hilft.


Prost

Splinux

PERFEKT! Danke :) v 2.3 hat genau das gemacht, was ich wollte. Joernsn vor 13 Jahren 0
1
Joernsn

Ich habe die Nvidia-Settings-Quelle gehackt und eine funktionierende Lösung erhalten:

Dies geschieht in Ubuntu, aber das Portieren sollte nicht schwer sein.

Führen Sie diese Befehle aus:

sudo apt-get build-dep nvidia-settings apt-get source nvidia-settings cd nvidia-settings-195.36.08/src 

Bearbeiten Sie "nvidia-settings.c" und ersetzen Sie main () durch Folgendes:

int main(int argc, char **argv) {   ConfigProperties conf; ParsedAttribute *p;  CtrlHandles *h;  char * target;  /* initialize the parsed attribute list */  p = nv_parsed_attribute_init();  /* initialize the ConfigProperties */  init_config_properties(&conf);  /* allocate the CtrlHandles for this X screen */  h = nv_alloc_ctrl_handles(":0.0");  if (!h || !h->dpy) { return 1; }   /* Get target from command line */ if(argc != 2){  printf("Usage: %s PRIMARY_DISPLAY\n", argv[0]); printf("Example: %s DFP-1\n"); return 1; }   target = argv[1];  int i; for (i = 0; i < h->targets[X_SCREEN_TARGET].n; i++) { if (h->targets[X_SCREEN_TARGET].t[i].h) {  printf("Setting primary display: %s\n", target);  NvCtrlSetStringAttribute(h->targets[X_SCREEN_TARGET].t[i].h, NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER, target, NULL);  break; }  }   return 0;  } /* main() */ 

kompilieren:

cd .. make 

setze die Binärdatei in path:

sudo cp nvidia-settings /usr/local/bin/setPrimaryDisplay 

benutze es:

setPrimaryDisplay DFP-1 gnome-panel --replace 2>/dev/null & 

Wobei DFP-1 der Name der gewünschten Bildschirmanzeige ist. Gnome-Panel hält sich nicht an die Zeiten und muss neu gestartet werden.

Sie können mein für amd64 kompiliertes Binärprogramm hier herunterladen: http://while1.no/files/setPrimaryDisplay

0
S.gfx

Möglicherweise ist es zu offensichtlich und eine Option, die Sie lieber nicht verwenden möchten. Wie sieht es aber aus, welche der primären Optionen im BIOS zu ändern?

Das Äußere ist nur etwa die Hälfte der Startzeiten verbunden, so dass mehr Arbeit erforderlich wäre als die Verwendung von Nvidia-Settins Gui. Tatsächlich boote ich diesen Computer nie, er ist gerade ausgesetzt. Joernsn vor 14 Jahren 0
0
Ivan Petrushev

Sie können versuchen, mit zu tun xrandr. commandlinefu hat eine große Sammlung von Xrandr-basierten Skripten.