Menyimpan pengaturan monitor?

16

Apakah ada cara untuk menyimpan pengaturan monitor saya? Saya memiliki monitor eksternal di tempat kerja, tetapi setiap pagi saya harus mencolokkannya, mengatur ulang windows dari yang berdampingan menjadi berada di atas satu sama lain. Bisakah saya menyimpan ini?

Oscar Godson
sumber

Jawaban:

7

Singkat cerita (yaitu: lakukan apa yang disarankan Nicolas Bernaerts , tapi saya berikan Anda detailnya): konfigurasi monitor sebenarnya disimpan ~/.config/monitors.xml, tetapi tidak diterapkan pada startup / login.

Langkah-langkah untuk mengatasi ini adalah:

Masuk dengan konfigurasi monitor yang salah.

Hapus konfigurasi monitor saat ini:

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

Gunakan aplikasi Menampilkan untuk mengatur monitor seperti yang Anda inginkan (saya punya satu sisi monitor diputar berlawanan arah jarum jam). atur monitor Anda sesuai keinginan

Setelah Anda menekan Terapkan , yang baru monitors.xmldibuat.

Sekarang, unduh dan buat skrip yang dapat dieksekusi dan peluncur yang memaksa konfigurasi monitor berdasarkan pada file konfigurasi yang baru dibuat:

$ 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

Pada titik ini, konfigurasi monitor dapat diperbaiki dengan meluncurkan aplikasi pembaruan posisi monitor .

Jika Anda ingin ini otomatis, cukup tambahkan aplikasi startup, dengan entri berikut:

  • Nama: Update Monitors Position
  • Perintah: update-monitor-position 5
  • Komentar: Force monitors position 5 seconds after login

masukkan deskripsi gambar di sini

Alessandro Cuttin
sumber
1
Hebat, ini membantu. Terima kasih! Apakah ada laporan bug untuk ini?
Ondra Žižka
2
Saya pikir ini adalah jawaban terbaik. Saya memperbarui skrip untuk mendukung beberapa profil: gist.github.com/relet/66a965cdf728e5278fbf52c9d1433be0 - cukup salin monitor Anda.xml ke misalnya monitor-office.xml jika Anda ingin menjalankan "perbarui-monitor-posisi kantor"
relet
vanvugt: "Sebenarnya, mari kita gunakan bug 1292398 karena itu yang paling banyak ditemukan pengguna." bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
FlipMcF
5

Konfigurasi untuk semua monitor Anda - hot-dicolokkan atau tidak - harus disimpan $HOME/.config/monitors.xmloleh xrandrplugin untuk gnome-settings-daemon, yang sebenarnya menerapkan konfigurasi yang Anda buat di capplet Monitor.

Karena tampaknya ini tidak berfungsi dengan baik untuk semua orang, jelas ada bug di suatu tempat. Urgh.

RAOF
sumber
Ya, dan seperti yang dikatakan maco, jika saya mematikan komputer dan mem-boot-nya kembali, ia ingat, hanya saja tidak ketika komputer sudah hidup.
Oscar Godson
4

Tiga langkah pertama untuk menghubungkan monitor eksternal Anda seperti yang Anda inginkan dan ke-4 adalah menyimpan pengaturan.

  1. Hubungkan monitor eksternal Anda dan periksa resolusi yang didukung:

    xrandr -q
    
  2. Berikan perintah berikut (Ini akan menonaktifkan monitor laptop Anda):

    xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    
  3. Jika Anda ingin laptop dan eksternal diaktifkan:

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

    (yyyyXzzzz - resolusi laptop Anda.)

    Konfigurasi di atas akan mengkloning layar Anda. Mainkan dengan opsi " --right-of/ --left-of" jika Anda mau.

  4. Jika Anda memerlukan pengaturan ini saat masuk, tambahkan tanda centang /etc/X11/Xsession.d/45custom_xrandr-settings(Anda mungkin harus membuatnya).

    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
    
thonixx
sumber
2

Di kantor, saya memiliki 3 monitor di laptop saya, dan 2 di rumah. Dua monitor kantor diatur vertikal, sedangkan monitor lain berada pada orientasi normal.

A. monitor.xml dalam ~ / .config.

  1. Hapus
  2. Atur tampilan di pengaturan kantor
  3. Ganti nama yang baru saja dibuat "monitor.xml" menjadi "monitor-office.xml".

B. Dapatkan skrip shell, "perbarui-monitor-posisi".

  1. Ubah definisi "MONITOR_XML", "monitor.xml" menjadi "monitor-office.xml".

  2. Simpan sebagai "perbarui-monitor-posisi-kantor", di jalur yang dapat dieksekusi (/ usr / local / sbin /).

  3. Sentuh izin -> yang dapat dieksekusi oleh "Saya".

C. Dapatkan pintasan desktop, "perbarui-monitor-position.desktop"

  1. Ubah definisi "Exec", "perbarui-monitor-posisi" menjadi
    "perbarui-monitor-posisi-kantor".
  2. Simpan sebagai "perbarui-monitor-posisi-kantor.desktop"
  3. Sentuh izin -> yang dapat dieksekusi oleh "Saya".

perbarui-monitor-posisi-kantor.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, perbarui-monitor-posisi-kantor

#!/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[@]}"
jay
sumber
Hei @ jey, Anda menjawab ini pada Januari 2018. (sementara skrip Nicolas berusia 4 tahun ... ). Bolehkah saya menganggap ini masih bekerja di bawah Ubuntu 16.x / 18.x baru-baru ini? - Dan: apakah Anda memiliki asumsi, apakah itu akan berfungsi di bawah Ubuntu- MATE juga? (Saya memang melihat
monitor.xml
Frank, kata saya "16.04.5 LTS". Satu titik, setelah "dist-upgrade", saya harus melalui proses, dan kemudian reboot. "Pengaturan Sistem -> Layar" berfungsi lucu di sistem saya. Saya tidak dalam mode untuk mencoba 18.x. Terima kasih,
jay
1

Ubuntu 12,04 mengingat pengaturan monitor hot-plug. Tetapi mereka hanya diterapkan ketika Anda membuka kembali Konfigurasi sistem> Menampilkan applet. Ini adalah kasus bagi saya, setidaknya, dan ini pasti bug.

Jens
sumber
1

Jawaban jay hampir berhasil untuk saya, tetapi saya perlu melakukan beberapa langkah ekstra. Saya akan berkomentar tentang jawabannya, tetapi saya tidak memiliki reputasi.

Dalam file perbarui-monitor-posisi-kantor:

  1. Versi bash saya (4.3.48) mengeluhkan kurangnya ruang setelah "i ++" di baris 28.
  2. Versi xrandr (1.5) saya tidak mengenali opsi "--fbmm" pada baris 40. Saya harus mengubahnya ke "--mode". Ini sulit didiagnosis karena xrandr tidak benar-benar memberi saya kesalahan, itu hanya menjalankan perintah tanpa melakukan apa pun.
Chris
sumber
1

Saya lebih suka menjalankan skrip ini dari terminal karena saya buka yang pertama setelah login.

Login pertama dengan konfigurasi buruk - monitor tidak ditempatkan dengan benar:

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

Sekarang atur monitor Anda dengan pengaturan sistem untuk membuat ~/.config/monitors.xmlfile baru dengan pengaturan yang tepat.

Salin skrip tetap Nicolas Bernaerts dari repo saya: https://raw.githubusercontent.com/alextomko/monitors/master/monitors dan letakkan di jalur untuk lari dari 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
Alex Tomko
sumber
0

Tidak, tidak ada cara untuk menyimpan konfigurasi pada monitor yang dicolokkan. Jika Anda mencolokkan sebelum boot, GNOME harus mengingat konfigurasi pada setiap boot pada basis per perangkat (yaitu, menghubungkan ke monitor Anda di tempat kerja versus yang di rumah).

maco
sumber
Sial, oke. Apakah ada aplikasi pihak ketiga yang bisa dilakukan? Saya tahu Mac OS X melakukan ini, dan Windows 7 (dari apa yang saya coba dengan sedikit pengalaman yang saya miliki dengan W7).
Oscar Godson
Konfigurasi monitor GNOME juga harus menyimpan informasi ini untuk monitor yang dicolokkan. Itu untuk saya.
RAOF
RAOF: aneh, karena diskusi di milis ubuntu-devel awal minggu ini mengatakan tidak.
maco
konfigurasi sebenarnya disimpan ~/.config/monitors.xml, tetapi tidak diterapkan saat startup
Alessandro Cuttin