Existe uma maneira de salvar as configurações do meu monitor? Eu tenho um monitor externo no trabalho, mas todas as manhãs eu tenho que conectá-lo, reorganizar as janelas de lado a lado para ficar em cima um do outro. Posso apenas salvar isso?
Existe uma maneira de salvar as configurações do meu monitor? Eu tenho um monitor externo no trabalho, mas todas as manhãs eu tenho que conectá-lo, reorganizar as janelas de lado a lado para ficar em cima um do outro. Posso apenas salvar isso?
Respostas:
Para encurtar a história (isto é: faça o que Nicolas Bernaerts sugere, mas pouparei os detalhes): a configuração dos monitores é realmente salva ~/.config/monitors.xml
, mas não é aplicada na inicialização / login.
As etapas para superar isso são:
Efetue login com a configuração incorreta de monitores.
Remova a configuração atual do monitor:
cd .config
mv monitors.xml{,.bak}
Use o aplicativo Displays para organizar os monitores como desejar (tenho um monitor lateral girado no sentido anti-horário).
Depois de pressionar Aplicar , um novo monitors.xml
é criado.
Agora, baixe e torne executável o script e o iniciador que forçam a configuração do monitor com base no arquivo de configuração recém-criado:
$ 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
Nesse ponto, a configuração dos monitores pode ser corrigida iniciando o aplicativo de atualização da posição do monitor .
Se você deseja que isso seja automático, basta adicionar um aplicativo de inicialização, com as seguintes entradas:
Update Monitors Position
update-monitor-position 5
Force monitors position 5 seconds after login
A configuração de todos os seus monitores - hot plugados ou não - deve ser armazenada $HOME/.config/monitors.xml
pelo xrandr
plug - in paragnome-settings-daemon
, que é o que realmente aplica a configuração que você faz no capplet de Monitores.
Como parece que isso não está funcionando corretamente para todos, há claramente um bug em algum lugar. Urgh.
Os três primeiros passos para conectar seu monitor externo da maneira que você deseja e o quarto é salvar as configurações.
Conecte seu monitor externo e verifique sua resolução suportada:
xrandr -q
Dê o seguinte comando (Isso desativará o monitor do seu laptop):
xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
Se você deseja ativar o laptop e o externo:
xrandr --output LVDS1 --mode yyyyXzzzz --pos 0x0 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
(aaaaXzzzz - a resolução do seu laptop.)
A configuração acima clonará sua tela. Jogue com a opção " --right-of
/ --left-of
" se desejar.
Se você precisar dessas configurações durante o login, adicione as verificações /etc/X11/Xsession.d/45custom_xrandr-settings
(pode ser necessário criar uma).
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
No escritório, tenho 3 monitores no meu laptop e 2 em casa. Dois monitores de escritório estão na vertical, enquanto outros estão na orientação normal.
A. monitors.xml está em ~ / .config.
B. Obtenha o shell script, "update-monitor-position".
Altere a definição "MONITOR_XML", "monitors.xml" para "monitors-office.xml".
Salve-o como "update-monitor-position-office", no caminho executável (/ usr / local / sbin /).
C. Obtenha o atalho da área de trabalho, "update-monitor-position.desktop"
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 de shell, atualização-monitor-posição-escritório
#!/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[@]}"
A resposta de Jay quase funcionou para mim, mas eu precisava fazer algumas etapas extras. Eu faria isso um comentário sobre a resposta dele, mas não tenho reputação.
No arquivo update-monitor-position-office:
Prefiro executar esse script a partir de um terminal, pois abro um primeiro após o login.
Primeiro login com a configuração incorreta - os monitores não foram colocados corretamente:
cd ~/.config
mv ~/.config/monitors.xml{,.bak}
Agora defina seus monitores com as configurações do sistema para criar um novo ~/.config/monitors.xml
arquivo com as configurações adequadas.
Copie o script fixo de Nicolas Bernaerts do meu repositório: https://raw.githubusercontent.com/alextomko/monitors/master/monitors e coloque-o em um caminho para executar a partir do 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
Não, não há como salvar configurações em monitores hot-plugged. Se você se conectar antes da inicialização, o GNOME deve se lembrar da configuração de cada inicialização por dispositivo (ou seja, conectar-se ao seu monitor no trabalho versus o de casa).
~/.config/monitors.xml
, mas não é aplicada na inicialização