web-dev-qa-db-ja.com

xrandrのカスタマイズを永続的にするにはどうすればよいですか?

GDM(/ etc/gdm/Init/Default)の起動スクリプトを編集して、ディスプレイの解像度を永続的に変更していました。

Ubuntu OneiricのLigthDMでこれを行うにはどうすればよいですか?

64
Edocastillo

/etc/X11/xorg.confに表示モードを追加できると思います。

xorg.confがない場合は、以下を基礎として使用できます。 ModelineDriver、およびModesという名前のエントリをシステムの正しいエントリに置き換える必要があります。ハードウェアによっては、システムに複数のグラフィックチップがある場合など、追加のエントリが必要になる場合があります。

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

システムで使用しているビデオドライバーの名前がわからない場合は、次のように名前を取得できます(インテルのグラフィックチップをお持ちの場合、ドライバー名は「インテル」です)。

lshw -class display | grep "driver"

モードラインはcvtで生成できます:

cvt <h-resolution> <v-resolution> [refresh]
21
Nimmermehr

/etc/lightdm/lightdm.confを変更して、次のオプションを追加します。

display-setup-script>ログイン画面が表示される前にmycustomloginvideo.shを呼び出します

session-setup-script>ユーザーデスクトップセッションが開始する前にmycustomdesktopvideo.shを呼び出します

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

「arandr」GUIツールで上記のshスクリプトを生成し、現在のセッションのX構成からパラメーターを選択することができます。

シェルスクリプトが実行可能であることを確認します。

chmod a+x /usr/share/mycustom*video.sh

ターミナルで実行するだけで、それが機能することをテストできます(つまり、xrandrコマンドにタイプミスや構成エラーがないことをテストできます)。

/usr/share/mycustomdesktopvideo.sh

何らかの理由でログインスクリプトが機能しない場合、マシンはログイン画面への起動プロセスを完了しない可能性があります。デスクトップスクリプトが失敗すると、ログイン後にデスクトップが表示されない場合があります。外部モニターを設定している場合、これらのスクリプトを切断すると失敗し、Xセッションは開始されません。

63
Jon Roberts

誰かが別の回避策を投稿しましたが、私にとってはうまくいかなかったと言わざるを得ません。それはおそらくあなたのために働く可能性があります。私の場合、それは団結を壊し、マウスカーソルを動かすことしかできません。アプリインジケータの上部パネルは空に見えますが、LCDを取り外した後、追加した行を削除でき、すべてが正常に戻りました。

ファイルを編集/usr/sbin/lightdm-session

このファイルの最初の部分は次のようになります:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00

# Load resources

Xrandrの設定は、あなたの設定に合わせて変更する必要があることに注意してください。

10
Meconio

私は今まで同様の問題を解決しようとしていましたが、私にとってうまくいく解決策を見つけましたので、うまくいけば...

画面を何度も壊してしまった古い熱望するAOA110があり、新しいラップトップを購入した後、HTPCに変えようと決めましたが、持っている外部ディスプレイがXに認識されないため、何度も「微調整」して、正しい解像度で動作するようにします。

ここに私がやったことがあります:

これを使用した後 http://ubuntuforums.org/showthread.php?t=1112186 ステップ5までのチュートリアルxrandrで有効で許容可能な解像度を見つけることができましたが、これはLightDMログイン画面。

上記の方法で永続化するための手順に従ってはいけませんが、11.10ではこれが適切な方法だと思います。 ArchWikiでこの投稿を見つけました https://wiki.archlinux.org/index.php/Xorg 私は自分のニーズに合わせて調整しました。

最初にここでファイルを作成します:/etc/X11/xorg.conf.d/10-monitor.conf

次に、ディスプレイに適切なX詳細を追加します。

Section "ServerLayout"
Identifier     "DualSreen"
Screen       0 "Screen0"
Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
Identifier     "LVDS1"
Option         "ignore" "true"
EndSection

Section "Monitor"
Identifier     "VGA1"
Option         "Enable" "true"
Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync
EndSection

Section "Device"
Identifier     "Device0"
Driver         "intel"
Screen         0
EndSection

Section "Device"
Identifier     "Device1"
Driver         "intel"
Screen         1
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "VGA1"
DefaultDepth    24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
    Modes          "1440x900_60.00"
EndSubSection
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "LVDS1"
DefaultDepth   24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
EndSubSection
EndSection

追加する重要なビットは、適切なSection "Monitor"の下にあり、gtf 1440 900 60.00の使用中に見つかった適切なModelineを含み、対応するSection "Screen"の下に正しいModesを含む。

私がやろうとしていたのは、VGA1接続を適切な解像度に設定するだけでなく、LVDS1出力を使用しないように指示することでした。明らかに、出力を適切な数に設定し、セットアップに適したデバイス、スクリーン、ディスプレイのセクションを一致させるには、適切に調整する必要があります。

叙事詩の投稿を申し訳ありませんが、私は今まで使っていたHannspreeディスプレイでxorg.confファイルを微調整しており、11.10より前に使用していた古いxorg.conf設定が正しく動作しなくなりました。私が見つけた唯一の解決策は動作します。

幸運を!

6
faithinfriction

上記のラップトップでも同様の問題が発生したため、会話に何かを追加したいと考えました。ログインの解像度を気にかけない(私は気にしません)が、実際のワークスペースを正しい解像度にしたい場合、LightDMにモニター情報を追加できますが、ログインするまでフル解像度をオンにすることはできません。

モニター用に次のスクリプトをファイルに追加しました:lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

/etc/lightdm/lightdm.confで呼び出します

display-setup-script=/usr/bin/lightdmxrandr

ログインしたら、ディスプレイにモニターをセットアップできます。再ログした後でも動作します(大きないエラーを出すために使用されます)。

5
Karl

新しいLXDEボックス(デュアルクローンではない)で拡張ディスプレイが必要な問題がありましたが、正しいコマンドは見つかりましたが、永続的にすることはできませんでした。

xrandr --output VGA-0 --right-of DVI-0

上記の方法はすべて非常に難しいと思われる/正しい方法ではありません。

私は最終的にこれを見つけました: http://www.Sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/

それはうまくいきましたが、代わりにgeditを使用しました:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

次に、先頭に@記号を付けて、最後に行を追加しました。

@xrandr --output VGA-0 --right-of DVI-0

Sudo-juiceのお役に立てば幸いです。

PS xrandrコマンドの二重-に注意してください--(画面にあまりはっきりと表示されませんでした)。

4
abisdad

Jon Robertsの回答を拡張するために、現在のセッションで動作するすべてのパラメーターをarandrがshスクリプト生成に含めないように指定します。たとえば、プライマリモニター(デュアルモニター構成を使用している場合)、各モニターのリフレッシュレートおよびガンマ設定は含まれません。私のセッションスクリプトは次のようになります。

#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55 

最初の行に--rateオプションと--primaryオプションを手動で追加し、明らかにモニターをプライマリに切り替えるたびにxrandrガンマ設定が失われるであるため、ガンマ補正を含む2行目を手動で追加しました。

モニターをプライマリにする際のガンマ設定でのこの特定の動作が意図されているのか、それともバグなのかはわかりません。

さらに、セッションシェルスクリプトはlightdmによって呼び出されるのではなく、起動アプリケーションとして呼び出されます。これは、lightdmがxrandrの準備が整う前にスクリプトを呼び出し、奇妙なことが起こるように見えるためです。

4
Hermes

新しいドキュメントを作成して名前を付けます/home/yourusername/yourscriptname.sh入力

#!/bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

それをあなたのホームフォルダに保存します(これにより解像度が1600x900に設定されます)

スタートアップアプリケーションを開く(またはgnome-session-properties)を実行をクリックし、[追加]をクリックします。コマンドラインに名前とタイプを入力します。

bash /home/yourusername/yourscriptname.sh

これを保存すると、ログインするたびにスクリプトが実行されるようになるため、スクリプトを有効にするには最初にログアウトする必要があります。ターミナルでコマンド(例:bash /home/yourusername/yourscriptname.sh)を実行することも、スクリプトが機能するかどうかを確認するのに良いアイデアです。

2
Nikhil

上の回答に基づいて、いくつかのテストを行い、自分に役立つ便利な方法を見つけました。次に、自動インストールで自動化する簡単なスクリプトを作成しました。しかし、それは他のどの場合にも機能します。

Scriptinstallxrandrfixed.shを作成します次の行を追加します。

#Variables for lightdm script and xrandr script to setup fixed resolution for old displays: 
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf

 #Added old style configuration for lightdm: 
 Sudo  ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
 #A fix to some old displays in high school at Fray Bentos, fix to 1024x768
 #Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
 Sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
 # for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
 Sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
 # for your desktop session
 Sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
 Sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
 Sudo chmod +x $xrandrscript

lightdmの表示とセッション用のスクリプトとファイルを作成します。実行する許可を忘れないでください

chmod + x scriptinstallxrandrfixed.sh

そして実行する

./scriptinstallxrandrfixed.sh(ファイルがあるディレクトリと同じディレクトリに配置する必要があります。)

同じディレクトリにない場合:/path/to/script/scriptinstallxrandrfixed.sh

必要に応じて修正してください。敬具。パブロ。

1
pablodav