Застосувати параметри відображення до всіх облікових записів користувачів?


14

Я витратив деякий час на коригування моїх налаштувань для декількох моніторів, і це нормально працює, коли я входив у систему, але це не правильно на екрані входу або для інших користувачів.

Як встановити налаштування дисплея у всьому світі для всіх користувачів та екрана входу?


Як ви це встановили? з графічного інтерфейсу чи командного рядка, а які саме ваші налаштування?
Яків Влійм

Я думаю, що з графічним інтерфейсом "Екран дисплея" налаштування відображаються все одно. Два монітора, один обертається.
mirams

askubuntu.com/questions/360886/… встановлює вхід таким самим, як один користувач, що корисно. askubuntu.com/questions/372729/…, схоже, стосується старих налаштувань xorg, які більше не використовуються в 14.04 (я думаю?). Не можу знайти жодного питання чи відповіді, як це зробити 14.04 ...
mirams

Я спробував цю відповідь, екран повернувся для входу правильно, а потім не повертався для користувачів після цього (навіть після видалення їхніх локальних моніторів.xml)
mirams

Я трохи здивований щедротою, якщо ви встановите монітори, запустіть, sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/як було запропоновано раніше, + рішення нижче, у вас є налаштування для всіх користувачів (включаючи нових користувачів) саме так, як ви описуєте.
Яків Влійм

Відповіді:


14

Залежно від способу налаштування вашої системи, це може бути настільки просто, як скопіювати 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 mdkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Примітка¹: Усі користувачі, яких ви створите в майбутньому


1
Я вже пропонував це у коментарях (і у своїй відповіді раніше, але відкотився), але ОП зазначив, що це недостатньо. Це працює лише для екрана входу :) Це також не працює для нових користувачів, якщо ви знову не скопіюєте їх для цих користувачів.
Яків Влійм

@JacobVlijm: Читайте ще раз ... Шахта призначена для екрана входу та всіх користувачів ... : P (залиште це там як коментар під цим ОП, що це не працює, застереже інших плакатів від введення всього цього втретє) > :-)
Fabby

1
Я не пропонував копіювати файл усім користувачам через це: я хотів би рішення, яке застосовує налаштування до всіх облікових записів користувачів (і майбутніх), а також робить екран для входу правильним. додавання до /etc/xdg здається єдиним трюком, який робить це і для нових користувачів.
Яків Влійм

@JacobVlijm: ах, пропустив це! (Додано і рішення для цього) ;-)
Fabby

2
Це найкращий варіант відповіді - налаштовує всі монітори правильно та працює негайно для гостя. Як бонус - чи є також спосіб скопіювати налаштування "Розміщення запуску" з графічного інтерфейсу налаштувань дисплея? У мого користувача це просто на одному моніторі, але на обох для нового / гостя.
mirams

3

Щоб встановити конфігурацію екрана для кожного користувача, який увійшов (це не змінить конфігурацію на екрані входу), ви можете створити .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команди перерваються, якщо вони запускаються занадто рано, до завантаження робочого столу. Можливо, вам потрібно збільшити перерву, або ви можете спробувати його вийти. У такій команді екран обертається через 10 секунд після входу в систему будь-якого користувача.

  • Команда:

    xrandr --output VGA-0 --rotate left
    

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

Пояснення

Ви можете запускати команди при запуску (фактично увійти в систему), розмістивши .desktopфайл (запуск) ~/.config/autostart. Це запустить пускач лише для одного користувача. Якщо ви робите те ж саме, але розміщуєте панель запуску /etc/xdg/autostart, команда запускається кожного разу, коли будь-який користувач входить у систему, якщо конкретний користувач не відключить його для її запуску в Dash> Startup Applications.

Крім того , ви можете просто скопіювати свій локальний ~/.config/monitors.xmlфайл, щоб /var/lib/lightdm/monitors.xmlналаштування працювали на екрані входу.

Отже, комбінація цього, і рішення вище (пусковий пристрій в /etc/xdg) є найпростішим рішенням досягти саме того, що ви хочете як для екрана входу, так і для (будь-якого) користувача. Крім того, рішення запуску в /etc/xdg(дуже) легко змінюється або змінюється у випадку, якщо вам потрібно буде зробити іншу установку, не редагуючи багато файлів на рівні кожного користувача, оскільки налаштуваннями користувача та екраном входу керуються для всі користувачі відразу в двох простих файлах.


Це може спрацювати - змінити налаштування через 10 секунд після входу, але я вважаю за краще знати, з чого вони встановлені для початку та змінити їх для всіх (і екран входу, який наразі знаходиться збоку).
mirams

Чому хтось спростував це?
Fabby

2

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

Я читав багато публікацій протягом останніх чотирьох місяців, шукаючи відповіді, читав на xorg.conf, monitors.xml, lightdm та xrandr та інші пропозиції - але деякі зміни конфігурації є складними і несуть ризик зламати дисплей повністю, тому я в кінцевому рахунку використовував gui, щоб змінити налаштування монітора вручну під час кожного входу.

Сьогодні я зробив прихильність за стару роздільну здатність у своїй папці .config.

grep -HrnIF '1280' .config | less

Першим результатом був файл ~ / .config / autostart / xrandr.desktop, що містить цей,

Exec=xrandr -s 1280x1024 -r 75

тому я просто перемістив файл звідти. І бінго, я входжу в систему і отримую стандартну роздільну здатність 1680x1050.

На мене знадобилося кілька годин пошуку, і я не зміг знайти досить близької відповіді, тому розміщую тут повідомлення на випадок, якщо комусь це стане в нагоді.


Ласкаво просимо до Ask Ubuntu. Дякуємо, що поділилися вашими чотирма місяцями (минули час) досліджень.
WinEunuuchs2Unix

Читаючи це ще раз, я думаю, що, можливо, я створив цей файл xrandr.desktop два роки тому, щоб обійти Ubuntu, завжди дефолт до основних налаштувань монітора 'Goldstar', і це, мабуть, було проблемою сумісності з моєю відеокарткою.
МетБ

0

Ви можете додати щось до цього /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перемикає дисплей на екрані входу в систему .


Було б чудово, якби ви могли спробувати це, мені цікаво дізнатись, чи спрацює це для вас.
nixpower

0

У моїй системі (Ubuntu 16.04) для екрана входу просто cp"root" (за допомогою sudo) не працював. Вам також може знадобитися переконатися, що власник / група monitors.xml є lightdm:lightdm.

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.