Чи є спосіб зберегти налаштування монітора? У мене зовнішній монітор на роботі, але кожного ранку мені доводиться підключати його, переставляти вікна так, щоб вони були поруч, щоб бути один на одного. Чи можу я просто зберегти це?
Чи є спосіб зберегти налаштування монітора? У мене зовнішній монітор на роботі, але кожного ранку мені доводиться підключати його, переставляти вікна так, щоб вони були поруч, щоб бути один на одного. Чи можу я просто зберегти це?
Відповіді:
Довга історія (тобто: зробіть те, що пропонує Ніколас Бернаертс , але я шкодую вас докладно): конфігурація моніторів фактично зберігається ~/.config/monitors.xml
, але вона не застосовується при запуску / вході.
Кроки для подолання цього:
Увійдіть у систему з неправильною конфігурацією моніторів.
Видалити поточну конфігурацію монітора:
cd .config
mv monitors.xml{,.bak}
Використовуйте програму " Дисплеї", щоб розташувати монітори за вашим бажанням (у мене один бічний монітор повернутий проти годинникової стрілки).
Після натискання кнопки Застосувати створюється новий 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
Конфігурація для всіх ваших моніторів - гарячекатаного підключено чи ні - має бути збережена в $HOME/.config/monitors.xml
в xrandr
плагін для gnome-settings-daemon
, який є те , що на самому ділі застосовує конфігурацію ви робите в капплете Монітори.
Оскільки здається, що це працює не всім належним чином, десь явно є помилка. Урх.
Перші три кроки для підключення зовнішнього монітора так, як ви хочете, і четвертий - це збереження налаштувань.
Підключіть зовнішній монітор і перевірте підтримувану роздільну здатність:
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 вдома. Два офісні монітори встановлені вертикально, а інші - у нормальній орієнтації.
A. monitors.xml знаходиться у ~ / .config.
B. Отримайте скрипт оболонки, "update-monitor-position".
Змініть визначення "MONITOR_XML", "monitors.xml" на "monitors-office.xml".
Збережіть його як "update-monitor-position-office", у виконуваному шляху (/ usr / local / sbin /).
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
Скрипт оболонки, оновлення-монітор-позиція-офіс
#!/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[@]}"
Відповідь Джей ледь не спрацювала для мене, але мені потрібно було зробити ще кілька додаткових кроків. Я б прокоментував його відповідь, але у мене немає репутації.
У файлі оновлення-монітор-позиція-офіс:
Я вважаю за краще запустити цей скрипт з терміналу, оскільки відкриваю його перший після входу.
Перший логін із поганою конфігурацією - монітори розміщені неправильно:
cd ~/.config
mv ~/.config/monitors.xml{,.bak}
Тепер встановіть монітори з системними налаштуваннями, щоб створити новий ~/.config/monitors.xml
файл із належними налаштуваннями.
Скопіюйте фіксований сценарій Ніколя Бернартса з мого репортажу: 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 повинен пам’ятати конфігурацію кожного завантаження на основі кожного пристрою (тобто підключення до монітора на роботі порівняно з домашнім).
~/.config/monitors.xml
, але вона не застосовується при запуску