モニター設定を保存する方法はありますか?私は仕事中に外部モニターを持っていますが、毎朝私はそれを差し込んで、ウィンドウを並べて並べて並べて並べなければなりません。これを保存できますか?
長い話(つまり: Nicolas Bernaerts が提案することを実行しますが、詳細は省きます):モニターの構成は実際には~/.config/monitors.xml
に保存されますが、起動時/ログイン時には適用されません。
これを克服する手順は次のとおりです。
間違ったモニター構成でログインします。
現在のモニター構成を削除します。
cd .config
mv monitors.xml{,.bak}
Displaysアプリケーションを使用して、必要に応じてモニターを配置します(一方のモニターを反時計回りに回転させます)。
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 monitor positionアプリケーションを起動することで修正できます。
これを自動化する場合は、次のエントリを含むスタートアップアプリケーションを追加するだけです。
Update Monitors Position
update-monitor-position 5
Force monitors position 5 seconds after login
すべてのモニターの構成-ホットプラグされているかどうか-should$HOME/.config/monitors.xml
のxrandr
プラグインによってgnome-settings-daemon
に保存されます。これは実際に構成を適用するものですあなたはモニターキャプレットで作ります。
これは誰にとっても適切に機能していないように見えるので、明らかにどこかにバグがあります。ほら.
外部モニターを希望する方法で接続するための最初の3つのステップと4番目は、設定を保存することです。
外部モニターを接続し、サポートされている解像度を確認します。
xrandr -q
次のコマンドを実行します(これによりラップトップモニターが無効になります)。
xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
ラップトップと外部の両方を有効にする場合:
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
」オプションで再生します。
ログイン時にこの設定が必要な場合は、/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
オフィスでは、ラップトップに3台のモニターがあり、自宅に2台あります。 2つのオフィスモニターは垂直に設定され、他のモニターは通常の向きに設定されます。
A. monitor.xmlは〜/ .configにあります。
B.シェルスクリプト「update-monitor-position」を取得します。
「MONITOR_XML」定義「monitors.xml」を「monitors-office.xml」に変更します。
実行可能パス(/ usr/local/sbin /)に「update-monitor-position-office」として保存します。
C.デスクトップショートカット「update-monitor-position.desktop」を取得する
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[@]}"
Ubuntu 12.04は、ホットプラグされたモニター設定を記憶しています。ただし、[システム構成]> [アプレットの表示]を再度開いたときにのみ適用されます。少なくともこれは私の場合であり、これは間違いなくバグです。
ジェイの答えは私にとってはほとんど機能しましたが、いくつかの追加手順を実行する必要がありました。これを彼の答えにコメントしたいのですが、評判はありません。
ファイルupdate-monitor-position-officeで:
ログイン後に最初にスクリプトを開くため、このスクリプトを端末から実行することを好みます。
不適切な設定での最初のログイン-モニターが正しく配置されていません:
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
いいえ、ホットプラグ対応モニターの構成を保存する方法はありません。起動前にプラグインする場合、GNOMEはデバイスごとに起動ごとに構成を記憶する必要があります(つまり、職場のモニターと自宅のモニターの接続)。