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


65

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

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


ホームフォルダーの.xprofileに追加します。参照askubuntu.com/questions/63863/...解像度を設定し、.xprofileために追加するには、基本的なガイドのために
duffydack

回答:


21

に表示モードを追加できると思います/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]

私はこれを試しましたが、何らかの理由で起動しませんでした。cvtコマンドから生成されたモードラインと、他のモードラインからのドライバーを使用しました(また、試してみvesaました)が、エラーメッセージなしでハングしました。Jon Robertsのソリューションは私にとって完璧に機能し、ここで言及したビデオカードドライバーなど、初心者にとって簡単にうまくいかないものとは無関係なので、彼の答えを投票しています。
マイク

1
これは--rotateのようなものには役立たないようです。
ジェリコ

2
この答えは時代遅れです。参照してください。ジョン・ロバーツ回答
CON-F-使用

+1 Perfect-o!GDM w / Gnome 3.16を使用すると、GDmで1080pモニターを認識できるようになりました。ありがとうございました!
eduncan911

私のコンピューターでは、lshwoutput i915は正しいドライバーですintel
user202729

63

変更/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セッションは開始されません。


mdmを使用するMint 13 XFCEの場合、/ etc / mdm / Init / Defaultを編集します。「出口0」の前に、あなたのスクリプトを呼び出す
StackUnder

EvnnはFedoraで動作します... display-setup-scriptXfceがすでにディスプレイ設定で設定されていたため、スクリプトが必要でしたsession-setup-script
ウィルフ14年

10

誰かが別の回避策を投稿しましたが、私にとってはうまくいかなかったと言わざるを得ません。それはおそらくあなたのために働く可能性があります。私の場合、それは団結を壊し、マウスカーソルを動かすことしかできません。アプリインジケータの上部パネルは空に見えますが、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の設定は、あなたの設定に合わせて変更する必要があることに注意してください。


このソリューションは、古いマシンのlubuntu 17.xでうまく機能しました。セッションにのみ影響するため、グリーターのログイン画面が目的の解像度で表示されません。
laconbass

6

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

画面を何度も壊してしまった古い熱望する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"は、適切なModelineもののgtf 1440 900 60.00下にあり、使用中に見つかった適切なものを含み、次にSection "Screen"正しいものを含む対応するものの下にありますModes

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

叙事詩の投稿について申し訳ありませんが、私はこれまでしばらくの間、使用しているHannspreeディスプレイでxorg.confファイルを調整してきました。私が見つけた唯一の解決策は動作します。

幸運を!


を使用xrandr -qすると、使用しているディスプレイと可能なモードに関する適切な情報が得られます。
faithinfriction

基本的な設定ファイルは、実行することで生成できますXorg :1 -configure。これにより、新しいXサーバーが作成され、そこから設定ファイルが生成さ/root/xorg.conf.new/etc/X11/xorg.confます。私はより良い方法が見つかった上記の答え
Wilf

5

上記のラップトップで同様の問題が発生したため、会話に何かを追加したいと考えました。ログインの解像度は気にしないが(実際はそうではない)、実際のワークスペースを正しい解像度にしたい場合は、モニター情報を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

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


これは...希望として働いていたではなく、再ログインを再起動する必要がありました
CrandellWS

4

Jon Robertsの回答の拡張機能として、arrandrが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 

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

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

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


4

新しい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コマンドのdouble に注意してください--(画面にはっきりと表示されませんでした)。


2

新しいドキュメントを作成し、名前を/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端末でコマンド(たとえば)を実行することも、スクリプトが機能するかどうかを確認することをお勧めします。


これはここではなくここに投稿されたため、この回答のOPによって(削除された場合ではなく)編集されまし -ログイン時にxrandr設定を復元する必要があるため、元のフォーマットを復元しました-bashスクリプトの内容はおそらく、正しい構成を取得するために使用されるxrandrコマンドに置き換えられます。
ウィルフ14年

デュアルモニターディスプレイで、HDMI-0ディスプレイのEDIDは読み取られていますが、DVI-0のEDIDは読み取られていません。に保存されている設定スクリプト/usr/binを指すことはできませんでしたが、使用してスタートアップアプリにそのスクリプトを追加することgnome-session-propertiesは成功しました!
-noobninja

1

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.