複数のモニターの設定を修正するのに少し時間を費やしましたが、ログインしているときは正常に機能していますが、ログイン画面や他のユーザーには正しくありません。
すべてのユーザーとログイン画面の表示設定をグローバルに設定するにはどうすればよいですか?
システムのセットアップ方法によっては、正しくセットアップされたユーザーからmonitors.xml
ファイルをコピーするのと同じくらい簡単ですすべてのユーザーに:
1人のユーザーに対してこれをテストするには:
cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/
testUserからログオフ既にログインしている場合、再度ログオンして、すべてが正しいかどうかを確認します。
すべてのユーザー向けのコマンド:
cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do Sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done
ログイン画面のコマンド:
Sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/
将来のすべてのユーザー用のコマンド¹:
Sudo mdkdir -p /etc/skel/.config
Sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/
注¹:今後作成するすべてのユーザー
ログイン時のすべてのユーザーの画面構成を設定するには(これにより、ログイン画面の構成は変更されません)、.desktop
/etc/xdg/autostart
のファイル
xrandr
を実行して、回転させたいスクリーンの名前を見つけます。いくつかの行のうち、次のような行が出力されます。
VGA-0 connected
これにより、接続された画面の名前に関する情報が得られます。
VGA-0
の回転したいものを選択します(例えば)gedit
でランチャーを作成します:
Sudo -i gedit /etc/xdg/autostart/set_screens.desktop
以下のテキストをファイルに貼り付けます。
[Desktop Entry]
Name=set_screens
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
Type=Application
次の行で置き換えます:
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
文字列:VGA-0
(回転した)スクリーンの名前。
ラインで
Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
sleep 10
を含めました。これは、デスクトップのロードが「終了」する前に、xrandr
コマンドが実行が早すぎると壊れることがあるためです。おそらく休憩を増やす必要があるか、それを除外してみてください。コマンドでは、そのままで、anyユーザーのログインから10秒後に画面が回転します。
コマンド:
xrandr --output VGA-0 --rotate left
画面を左に回転します。別のタイプの回転が必要な場合は、left
、right
、normal
、inverted
のいずれかを選択できます。 ここ) 。
.desktop
ファイル(ランチャー)を~/.config/autostart
に配置することにより、起動時にコマンドを実行できます(実際にログインします)。これは、単一のユーザーに対してのみランチャーを実行します。同じことを行い、ランチャーを/etc/xdg/autostart
に配置すると、特定のユーザーが無効にしない限り、anyユーザーがログインするたびにコマンドが実行されますDash> Startup Applicationsの彼または彼女のためのランチャー
さらに、ローカル~/.config/monitors.xml
ファイルを/var/lib/lightdm/monitors.xml
にコピーするだけで、ログイン画面でも設定を機能させることができます。
この組み合わせと、上記のソリューション(/etc/xdg
のランチャー)は、ログイン画面と(任意の)ユーザーの両方に必要なものを正確に実現する最も簡単なソリューションです。また、/etc/xdg
のランチャーのソリューションは、(各)ユーザーレベルで多くのファイルを編集することなく、別のセットアップを行う必要がある場合に(非常に)簡単に元に戻すか変更できます。ログイン画面は、2つの単純なファイルですべてのユーザーに対して同時に管理されます。
同様の問題に苦しんでいる人を見つけるためにコメントを追加したかっただけです。ログインするたびに古いモニターの解像度(1280x1024)で動けなくなりましたが、ログイン画面とゲストユーザーのログインは正しいデフォルトの1680x1050を使用します。
xorg.conf、monitors.xml、lightdmおよびxrandrおよびその他の提案を読んで、答えを探して過去4か月にわたって多くの投稿を読みました。しかし、いくつかの設定変更は複雑であり、表示を完全に壊すリスクがあるため、ログインごとに手動でモニター設定を変更するためにGUIを使用することになりました。
今日、.configフォルダーで古い解像度のgrepを行いました。
grep -HrnIF '1280' .config | less
最初の結果は、これを含む〜/ .config/autostart/xrandr.desktopファイルでした。
Exec=xrandr -s 1280x1024 -r 75
そのため、ファイルをそこから移動しました。そしてビンゴ、ログインしてデフォルトの1680x1050解像度を取得します。
検索に数時間かかり、十分な回答が見つからなかったため、誰かに役立つ場合に備えてここに投稿しました。
/etc/lightdm/lightdm.conf
に何かを追加することもできます。ここでは、xrandr
コマンドを使用してディスプレイをセットアップするスクリプトを作成します。グラフィカルなRandRツールを使用して、arandr
などのコマンドを作成できます。私の場合、スクリプトは次のようになります。
#!/bin/sh
xrandr --output DVI-I-1 --mode 1600x1200 --pos 0x0 --rotate left --output DVI-I-0 --off --output DP-3 --off --output DP-2 --off --output DP-1 --mode 1600x900 --pos 1200x700 --rotate normal --output DP-0 --off
このスクリプトは、/usr/share
または任意の場所に配置できます。これは複雑なデュアルモニターのセットアップ用であるため、スクリプトはそれほど複雑に見えません。次に、次のようなものを追加します。
session-setup-script=/usr/share/mycustomxrandr.sh
そして:
display-setup-script=/usr/share/mycustomxrandr.sh
ファイルが実行可能であることを確認してください:
chmod a+x mycustomxrandr.sh
session-setup-script
は、LightDMを介してログインするafterの表示を設定し、display-setup-script
はログイン画面の表示を変更します。
私のシステム(Ubuntu 16.04)のログイン画面では、単にcp
'rootとして(Sudo
を使用して)動作しませんでした。また、monitors.xmlの所有者/グループがlightdm:lightdm
であることを確認する必要がある場合があります。
Sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml