Lưu cài đặt màn hình?


16

Có cách nào để lưu cài đặt màn hình của tôi không? Tôi có một màn hình bên ngoài tại nơi làm việc, nhưng mỗi sáng tôi phải cắm nó vào, sắp xếp lại các cửa sổ từ cạnh nhau để nằm trên nhau. Tôi có thể lưu cái này không?

Câu trả lời:


7

Câu chuyện dài (nghĩa là: làm những gì Nicolas Bernaerts gợi ý, nhưng tôi tiết lộ cho bạn các chi tiết): cấu hình màn hình thực sự được lưu vào ~/.config/monitors.xml, nhưng nó không được áp dụng khi khởi động / đăng nhập.

Các bước để khắc phục điều này là:

Đăng nhập với cấu hình màn hình sai.

Xóa cấu hình màn hình hiện tại:

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

Sử dụng ứng dụng Hiển thị để sắp xếp các màn hình theo ý muốn (Tôi có một màn hình một bên được xoay ngược chiều kim đồng hồ). sắp xếp màn hình của bạn như bạn muốn

Khi bạn nhấn Áp dụng , một cái mới monitors.xmlđược tạo.

Bây giờ, tải xuống và thực thi tập lệnh và trình khởi chạy buộc cấu hình màn hình dựa trên tệp cấu hình vừa tạo:

$ 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

Tại thời điểm này, cấu hình của màn hình có thể được sửa bằng cách khởi chạy ứng dụng vị trí màn hình cập nhật .

Nếu bạn muốn điều này là tự động, chỉ cần thêm một ứng dụng khởi động, với các mục sau:

  • Tên: Update Monitors Position
  • Chỉ huy: update-monitor-position 5
  • Bình luận: Force monitors position 5 seconds after login

nhập mô tả hình ảnh ở đây


1
Tuyệt vời, điều này đã giúp. Cảm ơn! Có một báo cáo lỗi cho điều này?
Ondra ižka


2
Tôi nghĩ rằng đây là câu trả lời tốt nhất. Tôi đã cập nhật tập lệnh để hỗ trợ nhiều cấu hình: gist.github.com/relet/66a965cdf728e5278fbf52c9d1433be0 - chỉ cần sao chép tệp Monitor.xml của bạn sang ví dụ: Monitor-office.xml nếu bạn muốn chạy "văn phòng theo dõi vị trí cập nhật"
hãy đặt lại

vanvugt: "Trên thực tế, chúng ta hãy sử dụng lỗi 1292398 vì đó là thứ mà hầu hết người dùng đang tìm kiếm." bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
FlipMcF

5

Cấu hình cho tất cả các màn hình của bạn - cắm nóng hay không - nên được lưu trữ $HOME/.config/monitors.xmlbởi xrandrplugin cho gnome-settings-daemon, đây là thứ thực sự áp dụng cấu hình bạn thực hiện trong capplet Màn hình.

Vì dường như điều này không hoạt động đúng với mọi người, rõ ràng có một lỗi ở đâu đó. Urgh.


Vâng, và như maco nói, nếu tôi tắt máy tính và khởi động lại, nó sẽ nhớ, chỉ là khi nó không hoạt động.
Oscar Godson

4

Ba bước đầu tiên để kết nối màn hình ngoài của bạn theo cách bạn muốn và thứ 4 là lưu cài đặt.

  1. Kết nối màn hình ngoài của bạn và kiểm tra độ phân giải được hỗ trợ của nó:

    xrandr -q
    
  2. Đưa ra lệnh sau (Điều này sẽ vô hiệu hóa màn hình máy tính xách tay của bạn):

    xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
    
  3. Nếu bạn muốn kích hoạt cả máy tính xách tay và bên ngoài:

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

    (yyyyXzzzz - độ phân giải máy tính xách tay của bạn.)

    Các cấu hình trên sẽ nhân bản màn hình của bạn. Chơi với tùy chọn " --right-of/ --left-of" nếu bạn muốn.

  4. Nếu bạn cần cài đặt này trong khi đăng nhập, hãy thêm các kiểm tra vào /etc/X11/Xsession.d/45custom_xrandr-settings(Bạn có thể cần phải tạo một).

    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

Ở văn phòng, tôi có 3 màn hình trên laptop và 2 ở nhà. Hai trong số các màn hình văn phòng được đặt dọc, trong khi các màn hình khác ở hướng bình thường.

A. Monitor.xml nằm trong ~ / .config.

  1. Xóa đi
  2. Đặt màn hình ở cài đặt văn phòng
  3. Đổi tên vừa tạo "màn hình" thành "màn hình văn phòng".

B. Nhận tập lệnh shell, "cập nhật-màn hình-vị trí".

  1. Thay đổi định nghĩa "MONITOR_XML", "Monitor.xml" thành "màn hình-office.xml".

  2. Lưu nó dưới dạng "update-Monitor-location-office", trong đường dẫn thực thi (/ usr / local / sbin /).

  3. Chạm vào quyền -> thực thi bằng "Tôi".

C. Nhận lối tắt trên màn hình, "update-Monitor-location.desktop"

  1. Thay đổi định nghĩa "Exec", "update-màn hình-vị trí" thành
    "update-màn hình-vị trí-văn phòng".
  2. Lưu nó dưới dạng "update-Monitor-location-office.desktop"
  3. Chạm vào quyền -> thực thi bằng "Tôi".

cập nhật-màn hình-vị trí-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

Shell script, cập nhật-màn hình-vị trí-văn phòng

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

Xin chào @jey, bạn đã trả lời điều này vào tháng 1 năm 2018. (trong khi kịch bản của Nicolas là 4 tuổi ... ). Tôi có thể cho rằng nó vẫn hoạt động theo Ubuntu 16.x / 18.x gần đây không? - Và: bạn có bất kỳ giả định nào không, nếu nó cũng hoạt động theo Ubuntu- MATE ? (Tôi thấy màn hình đã nói trên hệ thống của tôi ...)
Frank Nocke

Frank, của tôi nói "16.04.5 LTS". Một điểm, sau khi "nâng cấp", tôi phải trải qua quá trình, và sau đó khởi động lại. "Cài đặt hệ thống -> Hiển thị" hoạt động hài hước trên hệ thống của tôi. Tôi không ở chế độ để thử 18.x. Cảm ơn,
jay

1

Ubuntu 12.04 ghi nhớ các cài đặt màn hình được cắm nóng. Nhưng chúng chỉ được áp dụng khi bạn mở lại cấu hình Hệ thống> Hiển thị applet. Đây là trường hợp đối với tôi, ít nhất, và đây chắc chắn là một lỗi.


1

Câu trả lời của jay gần như có tác dụng với tôi, nhưng tôi cần làm thêm một vài bước. Tôi muốn bình luận về câu trả lời của anh ấy nhưng tôi không có tiếng tăm.

Trong tệp cập nhật-màn hình-vị trí-văn phòng:

  1. Phiên bản bash của tôi (4.3.48) đã phàn nàn về việc thiếu khoảng trắng sau "i ++" trên dòng 28.
  2. Phiên bản xrandr (1.5) của tôi không nhận ra tùy chọn "--fbmm" trên dòng 40. Tôi đã phải thay đổi tùy chọn này thành "--mode". Điều này thật khó để chẩn đoán vì xrandr không thực sự gây ra lỗi cho tôi, nó chỉ thực hiện lệnh mà không làm gì cả.

1

Tôi thích chạy tập lệnh này từ một thiết bị đầu cuối vì tôi mở một tập lệnh đầu tiên sau khi đăng nhập.

Đăng nhập lần đầu với cấu hình xấu - màn hình không được đặt chính xác:

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

Bây giờ hãy đặt màn hình của bạn với các cài đặt hệ thống để tạo một ~/.config/monitors.xmltệp mới với các cài đặt thích hợp.

Sao chép tập lệnh cố định của Nicolas Bernaerts từ repo của tôi: https://raw.githubusercontent.com/alextomko/monitor/master/monitor và đặt nó vào một đường dẫn để chạy từ thiết bị đầu cuối.

$ 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

Không, không có cách nào để lưu cấu hình trên màn hình cắm nóng. Nếu bạn cắm trước khi khởi động, Gnome nên nhớ cấu hình trên mỗi lần khởi động trên cơ sở từng thiết bị (nghĩa là kết nối với màn hình của bạn tại nơi làm việc so với ở nhà).


Chết tiệt, ok. Có một ứng dụng bên thứ ba hơn có thể làm điều này? Tôi biết Mac OS X thực hiện điều này và Windows 7 (từ những gì tôi đã thử với ít kinh nghiệm tôi có với W7).
Oscar Godson

Cấu hình màn hình Gnome cũng nên lưu thông tin này cho các màn hình được cắm nóng. Nó làm cho tôi.
RAOF

RAOF: thật kỳ lạ, vì cuộc thảo luận về danh sách gửi thư ubfox vào đầu tuần này cho biết là không.
maco

cấu hình thực sự được lưu vào ~/.config/monitors.xml, nhưng nó không được áp dụng khi khởi động
Alessandro Cuttin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.