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.xml
archivodel 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 .desktop
archivo en/etc/xdg/autostart
Como hacer eso
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.
- Elija el que desea rotar, en mi ejemplo a continuación
VGA-0
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-0
por 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,xrandr
los 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 .desktop
archivo (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.xml
archivo local para /var/lib/lightdm/monitors.xml
que 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/xdg
se 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 xrandr
comando 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/share
donde 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-script
configurará la pantalla paradespuésinicia sesión a través de LightDM y display-setup-script
cambiará la visualización de la pantalla de inicio de sesión.