web-dev-qa-db-fra.com

Enregistrer les paramètres du moniteur?

Est-il possible de sauvegarder les paramètres de mon moniteur? J'ai un moniteur externe au travail, mais chaque matin, je dois le brancher, réorganiser les fenêtres côte à côte pour qu'elles soient les unes sur les autres. Puis-je juste sauver ceci?

15
Oscar Godson

Bref récit (c'est-à-dire: faites ce que Nicolas Bernaerts suggère, mais je vous épargne les détails): la configuration des moniteurs est effectivement enregistrée dans ~/.config/monitors.xml, mais elle n'est pas appliquée au démarrage/à la connexion.

Les étapes pour surmonter ceci sont:

Connectez-vous avec la mauvaise configuration de moniteurs.

Supprimer la configuration actuelle du moniteur:

cd .config
mv monitors.xml{,.bak}

Utilisez l'application Displays pour organiser les moniteurs comme vous le souhaitez (j'ai un moniteur latéral pivoté dans le sens inverse des aiguilles d'une montre). arrange your monitors as you wish

Une fois que vous avez appuyé sur Appliquer , un nouveau monitors.xml est créé.

Maintenant, téléchargez et rendez exécutable le script et le programme de lancement qui forcent la configuration du moniteur en fonction du fichier de configuration nouvellement créé:

$ Sudo wget -O /usr/local/sbin/update-monitor-position https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position
$ Sudo chmod +x /usr/local/sbin/update-monitor-position
$ Sudo wget -O /usr/share/applications/update-monitor-position.desktop https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position.desktop
$ Sudo chmod +x /usr/share/applications/update-monitor-position.desktop

À ce stade, la configuration des moniteurs peut être corrigée en lançant l'application update position monitor .

Si vous voulez que cela soit automatique, ajoutez simplement une application de démarrage, avec les entrées suivantes:

  • Nom: Update Monitors Position
  • Commande: update-monitor-position 5
  • Commentaire: Force monitors position 5 seconds after login

enter image description here

6
Alessandro Cuttin

Configuration pour tous vos moniteurs - branchés à chaud ou non - devrait être stocké dans $HOME/.config/monitors.xml par le plugin xrandr pour gnome-settings-daemon, qui applique la configuration que vous avez définie dans la capplet Monitors.

Comme il semble que cela ne fonctionne pas correctement pour tout le monde, il y a clairement un bug quelque part. Urgh.

5
RAOF

Trois premières étapes pour connecter votre moniteur externe comme vous le souhaitez et la quatrième consiste à enregistrer les paramètres.

  1. Connectez votre moniteur externe et vérifiez sa résolution prise en charge:

    xrandr -q
    
  2. Donnez la commande suivante (cela désactivera votre moniteur d'ordinateur portable):

    xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    
  3. Si vous voulez que les ordinateurs portables et externes soient activés:

    xrandr --output LVDS1 --mode yyyyXzzzz --pos 0x0 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    

    (aaaaXzzzz - la résolution de votre ordinateur portable.)

    La configuration ci-dessus va cloner votre écran. Jouez avec l'option "--right-of/--left-of" si vous le souhaitez.

  4. Si vous avez besoin de ces paramètres lors de la connexion, ajoutez les vérifications dans /etc/X11/Xsession.d/45custom_xrandr-settings (Vous devrez peut-être en créer un).

    xrandr |grep VGA1 | grep " connected " | if [ $? -eq 0 ]; then xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal  #Change the way u need ; fi
    
4
user8361

Au bureau, j'ai 3 écrans sur mon ordinateur portable et 2 à la maison. Deux des moniteurs de bureau sont réglés à la verticale, tandis que les autres moniteurs sont en orientation normale.

A. moniteurs.xml est dans ~/.config.

  1. Supprime-le
  2. Définir l'affichage lors de la configuration du bureau
  3. Renommez simplement créé "moniteurs.xml" en "moniteurs-office.xml".

B. Obtenez le script Shell, "update-monitor-position".

  1. Changez la définition "MONITOR_XML", "moniteurs.xml" en "moniteurs-office.xml".

  2. Enregistrez-le sous "update-monitor-position-office", dans le chemin de l'exécutable (/ usr/local/sbin /).

  3. Appuyez sur l'autorisation -> exécutable par "moi".

C. Obtenir le raccourci sur le bureau, "update-monitor-position.desktop"

  1. Remplacez la définition "Exec" par "update-monitor-position" par
    "update-monitor-position-office".
  2. Enregistrez-le sous "update-monitor-position-office.desktop"
  3. Appuyez sur l'autorisation -> exécutable par "moi".

update-monitor-position-office.desktop:

[Desktop Entry]
Type=Application
Exec=update-monitor-position-office
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Office Monitors Position
Name=Office Monitors Position
Comment[en_US]=Force monitors position from monitor-office.xml
Comment=Force monitors position from monitor-office.xml
Icon=display

Script shell, update-monitor-position-office

#!/bin/bash
# -------------------------------------------------
#  Get monitors configuration from monitor.xml and apply it for current user session.
#  In case of multiple definitions in monitor.xml only first one is used.
#
#  See http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost
#  for instructions
#
#  Parameters :
#    $1 : waiting time in sec. before forcing configuration (optional)
#
#  Revision history :
#    19/04/2014, V1.0 - Creation by N. Bernaerts
#    10/07/2014, V1.1 - Wait 5 seconds for X to fully initialize
#    01/09/2014, V1.2 - Correct NULL file bug (thanks to Ivan Harmady) and handle rotation
#    07/10/2014, V1.3 - Add monitors size and rate handling (idea from jescalante)
#    08/10/2014, V1.4 - Handle primary display parameter
#    08/12/2014, V1.5 - Waiting time in seconds becomes a parameter
# -------------------------------------------------

# monitor.xml path
MONITOR_XML="$HOME/.config/monitors-office.xml"

# get number of declared monitors
NUM=$(xmllint --xpath 'count(//monitors/configuration['1']/output)' $MONITOR_XML)

# loop thru declared monitors to create the command line parameters
for (( i=1; i<=$NUM; i++)); do
  # get attributes of current monitor (name and x & y positions)
  NAME=$(xmllint --xpath 'string(//monitors/configuration['1']/output['$i']/@name)' $MONITOR_XML 2>/dev/null)
  POS_X=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/x/text()' $MONITOR_XML 2>/dev/null)
  POS_Y=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/y/text()' $MONITOR_XML 2>/dev/null)
  ROTATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rotation/text()' $MONITOR_XML 2>/dev/null)
  WIDTH=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/width/text()' $MONITOR_XML 2>/dev/null)
  HEIGHT=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/height/text()' $MONITOR_XML 2>/dev/null)
  RATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rate/text()' $MONITOR_XML 2>/dev/null)
  PRIMARY=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/primary/text()' $MONITOR_XML 2>/dev/null)

  # if position is defined for current monitor, add its position and orientation to command line parameters
  [ -n "$POS_X" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--output" "$NAME" "--pos" "${POS_X}x${POS_Y}" "--fbmm" "${WIDTH}x${HEIGHT}" "--rate" "$RATE" "--rotate" "$ROTATE")

  # if monitor is defined as primary, adds it to command line parameters
  [ "$PRIMARY" = "yes" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--primary")
done

# if needed, wait for some seconds (for X to finish initialisation)
[ -n "$1" ] && sleep $1

# position all monitors
xrandr "${PARAM_ARR[@]}"
2
jay

Ubuntu 12.04 se souvient des paramètres de moniteur branchés à chaud. Mais ils ne sont appliqués que lorsque vous rouvrez l'applet Configuration système> Affiche. C'est le cas pour moi, du moins, et c'est définitivement un bug.

1
Jens

la réponse de Jay a presque fonctionné pour moi, mais je devais faire quelques étapes supplémentaires. Je ferais un commentaire sur sa réponse mais je n’ai pas la réputation.

Dans le fichier update-monitor-position-office:

  1. Ma version de bash (4.3.48) se plaignait du manque d'espace après "i ++" à la ligne 28.
  2. Ma version de xrandr (1.5) ne reconnaissait pas l'option "--fbmm" à la ligne 40. Je devais changer cela en "--mode". C'était difficile à diagnostiquer car xrandr ne m'a pas réellement donné d'erreur, il a simplement exécuté la commande sans rien faire.
1
Chris

Je préfère exécuter ce script depuis un terminal car j'en ouvre un après avoir ouvert une session.

Première connexion avec la mauvaise configuration - les moniteurs ne sont pas placés correctement:

cd ~/.config
mv ~/.config/monitors.xml{,.bak}

Maintenant, configurez vos moniteurs avec les paramètres système pour créer un nouveau fichier ~/.config/monitors.xml avec les paramètres appropriés.

Copiez le script fixe de Nicolas Bernaerts à partir de mon référentiel: https://raw.githubusercontent.com/alextomko/monitors/master/monitors et mettez-le dans un chemin à exécuter à partir du terminal.

$ ls -l ~/bin
# if you don't have this directory then create it - do not be logged in as root here.

$ mkdir /home/$USER/bin

$ echo $PATH
# should show /home/username/bin if the dir existed or if you had to create.

$ wget -P ~/bin https://raw.githubusercontent.com/alextomko/monitors/master/monitors
$ chmod +x ~/bin/monitors

# Log out, lock, reboot or whatever it takes to make monitor settings lost for you and run the script.
$ monitors
1
Alex Tomko

Non, il n'y a aucun moyen de sauvegarder des configurations sur des moniteurs branchés à chaud. Si vous vous connectez avant le démarrage, GNOME doit garder en mémoire la configuration à chaque démarrage (c’est-à-dire, la connexion à votre moniteur au travail par rapport à celle à la maison).

0
maco