¿Aplicar la configuración de visualización a todas las cuentas de usuario?

14

Pasé algún tiempo haciendo que mi configuración sea correcta para varios monitores, y eso funciona bien cuando estoy conectado, pero no está bien en la pantalla de inicio de sesión o para otros usuarios.

¿Cómo configuro la configuración de pantalla globalmente para todos los usuarios y la pantalla de inicio de sesión?

mirams
fuente
¿Cómo lo configuraste? desde la GUI o la línea de comandos, y ¿cuáles son exactamente sus configuraciones?
Jacob Vlijm
Creo que con la GUI "Pantalla", la configuración se muestra allí de todos modos. Dos monitores, uno girado.
mirams
askubuntu.com/questions/360886/… establece que el inicio de sesión sea el mismo que el de un usuario, lo cual es útil. askubuntu.com/questions/372729/… parece abordar las configuraciones antiguas de xorg que ya no se usan en 14.04 (¿creo?). No puedo encontrar ninguna pregunta o respuesta sobre cómo hacer esto el 14.04 ...
mirams
Intenté esa respuesta, la pantalla giró para iniciar sesión correctamente y luego no giró para los usuarios después (incluso después de eliminar sus monitores
locales.xml
Estoy un poco sorprendido de la recompensa, si configura sus monitores, ejecuta sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/como se sugirió anteriormente, + la solución a continuación, tiene su configuración para todos los usuarios (incluidos los nuevos usuarios) exactamente como usted describe.
Jacob Vlijm

Respuestas:

14

Dependiendo de la forma en que haya configurado su sistema, puede ser tan fácil como copiar el monitors.xmlarchivo del usuario configurado correctamente a todos los usuarios:

Para probar esto para un usuario:

cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/

luego cierre sesión en TestUser si ya inició sesión , vuelva a iniciar sesión y vea si todo está correcto.

El comando para todos los usuarios:

cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done

El comando para la pantalla de inicio de sesión:

sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/

El comando para todos los futuros usuarios ¹:

sudo mdkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Nota¹: todos los usuarios que creará en el futuro

Fabby
fuente
1
Ya lo sugerí en los comentarios (y en mi respuesta anterior, pero retrocedí), pero OP mencionó que no era suficiente. Esto solo funciona para la pantalla de inicio de sesión :) Tampoco funciona para los nuevos usuarios a menos que los copie nuevamente a esos usuarios.
Jacob Vlijm
@JacobVlijm: Lee de nuevo ... El mío es para la pantalla de inicio de sesión y todos los usuarios ... : P (dejarlo allí como un comentario debajo de esto por parte del OP de que no funciona advertiría a otros carteles que escriban todo eso una tercera vez) > :-)
Fabby
1
No sugerí copiar el archivo a todos los usuarios, debido a esto: me gustaría una solución que aplique la configuración a todas las cuentas de usuario (y futuras), y también haga que la pantalla de inicio de sesión se vea bien. agregar a /etc/xdg parece ser el único truco que hace eso a los nuevos usuarios también.
Jacob Vlijm
@JacobVlijm: ¡ah, me perdí esa! (Solución agregada para eso también) ;-)
Fabby
2
Esta es la mejor respuesta hasta ahora: configura todos los monitores correctamente y también funciona de inmediato para el usuario invitado. Como beneficio adicional, ¿hay alguna manera de copiar también la configuración de "Ubicación del iniciador" desde la GUI de Configuración de pantalla? En mi usuario, solo está en un monitor, pero en ambos para usuarios nuevos / invitados.
Mirams
3

Para establecer la configuración de su pantalla para cada usuario al iniciar sesión (esto no cambiará la configuración en la pantalla de inicio de sesión), puede crear un .desktoparchivo en/etc/xdg/autostart

Como hacer eso

  1. descubra el nombre de la pantalla que desea rotar al ejecutar xrandr. Producirá una serie de líneas, entre algunas líneas que se ven así:

    VGA-0 connected
    

    Esto le brinda información sobre los nombres de las pantallas conectadas.

  2. Elija el que desea rotar, en mi ejemplo a continuación VGA-0
  3. Cree un lanzador con (por ejemplo) gedit:

    sudo -i gedit /etc/xdg/autostart/set_screens.desktop
    

    Pegue el siguiente texto en el archivo:

    [Desktop Entry]
    Name=set_screens
    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    Type=Application
    

    reemplazar en la línea:

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    La cadena: VGA-0por el nombre de su pantalla (girada).

Notas importantes

  • En la linea

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    Incluí a sleep 10. Esto se debe a que, a veces, los xrandrcomandos se rompen si se ejecutan demasiado pronto, antes de que el escritorio se "termine" de cargar. Posiblemente necesite aumentar el descanso, o podría intentar dejarlo afuera. En el comando, tal como está, la pantalla gira después de 10 segundos después de iniciar sesión de cualquier usuario.

  • El comando:

    xrandr --output VGA-0 --rotate left
    

    gira la pantalla hacia la izquierda, no hay necesidad de decir que si desea otro tipo de rotación, se puede elegir cualquiera left, right, normal, inverted(véase también aquí) .

Explicación

Puede ejecutar comandos al inicio (en realidad iniciar sesión) colocando un .desktoparchivo (lanzador) en ~/.config/autostart. Esto solo ejecutará el iniciador para un solo usuario. Si hace lo mismo, pero coloca el iniciador /etc/xdg/autostart, el comando se ejecuta cada vez que un usuario inicia sesión, a menos que un usuario específico desactive el iniciador en Dash> Aplicaciones de inicio

Además , puede simplemente copiar su ~/.config/monitors.xmlarchivo local para /var/lib/lightdm/monitors.xmlque también funcione la configuración en la pantalla de inicio de sesión.

Imo la combinación de esto, y la solución anterior (un iniciador /etc/xdg) es la solución más fácil para lograr exactamente lo que desea tanto para la pantalla de inicio de sesión como para (cualquier) usuario. Además, la solución de un iniciador en /etc/xdg(muy) se invierte o cambia fácilmente en caso de que necesite realizar otra configuración, sin editar muchos archivos en (cada) nivel de usuario, ya que tanto la configuración del usuario como la pantalla de inicio de sesión se administran para todos los usuarios a la vez en dos archivos simples.

Jacob Vlijm
fuente
Eso podría funcionar: cambiar la configuración 10 segundos después de iniciar sesión, pero preferiría saber dónde están configurados para comenzar y cambiarlos para todos (y la pantalla de inicio de sesión, que actualmente está de lado).
mirams
¿Por qué alguien menospreciaría esto?
Fabby
2

Solo quería agregar un comentario para cualquiera que encuentre este problema con un problema similar. Estaba atascado con la resolución de mi antiguo monitor (1280x1024) cada vez que inicio sesión, pero la pantalla de inicio de sesión y el inicio de sesión del usuario invitado usan el valor predeterminado correcto de 1680x1050.

He leído muchas publicaciones en los últimos cuatro meses buscando una respuesta, leyendo en xorg.conf, monitor.xml, lightdm y xrandr y otras sugerencias, pero algunos cambios de configuración son complicados y conllevan el riesgo de romper la pantalla. completamente, así que terminé usando la interfaz gráfica de usuario para cambiar la configuración del monitor manualmente cada inicio de sesión.

Hoy hice un grep para la resolución anterior en mi carpeta .config.

grep -HrnIF '1280' .config | less

El primer resultado fue el archivo ~ / .config / autostart / xrandr.desktop que contiene esto,

Exec=xrandr -s 1280x1024 -r 75

así que simplemente saqué el archivo de allí. Y bingo, inicio sesión y obtengo la resolución predeterminada de 1680x1050.

Me llevó algunas horas de búsqueda y no pude encontrar una respuesta lo suficientemente cercana, por lo que publicar aquí en caso de que sea útil para alguien.

MattB
fuente
Bienvenido a Ask Ubuntu. Gracias por compartir sus cuatro meses (tiempo transcurrido) de investigación.
WinEunuuchs2Unix
Al leer esto de nuevo, creo que posiblemente creé ese archivo xrandr.desktop hace dos años para evitar que Ubuntu siempre se ajuste a la configuración básica del monitor 'Goldstar', y eso probablemente fue un problema de compatibilidad con mi tarjeta de video.
MattB
0

Es posible que desee agregar algo a /etc/lightdm/lightdm.conf. Aquí creamos un script que utiliza un xrandrcomando para configurar su (s) pantalla (s). Puede usar alguna herramienta gráfica RandR para crear un comando para usted, como arandr. En mi caso, el guión se vería así:

#!/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

Puedes poner este script en /usr/shareo donde quieras. Su script puede parecer mucho menos complejo, ya que es para una configuración compleja de monitor dual. Luego agrega algo como:

session-setup-script=/usr/share/mycustomxrandr.sh

y:

display-setup-script=/usr/share/mycustomxrandr.sh

Asegúrese de que el archivo sea ejecutable, de modo que:

chmod a+x mycustomxrandr.sh

La session-setup-scriptpantalla se configurará después de iniciar sesión a través de LightDM y display-setup-scriptcambiará la visualización de la pantalla de inicio de sesión.

nixpower
fuente
Sería genial si pudieras probar esto, estoy interesado en ver si esto funcionará para ti.
nixpower
0

En mi sistema (Ubuntu 16.04) para la pantalla de inicio de sesión simplemente cpcomo root (usando sudo) no funcionó. También es posible que deba asegurarse de que el propietario / grupo de monitor.xml sea lightdm:lightdm.

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
Zinsser
fuente