複数のモニターの設定を正しくするのに時間がかかりましたが、ログインしているときは正常に動作しますが、ログイン画面や他のユーザーに対しては正しく動作しません。
すべてのユーザーとログイン画面の表示設定をグローバルに設定するにはどうすればよいですか?
答え1
システムの設定方法によっては、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 mkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/
注¹:今後作成するすべてのユーザー
答え2
画面構成を設定するにはログインするすべてのユーザー(ログイン画面の設定は変更されません)、.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
デスクトップの読み込みが「完了」する前にコマンドが早すぎると中断してしまうことがあるためです。中断を増やす必要があるかもしれませんし、省略してみるのもよいでしょう。コマンドでは、そのままでは、ログイン後10秒後に画面が回転します。どれでもユーザー。コマンド:
xrandr --output VGA-0 --rotate left
は画面を左に回転させますが、他の回転方法が必要な場合は、、、、のいずれかを選択
left
できright
ます(normal
inverted
ここ)。
説明
.desktop
にファイル(ランチャー)を置くことで、起動時(実際にはログイン時)にコマンドを実行できます~/.config/autostart
。これにより、ランチャーは1人のユーザーに対してのみ実行されます。同じことを行うが、ランチャーをに置くと/etc/xdg/autostart
、コマンドはいつでも実行されます。どれでも特定のユーザーがダッシュ > スタートアップアプリケーションでランチャーを無効にしない限り、ユーザーはログインします。
さらにローカル~/.config/monitors.xml
ファイルを にコピーするだけで/var/lib/lightdm/monitors.xml
、ログイン画面でも設定が機能するようになります。
私としては、これと上記のソリューション ( のランチャー/etc/xdg
) を組み合わせるのが最も簡単なソリューションで、ログイン画面と (任意の) ユーザーの両方に必要なものを正確に実現できます。また、 のランチャーのソリューションは/etc/xdg
、別の設定が必要な場合でも (非常に) 簡単に元に戻したり変更したりできます。ユーザー設定とログイン画面の両方が 2 つの簡単なファイルですべてのユーザーに対して一度に管理されるため、(各) ユーザー レベルで多くのファイルを編集する必要はありません。
答え3
同様の問題で苦労している人のためにコメントを追加したいと思いました。ログインするたびに古いモニターの解像度 (1280x1024) で止まっていましたが、ログイン画面とゲスト ユーザーのログインでは正しいデフォルトの 1680x1050 が使用されています。
私は過去4ヶ月間、答えを求めて多くの投稿を読み、xorg.conf、monitors.xml、lightdmそしてxrandrおよびその他の提案がありますが、一部の構成変更は複雑で、ディスプレイ全体が壊れるリスクがあるため、ログインするたびに GUI を使用してモニター設定を手動で変更することになりました。
今日、.config フォルダー内の古い解像度を grep で検索しました。
grep -HrnIF '1280' .config | less
最初の結果は、これを含む ~/.config/autostart/xrandr.desktop ファイルでした。
Exec=xrandr -s 1280x1024 -r 75
そこで、ファイルをそこから移動しました。すると、なんと、ログインするとデフォルトの 1680x1050 解像度になりました。
数時間検索しましたが、十分に近い答えが見つからなかったので、誰かの役に立つかもしれないのでここに投稿します。
答え4
に何かを追加したい場合があります。ここでは、ディスプレイを設定するためのコマンドを/etc/lightdm/lightdm.conf
使用するスクリプトを作成します。グラフィカルな RandR ツールを使用して、 などのコマンドを作成できます。私の場合、スクリプトは次のようになります。xrandr
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 経由でログインすると、display-setup-script
ログイン画面の表示が変更されます。