Применить настройки отображения ко всем учетным записям пользователей?

Применить настройки отображения ко всем учетным записям пользователей?

Я потратил некоторое время на настройку правильных настроек для нескольких мониторов. Они работают нормально, когда я вхожу в систему, но не работают на экране входа в систему или для других пользователей.

Как установить глобальные настройки отображения для всех пользователей и экрана входа в систему?

решение1

В зависимости от того, как настроена ваша система, это может быть так же просто, как копирование monitors.xmlфайлаот правильно настроенного пользователявсем пользователям:

Чтобы проверить это для одного пользователя:

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 mkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Примечание¹:Все пользователи, которых вы создадите в будущем

решение2

Чтобы настроить конфигурацию экранадля каждого пользователя при входе в систему(это не изменит конфигурацию на экране входа в систему), вы можете создать .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команды прерываются, если они выполняются слишком рано, до того, как рабочий стол "закончит" загрузку. Возможно, вам нужно увеличить break, или вы можете попробовать не включать его. В команде, как она есть, экран поворачивается через 10 секунд после входа в системулюбойпользователь.

  • Команда:

    xrandr --output VGA-0 --rotate left
    

    поворачивает экран влево, нет необходимости говорить, что если вам нужен другой тип поворота, вы можете выбрать либо left, right, normal, inverted(см. такжездесь).

Объяснение

Вы можете запускать команды при запуске (фактически при входе в систему), поместив .desktopфайл (запуск) в ~/.config/autostart. Это запустит запуск только для одного пользователя. Если вы сделаете то же самое, но поместите запуск в /etc/xdg/autostart, команда будет выполняться всякий раз,любойпользователь входит в систему, если только конкретный пользователь не отключит для себя средство запуска в Dash > Автозагрузка приложений

Кроме того, вы можете просто скопировать локальный ~/.config/monitors.xmlфайл, чтобы /var/lib/lightdm/monitors.xmlнастройки также работали на экране входа в систему.

По моему мнению, сочетание этого и решения выше (пусковая установка в /etc/xdg) является самым простым решением для достижения именно того, что вы хотите как для экрана входа, так и для (любого) пользователя. Кроме того, решение пусковой установки в /etc/xdg(очень) легко отменить или изменить, если вам понадобится сделать другую настройку, без редактирования множества файлов на уровне (каждого) пользователя, поскольку и настройки пользователя, и экран входа управляются для всех пользователей одновременно в двух простых файлах.

решение3

Просто хотел добавить комментарий для тех, кто сталкивается с похожей проблемой. Я застрял с разрешением своего старого монитора (1280x1024) каждый раз, когда я вхожу в систему, но экран входа и вход в качестве гостя используют правильное разрешение по умолчанию 1680x1050.

За последние четыре месяца я прочитал много постов в поисках ответа, читаяxorg.conf, monitors.xml, lightdmиxrandrи другие предложения - но некоторые изменения конфигурации сложны и несут в себе риск полной поломки дисплея, поэтому в итоге я использовал графический интерфейс для ручного изменения настроек монитора при каждом входе в систему.

Сегодня я выполнил grep для старого разрешения в моей папке .config.

grep -HrnIF '1280' .config | less

Первым результатом был файл ~/.config/autostart/xrandr.desktop, содержащий это,

Exec=xrandr -s 1280x1024 -r 75

так что я просто переместил файл оттуда. И бинго, я вхожу и получаю разрешение по умолчанию 1680x1050.

Мне потребовалось несколько часов на поиски, но я не смог найти достаточно точного ответа, поэтому пишу здесь, возможно, это будет кому-то полезно.

решение4

Вы можете захотеть что-то добавить к /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, и display-setup-scriptизмените отображение экрана входа.

Связанный контент