web-dev-qa-db-fra.com

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

J'ai passé un certain temps à configurer correctement mes paramètres pour plusieurs moniteurs, et cela fonctionne correctement lorsque je suis connecté, mais ne se trouve pas à l'écran de connexion ni aux autres utilisateurs.

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

12
mirams

Selon la manière dont vous avez configuré votre système, il peut être aussi simple que de copier le fichier monitors.xml de l'utilisateur correctement configuré à tous les utilisateurs. :

Pour tester cela pour un utilisateur:

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

puis déconnectez-vous de TestUser , si vous êtes déjà connecté , reconnectez-vous et vérifiez 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 pour 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/

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

13
Fabby

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

Comment faire ça

  1. trouvez le nom de l'écran que vous souhaitez faire pivoter en exécutant xrandrname__. 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 voulez faire pivoter, dans mon exemple ci-dessous VGA-0
  3. Créez un lanceur avec (par exemple) geditname__:

    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-0 en fonction du 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. En effet, parfois, les commandes xrandrsont interrompues si elles s'exécutent trop tôt, avant le chargement "terminé" du bureau. Peut-être devez-vous augmenter le temps de pause ou essayer de le laisser de côté. Dans la commande, l’écran pivote au bout de 10 secondes après la connexion de n’importe quel utilisateur .

  • La commande:

    xrandr --output VGA-0 --rotate left
    

    tourne l'écran à gauche, inutile de préciser que si vous souhaitez un autre type de rotation, vous pouvez choisir leftname__, rightname__, normalname__, inverted(voir aussi ici) .

Explication

Vous pouvez exécuter des commandes au démarrage (en réalité vous connecter) en plaçant un fichier .desktop (lanceur) dans ~/.config/autostart. Cela lancera le lanceur uniquement pour un utilisateur unique. Si vous faites la même chose, mais placez le programme de lancement dans /etc/xdg/autostart, la commande est exécutée chaque fois que un utilisateur se connecte, sauf si un utilisateur spécifique désactive le programme de lancement pour lui ou elle dans Dash> Applications de démarrage

En outre , vous pouvez simplement copier votre fichier ~/.config/monitors.xml dans /var/lib/lightdm/monitors.xml pour que les paramètres fonctionnent également à l'écran de connexion.

En combinant cela, et la solution ci-dessus (un lanceur dans /etc/xdg) est la solution la plus simple pour obtenir exactement ce que vous voulez pour l'écran de connexion et pour l'utilisateur (quel qu'il soit). De plus, la solution d'un lanceur dans /etc/xdg est (très) facilement annulée ou modifiable au cas où vous auriez besoin d'effectuer une autre configuration, sans éditer beaucoup de fichiers au niveau de (chaque) utilisateur, puisque 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.

3
Jacob Vlijm

Je voulais juste ajouter un commentaire à quiconque se trouverait aux prises avec un problème similaire. J'étais bloqué par la résolution de mon ancien moniteur (1280x1024) à chaque fois que je me connectais, mais l'écran de connexion et la connexion de l'utilisateur invité utilisent la valeur par défaut correcte de 1680x1050.

J'ai lu beaucoup d'articles au cours des quatre derniers mois à la recherche d'une réponse. J'ai lu xorg.conf, moniteurs.xml, lightdm et xrandr et d'autres suggestions - mais certaines modifications de configuration sont compliquées et risquent de briser complètement l'affichage. J'ai donc 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 était ~/.config/autostart/xrandr.desktop contenant ce fichier,

Exec=xrandr -s 1280x1024 -r 75

donc je viens de déplacer le fichier de là. Et bingo, je me connecte et je reçois la résolution par défaut de 1680x1050.

Il m'a fallu quelques heures de recherche et je ne pouvais pas trouver une réponse suffisamment proche, donc poster ici au cas où cela serait utile à quelqu'un.

2
MattB

Vous voudrez peut-être ajouter quelque chose à /etc/lightdm/lightdm.conf. Nous créons ici un script qui utilise une commande xrandrpour configurer votre ou vos affichages. Vous pouvez utiliser certains outils RandR graphiques pour créer une commande pour vous, telle que arandrname__. Dans mon cas, le script ressemblerait à ceci:

#!/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/share ou où vous voulez. Votre script peut paraître beaucoup moins complexe, car il s’agit d’une configuration complexe à double moniteur. Puis 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-script définit l'affichage pour après vous vous connectez via LightDM, et display-setup-script modifie l'affichage de l'écran de connexion.

0
nixpower

Sur mon système (Ubuntu 16.04) pour l’écran de connexion, cpname __ 'en tant que root (avec Sudoname__) 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
0
Zinsser