web-dev-qa-db-ja.com

すべてのユーザーアカウントに表示設定を適用しますか?

複数のモニターの設定を修正するのに少し時間を費やしましたが、ログインしているときは正常に機能していますが、ログイン画面や他のユーザーには正しくありません。

すべてのユーザーとログイン画面の表示設定をグローバルに設定するにはどうすればよいですか?

12
mirams

システムのセットアップ方法によっては、正しくセットアップされたユーザーから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/

注¹:今後作成するすべてのユーザー

13
Fabby

ログイン時のすべてのユーザーの画面構成を設定するには(これにより、ログイン画面の構成は変更されません)、.desktop/etc/xdg/autostartのファイル

どうやってするか

  1. xrandrを実行して、回転させたいスクリーンの名前を見つけます。いくつかの行のうち、次のような行が出力されます。

    VGA-0 connected
    

    これにより、接続された画面の名前に関する情報が得られます。

  2. 以下の私の例では、VGA-0の回転したいものを選択します
  3. (例えば)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
    

    画面を左に回転します。別のタイプの回転が必要な場合は、leftrightnormalinvertedのいずれかを選択できます。 ここ)

説明

.desktopファイル(ランチャー)を~/.config/autostartに配置することにより、起動時にコマンドを実行できます(実際にログインします)。これは、単一のユーザーに対してのみランチャーを実行します。同じことを行い、ランチャーを/etc/xdg/autostartに配置すると、特定のユーザーが無効にしない限り、anyユーザーがログインするたびにコマンドが実行されますDash> Startup Applicationsの彼または彼女のためのランチャー

さらに、ローカル~/.config/monitors.xmlファイルを/var/lib/lightdm/monitors.xmlにコピーするだけで、ログイン画面でも設定を機能させることができます。

この組み合わせと、上記のソリューション(/etc/xdgのランチャー)は、ログイン画面と(任意の)ユーザーの両方に必要なものを正確に実現する最も簡単なソリューションです。また、/etc/xdgのランチャーのソリューションは、(各)ユーザーレベルで多くのファイルを編集することなく、別のセットアップを行う必要がある場合に(非常に)簡単に元に戻すか変更できます。ログイン画面は、2つの単純なファイルですべてのユーザーに対して同時に管理されます。

3
Jacob Vlijm

同様の問題に苦しんでいる人を見つけるためにコメントを追加したかっただけです。ログインするたびに古いモニターの解像度(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解像度を取得します。

検索に数時間かかり、十分な回答が見つからなかったため、誰かに役立つ場合に備えてここに投稿しました。

2
MattB

/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はログイン画面の表示を変更します。

0
nixpower

私のシステム(Ubuntu 16.04)のログイン画面では、単にcp 'rootとして(Sudoを使用して)動作しませんでした。また、monitors.xmlの所有者/グループがlightdm:lightdmであることを確認する必要がある場合があります。

Sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
0
Zinsser