lightdm.confの編集がデスクトップ画面の解像度に影響しないのはなぜですか?


13

デスクトップ画面の解像度をに変更したかったの1366x768です。しかし、私VESA drivers(AMD REDWOOD)はその解像度を検出しませんでした。そこで、次のようにシェルスクリプトを作成しました。

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

私はそれを保存lightdmxrandr.sh/usr/bin、それが実行可能に。次に、次の行を追加します/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(これはよく知られているものと同等/etc/lightdm/lightdm.confです。14.04にあるように、上記のファイルを使用しています/etc/lightdm/lightdm.conf。)。

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

保存しました。理論的には、これによりログイン画面の解像度とデスクトップ画面の解像度の両方がに変更されているはず1366x768です。しかし、驚くべきことに、これはログイン画面の解像度のみを変更しました。デスクトップの解像度は変更されていません。後でスクリプトをスタートアップアプリケーションに追加し、デスクトップの解像度を変更しました。

そのため、lightdm.confファイル(または50-ubuntu.confファイル)に行った編集がデスクトップの解像度に影響を与えなかった理由を知りたいと思います。これは、ランチパッドで報告する必要がある何らかのバグですか、それともlightdmの編集がデスクトップ画面に影響すると言うのは間違っていますか?

PS:-私の意見では、これはUbuntu 14.04に固有のものではありません。

回答:


11

同様のことを試してみましたが、いくつかのデバッグの後、何が起こっているのかがわかりました。あなたのスクリプトは、おそらくされて実行され、おそらく正しく解像度を設定しません。ただし、ログインマネージャーによって実行されるため、Unityがデスクトップ環境のセットアップを完了する前に実行され、Unityは独自の設定を読み取り、解像度をユーザーの設定にリセットします。だから、私は何が起こると思う:

  1. lightdmはスクリプトを正しく実行します
  2. これにより、目的の解像度が設定されます
  3. Unityが起動し、設定を読み取り、そこにあるデフォルトの解像度に戻します
  4. 解決策は以前の状態に戻ります

これは、VESAドライバーが目的の解像度を自動的に検出しないためです。つまり、Unityの設定の[ディスプレイ]セクションから解像度を変更すると、xrandrコマンドを実行しない限り利用できない解像度が設定されます。したがって、次回再起動するとこれは無視され、Unityはデフォルトの解像度に戻ります。

したがって、あなたがする必要があるのは、Unityで解像度を利用可能にし、それをデフォルトとして設定し、それを処理させることです。これを行うには、最初に次の行を追加する必要があります/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

session-setup-script=/usr/bin/lightdmxrandr.sh

次に、/usr/bin/lightdmxrandr.sh次のようになっていることを確認します。

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

私は実際に解像度を設定するのではなく、それを利用可能にするだけであることに注意してください。この再起動が完了したら、ログインします。新しい解像度が[設定] => [ディスプレイ]で利用可能になります。その場合は、そこで選択し、ログアウトしてから再度ログインすると、解像度が正しく設定されるはずです。これで、再起動後も解決されるはずです。


代替アプローチ:

  1. /etc/X11/xorg.conf目的の解像度をリストしファイル作成します。このようなもの:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. xrandrセッションのスタートアップアプリケーションにコマンドを実行するスクリプトを追加します。


/usr/share/lightdm/lightdm.conf.d/の下のファイルを編集することは、lightdm.confを変更する間違った方法です。LightDMプロジェクトページには、システム管理者が/etc/lightdm/lightdm.conf.d/または/etc/lightdm/lightdm.confのデフォルト設定を上書きできると書かれています。パッケージの更新によって上書きされる可能性がしばらくありますソース:LightDMプロジェクトページfreedesktop.org/wiki/Software/LightDM 回答を修正してください
happyskeptic 2014

3
単純なコメントを追加するほどの評判はありませんが、shファイルには実行の許可を与える必要があることを指摘したかったのです。OPは、彼/彼女がこれを行ったと述べたが、terdonの答えは、それをステップに含めなかった。実行可能でない場合は、ログインしないのでコマンドプロンプトにドロップダウンする必要があります(少なくとも私にとってはそうではありませんでした)。それは私の側の単純な見落としでしたが、誰かがそのステップを見落とした場合に備えて、ここでそれを繰り返したいと思いました。
カークスペンサー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.