Есть ли способ сохранить настройки моего монитора? У меня есть внешний монитор на работе, но каждое утро я должен подключить его, переставить окна так, чтобы они были рядом друг с другом. Могу я просто сохранить это?
Есть ли способ сохранить настройки моего монитора? У меня есть внешний монитор на работе, но каждое утро я должен подключить его, переставить окна так, чтобы они были рядом друг с другом. Могу я просто сохранить это?
Ответы:
Короче говоря (то есть: делайте то, что предлагает Николя Бернартс , но я не буду вам вдаваться в подробности): конфигурация мониторов фактически сохраняется ~/.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
, который является то , что на самом деле применяет конфигурацию вы делаете в капплете Мониторы.
Поскольку кажется, что это не работает должным образом для всех, где-то явно есть ошибка. Urgh.
Первые три шага, чтобы подключить внешний монитор так, как вы хотите, и четвертый - сохранить настройки.
Подключите внешний монитор и проверьте его поддерживаемое разрешение:
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.
Б. Получить скрипт оболочки "update-monitor-position".
Измените определение «MONITOR_XML», «monitors.xml» на «monitors-office.xml».
Сохраните его как «update-monitor-position-office» в пути к исполняемому файлу (/ usr / local / sbin /).
C. Получить ярлык на рабочем столе "update-monitor-position.desktop"
обновление-монитор-позиционный 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[@]}"
Ответ Джея почти сработал для меня, но мне нужно было сделать пару дополнительных шагов. Я бы прокомментировал его ответ, но у меня нет репутации.
В файле update-monitor-position-office:
Я предпочитаю запускать этот скрипт из терминала, так как сначала открываю один после входа в систему.
Первый вход в систему с неверной конфигурацией - мониторы размещены неправильно:
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
, но она не применяется при запуске