C'è un modo per salvare le impostazioni del mio monitor? Ho un monitor esterno al lavoro, ma ogni mattina devo collegarlo, riorganizzare le finestre dall'essere fianco a fianco per essere uno sopra l'altro. Posso solo salvarlo?
C'è un modo per salvare le impostazioni del mio monitor? Ho un monitor esterno al lavoro, ma ogni mattina devo collegarlo, riorganizzare le finestre dall'essere fianco a fianco per essere uno sopra l'altro. Posso solo salvarlo?
Risposte:
Per farla breve (ovvero: fai ciò che suggerisce Nicolas Bernaerts , ma ti risparmio i dettagli): la configurazione dei monitor è effettivamente salvata ~/.config/monitors.xml
, ma non viene applicata all'avvio / accesso.
I passaggi per superare questo sono:
Accedi con la configurazione dei monitor sbagliata.
Rimuovi la configurazione corrente del monitor:
cd .config
mv monitors.xml{,.bak}
Utilizzare l' applicazione Display per disporre i monitor come desiderato (ho un monitor laterale ruotato in senso antiorario).
Dopo aver premuto Applica , ne monitors.xml
viene creata una nuova .
Ora scarica e rendi eseguibile lo script e il programma di avvio che impongono la configurazione del monitor in base al file di configurazione appena creato:
$ 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
A questo punto, la configurazione dei monitor può essere riparata avviando l' applicazione di aggiornamento della posizione del monitor .
Se vuoi che sia automatico, aggiungi semplicemente un'applicazione di avvio, con le seguenti voci:
Update Monitors Position
update-monitor-position 5
Force monitors position 5 seconds after login
La configurazione per tutti i monitor - hot plug o no - deve essere archiviata $HOME/.config/monitors.xml
dal xrandr
plug-in per gnome-settings-daemon
, che è ciò che applica effettivamente la configurazione effettuata nel capplet Monitor.
Dal momento che sembra che questo non funzioni correttamente per tutti, c'è chiaramente un bug da qualche parte. Urgh.
I primi tre passaggi per collegare il monitor esterno nel modo desiderato e il quarto è salvare le impostazioni.
Collega il tuo monitor esterno e controlla la risoluzione supportata:
xrandr -q
Dai il seguente comando (Questo disabiliterà il monitor del tuo laptop):
xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
Se vuoi abilitare sia il laptop che l'esterno:
xrandr --output LVDS1 --mode yyyyXzzzz --pos 0x0 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
(yyyyXzzzz - risoluzione del laptop.)
La configurazione sopra clonerà lo schermo. Gioca con l' opzione " --right-of
/ --left-of
" se vuoi.
Se hai bisogno di queste impostazioni durante il login, aggiungi i check in /etc/X11/Xsession.d/45custom_xrandr-settings
(Potrebbe essere necessario crearne uno).
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
In ufficio, ho 3 monitor sul mio laptop e 2 a casa. Due monitor da ufficio sono impostati in verticale, mentre altri monitor sono orientati normalmente.
A. monitors.xml è in ~ / .config.
B. Ottieni lo script della shell, "update-monitor-position".
Modificare la definizione "MONITOR_XML", "monitors.xml" in "monitors-office.xml".
Salvalo come "update-monitor-position-office", nel percorso eseguibile (/ usr / local / sbin /).
C. Ottieni il collegamento sul desktop, "update-monitor-position.desktop"
aggiornamento Monitor e posizione-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 di 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[@]}"
la risposta di Jay ha quasi funzionato per me, ma dovevo fare un paio di passi in più. Lo farei un commento sulla sua risposta, ma non ho la reputazione.
Nel file update-monitor-position-office:
Preferisco eseguire questo script da un terminale poiché ne apro uno prima del login.
Primo accesso con configurazione errata - monitor non posizionati correttamente:
cd ~/.config
mv ~/.config/monitors.xml{,.bak}
Ora imposta i monitor con le impostazioni di sistema per creare un nuovo ~/.config/monitors.xml
file con le impostazioni appropriate.
Copia lo script fisso di Nicolas Bernaerts dal mio repository: https://raw.githubusercontent.com/alextomko/monitors/master/monitors e inseriscilo in un percorso per l'esecuzione dal terminale.
$ 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
No, non è possibile salvare le configurazioni su monitor collegati a caldo. Se si collega prima dell'avvio, GNOME dovrebbe ricordare la configurazione su ogni avvio in base al dispositivo (vale a dire, connettersi al monitor sul posto di lavoro rispetto a quello di casa).
~/.config/monitors.xml
, ma non viene applicata all'avvio