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

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

Pasé algún tiempo corrigiendo la configuración para varios monitores, y eso funciona bien cuando inicio sesión, pero no funciona correctamente en la pantalla de inicio de sesión ni para otros usuarios.

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

Respuesta1

Dependiendo de la forma en que haya configurado su sistema, podría ser tan fácil como copiar el monitors.xmlarchivodel usuario correctamente configuradoa 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 TestUsersi ya ha iniciado sesión, vuelve a iniciar sesión y comprueba 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 comandopara todos los futuros usuarios¹:

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

Nota¹:Todos los usuarios que crearás en el futuro

Respuesta2

Para establecer la configuración de su pantallapara cada usuario que inicia 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. averigüe el nombre de la pantalla que le gustaría rotar ejecutando xrandr. Generará una serie de líneas, entre las que se ven algunas líneas como:

    VGA-0 connected
    

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

  2. Elija el que desea rotar, en mi ejemplo a continuaciónVGA-0
  3. Crea 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í un sleep 10. Esto se debe a que, a veces, xrandrlos comandos se interrumpen si se ejecutan demasiado pronto, antes de que el escritorio haya "terminado" de cargarse. Posiblemente necesites aumentar el descanso o podrías intentar omitirlo. En el comando, tal como está, la pantalla gira después de 10 segundos después de iniciar sesióncualquierusuario.

  • El comando:

    xrandr --output VGA-0 --rotate left
    

    gira la pantalla hacia la izquierda, no hace falta decir que si desea otro tipo de rotación, puede elegir entre left, right, normal, inverted(ver tambiénaquí).

Explicación

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

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

En mi opinión, la combinación de esto y la solución anterior (un iniciador en /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 /etc/xdgse puede revertir o cambiar (muy) 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.

Respuesta3

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

He leído muchas publicaciones durante los últimos cuatro meses buscando una respuesta, leyendo sobrexorg.conf, monitores.xml, lightdmyxrandry otras sugerencias, pero algunos cambios de configuración son complicados y conllevan el riesgo de romper la pantalla por completo, 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 contenía esto,

Exec=xrandr -s 1280x1024 -r 75

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

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

Respuesta4

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 utilizar alguna herramienta gráfica RandR para crear un comando, como arandr. En mi caso, el script quedarí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 /usr/sharedonde quieras. Su secuencia de comandos puede parecer mucho menos compleja, ya que es para una configuración compleja de dos monitores. Luego agregue 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, entonces:

chmod a+x mycustomxrandr.sh

El session-setup-scriptconfigurará la pantalla paradespuésinicia sesión a través de LightDM y display-setup-scriptcambiará la visualización de la pantalla de inicio de sesión.

información relacionada