モニター設定を保存しますか?


回答:


7

簡単に言えば(つまり:Nicolas Bernaertsが提案することを実行しますが、詳細は省きます):モニター構成は実際にはに保存されますが~/.config/monitors.xml、起動時/ログイン時には適用されません。

これを克服する手順は次のとおりです。

間違ったモニター構成でログインします。

現在のモニター構成を削除します。

cd .config
mv monitors.xml{,.bak}

ディスプレイアプリケーションを使用して、必要に応じてモニターを配置します(一方のモニターを反時計回りに回転させています)。 必要に応じてモニターを配置します

Applyを押すと、新しいものmonitors.xmlが作成されます。

次に、新しく作成された構成ファイルに基づいてモニター構成を強制するスクリプトとランチャーをダウンロードして実行可能にします。

$ sudo wget -O /usr/local/sbin/update-monitor-position https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position
$ sudo chmod +x /usr/local/sbin/update-monitor-position
$ sudo wget -O /usr/share/applications/update-monitor-position.desktop https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position.desktop
$ sudo chmod +x /usr/share/applications/update-monitor-position.desktop

この時点で、モニター位置更新アプリケーションを起動することにより、モニターの構成を修正できます。

これを自動化する場合は、次のエントリを含むスタートアップアプリケーションを追加するだけです。

  • 名前: Update Monitors Position
  • コマンド: update-monitor-position 5
  • コメント: Force monitors position 5 seconds after login

ここに画像の説明を入力してください


1
素晴らしい、これは助けた。ありがとう!これに関するバグレポートはありますか?
オンドラジージュカ


2
これが最良の答えだと思います。私は複数のプロファイルをサポートするためのスクリプトを更新:gist.github.com/relet/66a965cdf728e5278fbf52c9d1433be0を -あなたは「更新のモニタ位置オフィス」を実行したい場合は、単に例えばモニター-office.xmlにごmonitors.xmlをコピーする
relet

vanvugt:「実際、バグ1292398を使用しましょう。ほとんどのユーザーが見つけているバグです。」bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
FlipMcF

5

すべてのモニターの構成(ホットプラグされているかどうか)は、プラグインによって保存する必要$HOME/.config/monitors.xmlありxrandrますgnome-settings-daemonかどうか)は。これは、モニターキャプレットで行った構成を実際に適用するものです。

これは誰にとっても適切に機能していないように見えるので、明らかにどこかにバグがあります。ほら


ええ、macoが言っているように、コンピューターをシャットオフして再起動すると、既に電源が入っているときだけではなく、記憶しています。
オスカーゴッドソン

4

外部モニターを希望の方法で接続するための最初の3つのステップと4番目は、設定を保存することです。

  1. 外部モニターを接続し、サポートされている解像度を確認します。

    xrandr -q
    
  2. 次のコマンドを実行します(これによりラップトップモニターが無効になります)。

    xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    
  3. ラップトップと外部の両方を有効にする場合:

    xrandr --output LVDS1 --mode yyyyXzzzz --pos 0x0 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    

    (yyyyXzzzz-ラップトップの解像度。)

    上記の構成により、画面が複製されます。必要に応じて、「--right-of/ --left-of」オプションで再生します。

  4. ログイン時にこの設定が必要な場合は、チェックインを追加します/etc/X11/Xsession.d/45custom_xrandr-settings(作成する必要がある場合があります)。

    xrandr |grep VGA1 | grep " connected " | if [ $? -eq 0 ]; then xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal  #Change the way u need ; fi
    

2

オフィスでは、ラップトップに3台のモニターがあり、自宅に2台あります。2つのオフィスモニターは垂直に設定され、他のモニターは通常の向きに設定されます。

A. monitor.xmlは〜/ .configにあります。

  1. 消して
  2. オフィスのセットアップでディスプレイを設定する
  3. 作成したばかりの「monitors.xml」の名前を「monitors-office.xml」に変更します。

B.シェルスクリプト「update-monitor-position」を取得します。

  1. 「MONITOR_XML」定義「monitors.xml」を「monitors-office.xml」に変更します。

  2. 実行可能パス(/ usr / local / sbin /)に「update-monitor-position-office」として保存します。

  3. 許可にタッチします->「私」によって実行可能。

C.デスクトップショートカット「update-monitor-position.desktop」を取得する

  1. 「Exec」定義、「update-monitor-position」を変更します
    「update-monitor-position-office」に変更します。
  2. 「update-monitor-position-office.desktop」として保存します
  3. 許可にタッチします->「私」によって実行可能。

update-monitor-position-office.desktop:

[Desktop Entry]
Type=Application
Exec=update-monitor-position-office
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Office Monitors Position
Name=Office Monitors Position
Comment[en_US]=Force monitors position from monitor-office.xml
Comment=Force monitors position from monitor-office.xml
Icon=display

シェルスクリプト、update-monitor-position-office

#!/bin/bash
# -------------------------------------------------
#  Get monitors configuration from monitor.xml and apply it for current user session.
#  In case of multiple definitions in monitor.xml only first one is used.
#
#  See http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost
#  for instructions
#
#  Parameters :
#    $1 : waiting time in sec. before forcing configuration (optional)
#
#  Revision history :
#    19/04/2014, V1.0 - Creation by N. Bernaerts
#    10/07/2014, V1.1 - Wait 5 seconds for X to fully initialize
#    01/09/2014, V1.2 - Correct NULL file bug (thanks to Ivan Harmady) and handle rotation
#    07/10/2014, V1.3 - Add monitors size and rate handling (idea from jescalante)
#    08/10/2014, V1.4 - Handle primary display parameter
#    08/12/2014, V1.5 - Waiting time in seconds becomes a parameter
# -------------------------------------------------

# monitor.xml path
MONITOR_XML="$HOME/.config/monitors-office.xml"

# get number of declared monitors
NUM=$(xmllint --xpath 'count(//monitors/configuration['1']/output)' $MONITOR_XML)

# loop thru declared monitors to create the command line parameters
for (( i=1; i<=$NUM; i++)); do
  # get attributes of current monitor (name and x & y positions)
  NAME=$(xmllint --xpath 'string(//monitors/configuration['1']/output['$i']/@name)' $MONITOR_XML 2>/dev/null)
  POS_X=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/x/text()' $MONITOR_XML 2>/dev/null)
  POS_Y=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/y/text()' $MONITOR_XML 2>/dev/null)
  ROTATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rotation/text()' $MONITOR_XML 2>/dev/null)
  WIDTH=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/width/text()' $MONITOR_XML 2>/dev/null)
  HEIGHT=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/height/text()' $MONITOR_XML 2>/dev/null)
  RATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rate/text()' $MONITOR_XML 2>/dev/null)
  PRIMARY=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/primary/text()' $MONITOR_XML 2>/dev/null)

  # if position is defined for current monitor, add its position and orientation to command line parameters
  [ -n "$POS_X" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--output" "$NAME" "--pos" "${POS_X}x${POS_Y}" "--fbmm" "${WIDTH}x${HEIGHT}" "--rate" "$RATE" "--rotate" "$ROTATE")

  # if monitor is defined as primary, adds it to command line parameters
  [ "$PRIMARY" = "yes" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--primary")
done

# if needed, wait for some seconds (for X to finish initialisation)
[ -n "$1" ] && sleep $1

# position all monitors
xrandr "${PARAM_ARR[@]}"

@jeyさん、2018年1月にこれに答えました(ニコラススクリプトは4歳ですが...)。これが最近のUbuntu 16.x / 18.xでまだ機能していると思いますか?–そして:Ubuntu- MATEでも動作するのであれば、何か仮定はありますか?(私のシステムには、monitors.xmlと表示されます...)
フランクノッケ

フランク、私の言う「16.04.5 LTS」。ある点、「dist-upgrade」の後、プロセスを実行してから再起動する必要がありました。「システム設定->ディスプレイ」は私のシステムではおかしく動作します。18.xを試すモードではありません。おかげで
ジェイ

1

Ubuntu 12.04は、ホットプラグされたモニター設定を記憶しています。ただし、[システム構成]> [アプレットの表示]を再度開いたときにのみ適用されます。少なくともこれは私の場合であり、これは間違いなくバグです。


1

ジェイの答えは私にとってはほとんど機能しましたが、いくつかの追加手順を実行する必要がありました。これを彼の答えにコメントしたいのですが、評判はありません。

ファイルupdate-monitor-position-officeで:

  1. 私のバージョンのbash(4.3.48)は、行28の「i ++」に続くスペースの不足について不満を言いました。
  2. xrandr(1.5)の私のバージョンは、40行目の「--fbmm」オプションを認識しませんでした。これを「--mode」に変更する必要がありました。xrandrは実際にはエラーを出さず、何もせずにコマンドを実行しただけなので、診断は困難でした。

1

ログイン後に最初にスクリプトを開くので、このスクリプトを端末から実行することを好みます。

不適切な設定での最初のログイン-モニターが正しく配置されていません:

cd ~/.config
mv ~/.config/monitors.xml{,.bak}

次に、システム設定でモニターを設定して新しいモニターを作成します ~/.config/monitors.xml、適切な設定でファイルます。

Nicolas Bernaertsの修正済みスクリプトをレポジトリ(https://raw.githubusercontent.com/alextomko/monitors/master/monitors)からコピーして、ターミナルから実行するパスに配置します。

$ ls -l ~/bin
# if you don't have this directory then create it - do not be logged in as root here.

$ mkdir /home/$USER/bin

$ echo $PATH
# should show /home/username/bin if the dir existed or if you had to create.

$ wget -P ~/bin https://raw.githubusercontent.com/alextomko/monitors/master/monitors
$ chmod +x ~/bin/monitors

# Log out, lock, reboot or whatever it takes to make monitor settings lost for you and run the script.
$ monitors

0

いいえ、ホットプラグ対応モニターの構成を保存する方法はありません。ブートする前にプラグインする場合、GNOMEはデバイスごとに各ブートの設定を記憶する必要があります(つまり、職場のモニターと自宅のモニターの接続)。


くそー、わかった。これを行うことができるサードパーティのアプリケーションはありますか?Mac OS Xがこれを行い、Windows 7(W7での小さな経験で試したことから)を知っています。
オスカーゴッドソン

GNOMEモニター構成では、ホットプラグ対応モニターのこの情報も保存する必要があります。それは私のために。
RAOF

RAOF:奇妙です。先週のubuntu-develメーリングリストでの議論はそうではなかったからです。
マコ

構成は実際にはに保存されますが~/.config/monitors.xml、起動時には適用されません
アレッサンドロカッティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.