Monitör ayarları kaydediliyor mu?


16

Monitör ayarlarımı kaydetmenin bir yolu var mı? İş yerinde harici bir monitör var, ancak her sabah fişi takmam gerekiyor, pencereleri yan yana olmaktan üst üste olmak için yeniden düzenliyoruz. Bunu kurtarabilir miyim?

Yanıtlar:


7

Uzun öykü kısa (yani: Nicolas Bernaerts'in önerilerini yapın, ancak size ayrıntıları yedekliyorum ): monitör yapılandırması aslında kaydedilir ~/.config/monitors.xml, ancak başlangıç ​​/ girişte uygulanmaz.

Bunun üstesinden gelmek için adımlar:

Yanlış monitör yapılandırması ile giriş yapın.

Geçerli monitör yapılandırmasını kaldır:

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

Monitörleri istediğiniz gibi düzenlemek için Ekranlar uygulamasını kullanın (bir tarafı monitörün saat yönünün tersine döndürülmüşüm). monitörlerinizi istediğiniz gibi düzenleyin

Uygula'ya bastıktan sonra yeni monitors.xmlbir tane oluşturulur.

Şimdi, yeni oluşturulan yapılandırma dosyasına göre monitör yapılandırmasını zorlayan komut dosyasını ve başlatıcıyı indirin ve yürütülebilir yapın:

$ 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

Bu noktada, monitörlerin konfigürasyonu güncelleme monitörü pozisyon uygulaması başlatılarak düzeltilebilir .

Bunun otomatik olmasını istiyorsanız, aşağıdaki girişleri içeren bir başlangıç ​​uygulaması eklemeniz yeterlidir:

  • Ad: Update Monitors Position
  • Komut: update-monitor-position 5
  • Yorum Yap: Force monitors position 5 seconds after login

resim açıklamasını buraya girin


1
Harika, bu yardımcı oldu. Teşekkürler! Bunun için bir hata raporu var mı?
Ondra Žižka


2
Bence bu en iyi cevap. Komut dosyasını birden fazla profili destekleyecek şekilde güncelledim: gist.github.com/relet/66a965cdf728e5278fbf52c9d1433be0 - Eğer "güncelleme monitör konumlu ofis" çalıştırmak istiyorsanız sadece örneğin izleyicileri-office.xml için monitors.xml kopya
işgal edildi muhtemelen

vanvugt: "Aslında, çoğu kullanıcının bulduğu bu hata 1292398'i kullanalım." bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
FlipMcF

5

Takılı-sıcak veya değil - - tüm monitörler için yapılandırma gerektiğini saklanabilir $HOME/.config/monitors.xmltarafından xrandriçin eklenti gnome-settings-daemonaslında Monitörler capplet yapmak yapılandırmayı geçerli olduğu kuraldır.

Bu herkes için düzgün çalışmıyor gibi görünüyor, açıkça bir yerde bir hata var. Urgh.


Evet ve maco'nun dediği gibi, bilgisayarı kapatıp yeniden başlatırsam, zaten açıkken değil, hatırlar.
Oscar Godson

4

Harici monitörünüzü istediğiniz şekilde bağlamak için ilk üç adım ve dördüncü ise ayarları kaydetmektir.

  1. Harici monitörünüzü bağlayın ve desteklenen çözünürlüğünü kontrol edin:

    xrandr -q
    
  2. Aşağıdaki komutu verin (Bu, dizüstü monitörünüzü devre dışı bırakır):

    xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    
  3. Hem dizüstü bilgisayarın hem de harici özelliklerin etkinleştirilmesini istiyorsanız:

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

    (yyyyXzzzz - dizüstü bilgisayarınızın çözünürlüğü.)

    Yukarıdaki yapılandırma ekranınızı klonlayacaktır. İle oyna " --right-of/--left-ofİsterseniz " seçeneğiyle .

  4. Giriş yaparken bu ayarlara ihtiyacınız varsa, kontrolleri ekleyin /etc/X11/Xsession.d/45custom_xrandr-settings(Bir tane oluşturmanız gerekebilir).

    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
    

2

Ofiste, dizüstü bilgisayarımda 3, evde 2 monitör var. Ofis monitörlerinden ikisi dikey olarak ayarlanırken, diğer monitörler normal yöndedir.

A. monitors.xml dosyası ~ / .config dizinindedir.

  1. Silin
  2. Ofis kurulumunda ekranı ayarlama
  3. Yeni oluşturulan "monitors.xml" dosyasını "monitors-office.xml" olarak yeniden adlandırın.

B. Kabuk betiği alın, "update-monitor-position".

  1. "MONITOR_XML" tanımını, "monitors.xml" yerine "monitors-office.xml" olarak değiştirin.

  2. Yürütülebilir yolda (/ usr / local / sbin /) "update-monitor-position-office" olarak kaydedin.

  3. İzne -> "Ben" tarafından yürütülebilir'e dokunun.

C. Masaüstü kısayolunu edinin, "update-monitor-position.desktop"

  1. "Exec" tanımını, "update-monitor-position" ifadesini
    "update-monitor-position-office" olarak değiştirin.
  2. "Update-monitor-position-office.desktop" olarak kaydedin
  3. İzne -> "Ben" tarafından yürütülebilir'e dokunun.

güncelleme monitör-pozisyon-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

Kabuk betiği, güncelleme-izleme-konum-ofis

#!/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[@]}"

Hey @jey, bunu Ocak 2018'de cevapladınız. (Nicolas senaryosu 4 yaşındayken ... ). Bunun hala yeni bir Ubuntu 16.x / 18.x altında çalıştığını varsayabilir miyim? - Ve: Ubuntu- MATE altında da işe yarayacağı varsayımınız var mı? (Sistemimde adı geçen monitors.xml
dosyasını

Frank, benimki "16.04.5 LTS" diyor. Bir nokta, "dist-upgrade" den sonra, süreçten geçip yeniden başlatmam gerekti. "Sistem Ayarları -> Ekranlar" sistemimde komik çalışıyor. Ben 18.x denemek için modunda değilim. Teşekkürler,
jay

1

Ubuntu 12.04 çalışırken takılan monitör ayarlarını hatırlar. Ancak bunlar yalnızca Sistem yapılandırması> Ekranlar uygulamasını yeniden açtığınızda uygulanır. En azından benim için durum böyledir ve bu kesinlikle bir hatadır.


1

jay'in yanıtı neredeyse benim için çalıştı, ama birkaç adım daha atmam gerekiyordu. Buna cevabı hakkında bir yorum yapardım ama itibarım yok.

Update-monitor-position-office dosyasında:

  1. Benim bash (4.3.48) sürümü 28 satırda "i ++" izleyen bir boşluk olmaması şikayet etti.
  2. Benim xrandr (1.5) sürümü 40 satırında "--fbmm" seçeneğini tanımadı. Bunu "--mode" olarak değiştirmek zorunda kaldı. Bu teşhis etmek zordu çünkü xrandr aslında bana bir hata vermedi, sadece hiçbir şey yapmadan komutu yürüttü.

1

Giriş yaptıktan sonra ilk açtığımdan beri bu komut dosyasını bir terminalden çalıştırmayı tercih ediyorum.

Kötü yapılandırma ile ilk giriş - monitörler doğru yerleştirilmedi:

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

Şimdi ~/.config/monitors.xmluygun ayarlarla yeni bir dosya oluşturmak için monitörlerinizi sistem ayarlarıyla ayarlayın .

Nicolas Bernaerts'in sabit komut dosyasını depomdan kopyala: https://raw.githubusercontent.com/alextomko/monitors/master/monitors ve terminalden çalıştırmak için bir yola koy.

$ 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

0

Hayır, yapılandırmaları çalışırken takılan monitörlere kaydetmenin bir yolu yoktur. Önyüklemeden önce takarsanız, GNOME her önyüklemedeki yapılandırmayı cihaz başına esasına göre hatırlamalıdır (yani, monitörünüzü evdekine karşı işyerinizde bağlama).


Lanet olsun. Tamam. Bunu yapabileceğinden daha üçüncü bir uygulama var mı? Mac OS X'in bunu ve Windows 7'yi (W7 ile yaşadığım küçük deneyimle denediğimden) biliyorum.
Oscar Godson

GNOME monitör yapılandırması bu bilgiyi çalışırken takılı monitörler için de kaydetmelidir. Benim için öyle.
RAOF

RAOF: Tuhaf, çünkü ubuntu-devel posta listesindeki tartışmalar bu haftanın başlarında gerçekleşmediğini söyledi.
maco

yapılandırma gerçekten kaydedilir ~/.config/monitors.xml, ancak başlangıçta uygulanmaz
Alessandro Cuttin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.