web-dev-qa-db-ja.com

xrandrによって設定された外部モニターの解像度を取得する方法

tl; dr

ラップトップに接続されている外付けモニターの正しい解像度を忘れてしまいます。構成を「スティック」にするにはどうすればよいですか?

細部

Linux Mintを実行しているラップトップを外部ViewSonicモニターに接続しています。外部モニターをセカンドスクリーンとして使用するように設定しました(つまり、ミラーリングされていません)。これは数週間うまくいきました。

突然、ラップトップはそれをViewSonicとして認識しなくなり、その時点では最適な解像度(1600 x 1200)がわからなかったため、最大で1028 x 768しか許可されませんでした。1 これは、1920 x 1200解像度のラップトップではまったく機能しませんでした。

多くの欲求不満の後、私は この答え を見つけました。これは、次のように問題を修正するのに役立ちました(cvtコマンドの出力は、次のコマンドで使用されたモードラインです):

cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

これはexactly私が望んでいたことですが、GUIからはできませんでした。 (まだコマンドラインが好きな理由があります...)

これは、しばらくの間再びうまくいきました。しかし、今日コンピューターを起動してサインインすると、動作しないさまざまな試行モードに関する一連のエラーが通知領域ポップアップに表示され、外部モニターがオフになりました。上記のコマンドを繰り返したところ、再び動作しました。

NVidiaカードを持っています。問題が発生し始めたときに専用ドライバをインストールしようとしましたが、その時点で外部モニタがまったく認識されなくなったため、オープンソースドライバに戻りました。 Xorg.confXorg.conf.dはなく、xorg.conf.failsafeしか持っていません。

マシンを起動するたびにこれらのコマンドを繰り返したくありません。これをXorg.confなどに保存する方法はありますか? Xを使いこなしてから数年になります。ここで誰かが私を手伝ってくれませんか?


1これがなぜ起こったのか私は判断できませんでした。私の推測では、問題のあるドライバーの更新です。

11
Kazark

より良い方法があると確信しています。これはすべてudevによって処理されると思いますが、これらのコマンドで解決できることがわかっている場合は、いつでもスクリプトにできます。

#!/usr/bin/env bash
cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

実行可能にして、デスクトップ環境のスタートアップアプリケーションに追加します。 DEがオプションを提供している場合、これはおそらく最良の選択です。


上記を実行できない場合は、汚いハックとして~/.profileに追加することができます。

if [ ! -t 0 ] 
then
    cvt 1600 1200
    xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
    xrandr --addmode VGA-1 1600x1200_60.00
fi

if [ ! -t 0 ]は、これがGUIでのみ実行されることを確認する必要があります。.profileは、私が思い出すように、mintのログインマネージャーによって供給されます。

さて、あなたはすべき~/.xsessionを使用できるようになりましたが、無視されるという問題がありました。古いアプローチの多くは置き換えられており、最先端の方法が何かはわかりません。

5
terdon

Nvidia独自のドライバーを使用している場合は、nvdia-settingsXorg.confファイルを構成するためのGUIツールである必要があります。 Linux Mintには独自のパッケージが必要なので、インストールは次のように簡単です。

Sudo apt-get install nvidia-settings

これにより、メニューのどこかにアイコンが表示されます。そこから実行できます(ルート権限を取得する方法はわかりません)。コマンドラインから、私はあなたができると信じています:

Sudo /usr/lib/nvidia/current/nvidia-settings

コマンドラインを使用する場合、nvidia-xconfigが使用するツールのようです(私にとってはnvidia-xconfigパッケージ)。どちらの方法でも、適切に構成されていれば、通常は専用ドライバーでより良い結果が得られます。これらのツールは、少なくとも適切なXorg.confファイルを生成します。このファイルは、直接またはこれらのプログラムのいずれかを介して調整できます。

4
Graeme