Appliquer les paramètres d'affichage à tous les comptes d'utilisateurs?


14

J'ai passé un certain temps à obtenir mes paramètres corrects pour plusieurs moniteurs, et cela fonctionne bien lorsque je suis connecté, mais ce n'est pas juste à l'écran de connexion ou pour les autres utilisateurs.

Comment définir globalement les paramètres d'affichage pour tous les utilisateurs et l'écran de connexion?


Comment l'avez-vous réglé? depuis l'interface graphique ou la ligne de commande, et quels sont exactement vos paramètres?
Jacob Vlijm

Avec l'interface graphique "Affichage d'écran", je pense que les paramètres apparaissent de toute façon. Deux moniteurs, un tourné.
mirams

askubuntu.com/questions/360886/… définit la connexion pour être identique à un utilisateur, ce qui est utile. askubuntu.com/questions/372729/… semble traiter d'anciens paramètres xorg qui ne sont plus utilisés dans 14.04 (je pense?). Vous ne trouvez aucune question ou réponse sur la façon de procéder le 14.04 ...
mirams

J'ai essayé cette réponse, l'écran a pivoté pour la connexion correctement, puis n'a pas pivoté pour les utilisateurs par la suite (même après la suppression de leurs moniteurs
locaux.xml

Je suis un peu surpris de la prime, si vous configurez vos moniteurs, exécutez sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/comme suggéré précédemment, + la solution ci-dessous, vous avez votre configuration pour tous les utilisateurs (y compris les nouveaux utilisateurs) exactement comme vous le décrivez.
Jacob Vlijm

Réponses:


14

Selon la façon dont vous avez configuré votre système, il peut être aussi simple que de copier le monitors.xmlfichier de l'utilisateur correctement configuré vers tous les utilisateurs:

Pour tester cela pour un utilisateur:

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

puis déconnectez TestUser s'il est déjà connecté , reconnectez- vous et voyez si tout est correct.

La commande pour tous les utilisateurs:

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

La commande de l'écran de connexion:

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

La commande pour tous les futurs utilisateurs ¹:

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

Remarque¹: Tous les utilisateurs que vous créerez à l'avenir


1
Je l'ai déjà suggéré dans les commentaires (et dans ma réponse plus tôt, mais j'ai annulé), mais OP a mentionné que ce n'était pas suffisant. Cela ne fonctionne que pour l'écran de connexion :) Cela ne fonctionne pas non plus pour les nouveaux utilisateurs, sauf si vous les copiez à nouveau vers ces utilisateurs.
Jacob Vlijm

@JacobVlijm: Relisez ... Le mien est pour l'écran de connexion et tous les utilisateurs ... : P (le laisser là-bas en tant que commentaire ci-dessous par l'OP qu'il ne fonctionne pas avertirait les autres affiches de taper tout ce qui une troisième fois) > :-)
Fabby

1
Je n'ai pas suggéré de copier le fichier à tous les utilisateurs, pour cette raison: j'aimerais une solution qui applique les paramètres à tous les comptes d'utilisateurs (et futurs), et donne également à l'écran de connexion une apparence correcte. ajouter à /etc/xdg semble être la seule astuce qui fait cela aux nouveaux utilisateurs.
Jacob Vlijm

@JacobVlijm: ah, j'ai raté celui-là! (Solution ajoutée pour cela aussi) ;-)
Fabby

2
C'est la meilleure réponse à ce jour - configure tous les moniteurs correctement et fonctionne immédiatement pour l'utilisateur invité également. En prime - existe-t-il un moyen de copier également le paramètre "Placement du lanceur" à partir de l'interface graphique des paramètres d'affichage? Sur mon utilisateur, ce n'est que sur un seul moniteur, mais sur les deux pour les nouveaux utilisateurs / invités.
mirams

3

Pour définir votre configuration d'écran pour chaque utilisateur connecté (cela ne changera pas la configuration sur l'écran de connexion), vous pouvez créer un .desktopfichier dans/etc/xdg/autostart

Comment faire ça

  1. découvrez le nom de l'écran que vous souhaitez faire pivoter en exécutant xrandr. Il produira un certain nombre de lignes, parmi lesquelles quelques lignes ressemblant à:

    VGA-0 connected
    

    Cela vous donne des informations sur les noms des écrans connectés.

  2. Choisissez celui que vous souhaitez faire pivoter, dans mon exemple ci-dessous VGA-0
  3. Créez un lanceur avec (par exemple) gedit:

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

    Collez le texte ci-dessous dans le fichier:

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

    remplacer dans la ligne:

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

    La chaîne: VGA-0par le nom de votre écran (pivoté).

Notes IMPORTANTES

  • Dans la ligne

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

    J'ai inclus un sleep 10. C'est parce que parfois, les xrandrcommandes s'arrêtent si elles s'exécutent trop tôt, avant que le bureau ne soit «terminé» de se charger. Vous devrez peut-être augmenter la pause, ou vous pourriez essayer de la laisser de côté. Dans la commande, telle qu'elle est, l'écran pivote après 10 secondes après la connexion de n'importe quel utilisateur.

  • La commande:

    xrandr --output VGA-0 --rotate left
    

    tourne l'écran de gauche, pas besoin de dire que si vous souhaitez un autre type de rotation, vous pouvez choisir left, right, normal, inverted(voir aussi ici) .

Explication

Vous pouvez exécuter des commandes au démarrage (en fait vous connecter) en plaçant un .desktopfichier (lanceur) dans ~/.config/autostart. Cela lancera le lanceur uniquement pour un seul utilisateur. Si vous faites de même, mais placez le lanceur dans /etc/xdg/autostart, la commande s'exécute chaque fois qu'un utilisateur se connecte, sauf si un utilisateur spécifique désactive le lanceur pour lui dans Dash> Applications de démarrage

De plus , vous pouvez simplement copier votre ~/.config/monitors.xmlfichier local pour /var/lib/lightdm/monitors.xmlfaire également fonctionner les paramètres sur l'écran de connexion.

Imo la combinaison de cela, et la solution ci-dessus (un lanceur dans /etc/xdg) est la solution la plus simple pour atteindre exactement ce que vous voulez pour l'écran de connexion et (tout) utilisateur. De plus, la solution d'un lanceur dans /etc/xdgest (très) facilement inversée ou modifiée au cas où vous auriez besoin de faire une autre configuration, sans modifier de nombreux fichiers au niveau de (chaque) utilisateur, car les paramètres de l'utilisateur et l'écran de connexion sont gérés pour tous les utilisateurs à la fois dans deux fichiers simples.


Cela pourrait fonctionner - changer les paramètres 10s après la connexion, mais je préférerais savoir où ils sont définis pour commencer et les modifier pour tout le monde (et l'écran de connexion, qui est actuellement latéral).
mirams

Pourquoi quelqu'un voterait-il contre cela?
Fabby

2

Je voulais juste ajouter un commentaire pour quiconque trouve cela aux prises avec un problème similaire. J'étais coincé avec la résolution de mon ancien moniteur (1280x1024) chaque fois que je me connectais, mais l'écran de connexion et la connexion utilisateur invitée utilisent le 1680x1050 par défaut correct.

J'ai lu beaucoup de messages au cours des quatre derniers mois à la recherche d'une réponse, en lisant sur xorg.conf, moniteurs.xml, lightdm et xrandr et d'autres suggestions - mais certains changements de configuration sont compliqués et comportent le risque de casser l'affichage entièrement, donc j'ai fini par utiliser l'interface graphique pour modifier manuellement les paramètres du moniteur à chaque connexion.

Aujourd'hui, j'ai fait un grep pour l'ancienne résolution dans mon dossier .config.

grep -HrnIF '1280' .config | less

Le premier résultat a été le fichier ~ / .config / autostart / xrandr.desktop contenant ce fichier,

Exec=xrandr -s 1280x1024 -r 75

donc je viens de déplacer le fichier hors de là. Et bingo, je me connecte et j'obtiens la résolution 1680x1050 par défaut.

Cela m'a pris quelques heures de recherche et je n'ai pas pu trouver une réponse suffisamment proche, alors postez ici au cas où cela serait utile à quelqu'un.


Bienvenue dans Ask Ubuntu. Merci d'avoir partagé vos quatre mois (temps écoulé) de recherche.
WinEunuuchs2Unix

En relisant cela, je pense que j'ai peut-être créé ce fichier xrandr.desktop il y a deux ans pour contourner Ubuntu, toujours par défaut aux paramètres de base du moniteur 'Goldstar', et c'était probablement un problème de compatibilité avec ma carte vidéo.
MattB

0

Vous voudrez peut-être y ajouter quelque chose /etc/lightdm/lightdm.conf. Ici, nous créons un script qui utilise une xrandrcommande pour configurer vos affichages. Vous pouvez utiliser un outil graphique RandR pour créer une commande pour vous, comme arandr. Dans mon cas, le script ressemblerait à:

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

Vous pouvez mettre ce script dans /usr/shareou où vous voulez. Votre script peut sembler beaucoup moins complexe, car il s'agit d'une configuration complexe à double moniteur. Ensuite, ajoutez quelque chose comme:

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

et:

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

Assurez-vous que le fichier est exécutable, donc:

chmod a+x mycustomxrandr.sh

Le session-setup-scriptva définir l'affichage après la connexion via LightDM et display-setup-scriptchangera l'affichage de l'écran de connexion.


Ce serait génial si vous pouviez essayer cela, je suis intéressé de voir si cela fonctionnera pour vous.
nixpower

0

Sur mon système (Ubuntu 16.04) pour l'écran de connexion, le simple fait cpde rooter (en utilisant sudo) ne fonctionnait pas. Vous devrez peut-être également vous assurer que le propriétaire / groupe de moniteurs.xml est lightdm:lightdm.

sudo chown lightdm:lightdm /var/lib/lightdm/.config/monitors.xml
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.