これは可能ですか?
通常、私はdisper
を使用して外部モニターを有効にしますが、2番目のモニターを強制的にプライマリにすることはできないと思います。 http://willem.engen.nl/projects/disper/
Nvidia-controlソースに含まれているnv-control-dpy
をいじってみましたが、その方法はまだわかりません。入手方法: http://ubuntuforums.org/showthread.php?t=922956
これはラップトップで、仕事に行くときに外部のhdmiディスプレイを接続します。 dipser -e
は私のためにデスクトップを拡張しますが、ラップトップはプライマリデスクトップのままです(パネルなどを保持します)。 nvidia-settings
はプライマリモニターを設定できますが、CLIを使用したいと思います。
おそらく私は2.3バージョンを持っているので、nvidia-setting v1.0を使用したubuntu10.04で、あなたが言っていることを正確に行うことに成功しました
これはかつて大きなものとしてリストされています:
https://bugs.launchpad.net/disper/+bug/321288
バージョン2.1では、20010-04で要求したとおりに機能するはずであり、「バグ修正」は2009-02-16で確認されました。
を使用して:
disper -l
そこに私のデバイスがあったのを見ました:
(外部デバイスはxrandrでクエリしても表示されません)
ラップトップは右側にあり、モニターは左側にあります。私はラップトップをSamsungから拡張したかったので、ラップトップを物理的に上に揃えて、論理的にも上に揃えて、それらを持っていたいと思いました独自の最大解像度:
disper -d CRT-0,DFP-0 -r auto -e -t right
これは次のように読み取る必要があります:(-d)最初にSyncMasterで動作し、次にラップトップ液晶で動作します(-r)自動を検討します解像度、(-e)2番目の表示を拡張します[-dが表示順序を設定するため、ここで2番目はラップトップです]、(-t)2番目のディスプレイ[ラップトップ]を最初のディスプレイの右側に拡張します。
非常にシンプルなnvidiaハッキングは必要ありません。それが役に立てば幸い。
乾杯
Splinux
私はnvidia-settingsソースをハッキングし、実用的な解決策を得ました:
これはUbuntuで行われますが、移植は難しくありません。
次のコマンドを実行します。
Sudo apt-get build-dep nvidia-settings
apt-get source nvidia-settings
cd nvidia-settings-195.36.08/src
「nvidia-settings.c」を編集し、main()を次のように置き換えます。
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() */
コンパイル:
cd ..
make
バイナリをパスに入れます:
Sudo cp nvidia-settings /usr/local/bin/setPrimaryDisplay
これを使って:
setPrimaryDisplay DFP-1
gnome-panel --replace 2>/dev/null &
ここで、DFP-1は目的のダイアプレイディスプレイの名前です。 Gnomeパネルが時代に追いついていないため、再起動する必要があります。
AMD64用にコンパイルされた私のバイナリはここからダウンロードできます: http://while1.no/files/setPrimaryDisplay
あまりにも明白で、使用したくないオプションかもしれませんが、BIOSの主要なオプションを変更するのはどうですか?
xrandr
をいじってみることができます。 commandlinefuには素晴らしい collection のxrandrベースのスクリプトがあります。